---
updatedAt: 2025-09-24T02:01:19.000Z
agentTools:
  projectIndex: https://developers.waitwhile.com/llms.txt
---

# Retrieve a location-status

# OpenAPI definition

```json
{
  "security": [
    {
      "api_key": []
    }
  ],
  "servers": [
    {
      "url": "https://api.waitwhile.com/v2",
      "description": "Waitwhile API"
    }
  ],
  "info": {
    "title": "Waitwhile API",
    "version": "2",
    "description": "\nThe Waitwhile API is organized around the REST methodology, and it uses resource-oriented URLs, and common HTTP response codes.\nJSON is consumed and returned by all API responses, including errors unless a specific input or response format has been requested. All requests are authenticated using an API key which can be obtained\nfrom your Integration Settings page. Provide your API key as value for the header \"apikey\" with each request.\nAll API requests must be made over HTTPS. Calls made over plain HTTP will fail. API requests without authentication will also fail.\n",
    "termsOfService": "https://waitwhile.com/terms/",
    "contact": {
      "name": "Waitwhile Support",
      "email": "support@waitwhile.com",
      "url": "https://waitwhile.com"
    }
  },
  "x-readme": {
    "proxy-enabled": false
  },
  "tags": [
    {
      "name": "Location Status",
      "description": "\nLocation status contain operations for retrieving and updating location-status.\nA Location-status contains information about the current status of a location such as number of waiting and available services and resources.\n            "
    }
  ],
  "openapi": "3.0.0",
  "components": {
    "securitySchemes": {
      "api_key": {
        "type": "apiKey",
        "name": "apikey",
        "in": "header"
      }
    },
    "schemas": {
      "LabelNameValuePair": {
        "type": "object",
        "description": "Label name/value pair",
        "example": "North America",
        "properties": {
          "name": {
            "type": "string",
            "description": "Name of label",
            "example": "A short-sized string",
            "minLength": 1,
            "maxLength": 50,
            "pattern": "^[\\p{L}][\\p{L}0-9 _-]*$",
            "x-convert": {
              "trim": true
            }
          },
          "value": {
            "type": "string",
            "description": "Value of label",
            "example": "A short-sized string",
            "minLength": 1,
            "maxLength": 50,
            "pattern": "^[\\p{L}0-9 _.-]+$",
            "x-convert": {
              "trim": true
            }
          }
        }
      },
      "Labels": {
        "type": "array",
        "description": "Labels",
        "maxItems": 10,
        "x-constraint": {
          "unique": "name"
        },
        "items": {
          "$ref": "#/components/schemas/LabelNameValuePair"
        }
      },
      "businessType": {
        "type": "string",
        "description": "Type of business or organization",
        "enum": [
          "ANIMAL",
          "APP",
          "AUTOMOTIVE",
          "BAR",
          "CAFE",
          "DENTAL",
          "DOCTOR",
          "FINANCE",
          "ENTERTAINMENT",
          "EVENT",
          "GOVERNMENT",
          "HAIRDRESSER",
          "HEALTH",
          "INDIVIDUAL",
          "IT",
          "LEGAL",
          "LODGING",
          "LOGISTICS",
          "OTHER",
          "PHARMACY",
          "REAL-ESTATE",
          "RENTAL",
          "RESTAURANT",
          "RETAIL",
          "SALON",
          "SCHOOL",
          "SPA",
          "TRAVEL"
        ],
        "x-convert": {
          "case": "upper"
        }
      },
      "AddressCountry": {
        "type": "object",
        "nullable": true,
        "properties": {
          "code": {
            "type": "string",
            "description": "Country code in ISO 3166-1 alpha-2 format",
            "example": "A short-sized string",
            "minLength": 2,
            "maxLength": 2,
            "x-convert": {
              "case": "upper",
              "trim": true
            }
          },
          "name": {
            "type": "string",
            "description": "Country name",
            "example": "A short-sized string",
            "nullable": true,
            "minLength": 0,
            "maxLength": 100,
            "x-convert": {
              "trim": true
            }
          }
        }
      },
      "AddressState": {
        "type": "object",
        "nullable": true,
        "properties": {
          "code": {
            "type": "string",
            "description": "State or region code",
            "example": "A short-sized string",
            "nullable": true,
            "minLength": 1,
            "maxLength": 5,
            "x-convert": {
              "case": "upper",
              "trim": true
            }
          },
          "name": {
            "type": "string",
            "description": "State or region name",
            "example": "A short-sized string",
            "nullable": true,
            "minLength": 0,
            "maxLength": 100,
            "x-convert": {
              "trim": true
            }
          }
        }
      },
      "Address": {
        "type": "object",
        "properties": {
          "city": {
            "type": "string",
            "description": "City or locality",
            "example": "A short-sized string",
            "nullable": true,
            "minLength": 0,
            "maxLength": 100,
            "x-convert": {
              "trim": true
            }
          },
          "country": {
            "$ref": "#/components/schemas/AddressCountry"
          },
          "state": {
            "$ref": "#/components/schemas/AddressState"
          },
          "street": {
            "type": "string",
            "description": "Street address",
            "example": "A short-sized string",
            "nullable": true,
            "minLength": 0,
            "maxLength": 100,
            "x-convert": {
              "trim": true
            }
          },
          "street2": {
            "type": "string",
            "description": "Street address",
            "example": "A short-sized string",
            "nullable": true,
            "minLength": 0,
            "maxLength": 100,
            "x-convert": {
              "trim": true
            }
          },
          "zip": {
            "type": "string",
            "description": "Zip or postal code",
            "example": "A short-sized string",
            "nullable": true,
            "minLength": 0,
            "maxLength": 100,
            "x-convert": {
              "trim": true
            }
          }
        }
      },
      "Model2": {
        "type": "string",
        "description": "Locale in xx-YY format, where the first part is language and second country code",
        "example": "en-US",
        "enum": [
          "ca-AD",
          "ar-AE",
          "ps-AF",
          "tk-AF",
          "uz-AF",
          "en-AG",
          "en-AI",
          "sq-AL",
          "hy-AM",
          "pt-AO",
          "en-AQ",
          "ru-AQ",
          "gn-AR",
          "es-AR",
          "en-AS",
          "sm-AS",
          "de-AT",
          "en-AU",
          "nl-AW",
          "pa-AW",
          "sv-AX",
          "az-AZ",
          "bs-BA",
          "hr-BA",
          "sr-BA",
          "en-BB",
          "bn-BD",
          "de-BE",
          "fr-BE",
          "nl-BE",
          "fr-BF",
          "ff-BF",
          "bg-BG",
          "ar-BH",
          "fr-BI",
          "rn-BI",
          "fr-BJ",
          "fr-BL",
          "en-BM",
          "ms-BN",
          "ay-BO",
          "qu-BO",
          "es-BO",
          "nl-BQ",
          "pt-BR",
          "en-BS",
          "dz-BT",
          "nn-BV",
          "nb-BV",
          "no-BV",
          "en-BW",
          "tn-BW",
          "be-BY",
          "ru-BY",
          "en-BZ",
          "es-BZ",
          "en-CA",
          "fr-CA",
          "en-CC",
          "fr-CD",
          "kg-CD",
          "ln-CD",
          "lu-CD",
          "sw-CD",
          "fr-CF",
          "sg-CF",
          "fr-CG",
          "ln-CG",
          "de-CH",
          "fr-CH",
          "it-CH",
          "rm-CH",
          "fr-CI",
          "en-CK",
          "rar-CK",
          "es-CL",
          "en-CM",
          "fr-CM",
          "zh-CN",
          "es-CO",
          "es-CR",
          "es-CU",
          "pt-CV",
          "en-CW",
          "nl-CW",
          "pa-CW",
          "en-CX",
          "el-CY",
          "hy-CY",
          "tr-CY",
          "cs-CZ",
          "sk-CZ",
          "de-DE",
          "ar-DJ",
          "fr-DJ",
          "da-DK",
          "en-DM",
          "es-DO",
          "ar-DZ",
          "es-EC",
          "et-EE",
          "ar-EG",
          "es-EH",
          "aa-ER",
          "ar-ER",
          "byn-ER",
          "en-ER",
          "kun-ER",
          "nrb-ER",
          "ssy-ER",
          "tig-ER",
          "ti-ER",
          "ca-ES",
          "es-ES",
          "eu-ES",
          "am-ET",
          "fi-FI",
          "sv-FI",
          "en-FJ",
          "fj-FJ",
          "hif-FJ",
          "rtm-FJ",
          "en-FK",
          "en-FM",
          "fo-FO",
          "fr-FR",
          "fr-GA",
          "en-GB",
          "en-GD",
          "ka-GE",
          "fr-GF",
          "en-GG",
          "fr-GG",
          "en-GH",
          "en-GI",
          "kl-GL",
          "en-GM",
          "fr-GN",
          "ff-GN",
          "fr-GP",
          "fan-GQ",
          "fr-GQ",
          "pt-GQ",
          "es-GQ",
          "el-GR",
          "en-GS",
          "es-GT",
          "ch-GU",
          "en-GU",
          "es-GU",
          "pt-GW",
          "en-GY",
          "en-HK",
          "zh-HK",
          "en-HM",
          "es-HN",
          "hr-HR",
          "fr-HT",
          "ht-HT",
          "hu-HU",
          "id-ID",
          "en-IE",
          "ga-IE",
          "ar-IL",
          "he-IL",
          "en-IM",
          "gv-IM",
          "en-IN",
          "hi-IN",
          "en-IO",
          "ar-IQ",
          "ku-IQ",
          "fa-IR",
          "is-IS",
          "it-IT",
          "en-JE",
          "fr-JE",
          "en-JM",
          "ar-JO",
          "ja-JP",
          "en-KE",
          "sw-KE",
          "ky-KG",
          "ru-KG",
          "km-KH",
          "en-KI",
          "ar-KM",
          "fr-KM",
          "en-KN",
          "ko-KP",
          "ko-KR",
          "ar-KW",
          "en-KY",
          "kk-KZ",
          "ru-KZ",
          "lo-LA",
          "ar-LB",
          "fr-LB",
          "en-LC",
          "de-LI",
          "si-LK",
          "ta-LK",
          "en-LR",
          "en-LS",
          "st-LS",
          "lt-LT",
          "de-LU",
          "fr-LU",
          "lb-LU",
          "lv-LV",
          "ar-LY",
          "ar-MA",
          "fr-MC",
          "ro-MD",
          "bs-ME",
          "hr-ME",
          "sq-ME",
          "sr-ME",
          "en-MF",
          "fr-MF",
          "nl-MF",
          "fr-MG",
          "mg-MG",
          "en-MH",
          "mh-MH",
          "mk-MK",
          "fr-ML",
          "my-MM",
          "mn-MN",
          "pt-MO",
          "zh-MO",
          "ch-MP",
          "en-MP",
          "fr-MQ",
          "ar-MR",
          "en-MS",
          "en-MT",
          "mt-MT",
          "en-MU",
          "dv-MV",
          "en-MW",
          "ny-MW",
          "es-MX",
          "ms-MY",
          "pt-MZ",
          "af-NA",
          "en-NA",
          "fr-NC",
          "fr-NE",
          "en-NF",
          "en-NG",
          "es-NI",
          "nl-NL",
          "nn-NO",
          "nb-NO",
          "no-NO",
          "ne-NP",
          "en-NR",
          "na-NR",
          "en-NU",
          "en-NZ",
          "mi-NZ",
          "ar-OM",
          "es-PA",
          "es-PE",
          "fr-PF",
          "en-PG",
          "en-PH",
          "en-PK",
          "ur-PK",
          "pl-PL",
          "fr-PM",
          "en-PN",
          "en-PR",
          "es-PR",
          "ar-PS",
          "pt-PT",
          "en-PW",
          "gn-PY",
          "es-PY",
          "ar-QA",
          "fr-RE",
          "ro-RO",
          "sr-RS",
          "ru-RU",
          "en-RW",
          "fr-RW",
          "rw-RW",
          "ar-SA",
          "en-SB",
          "en-SC",
          "fr-SC",
          "ar-SD",
          "en-SD",
          "sv-SE",
          "en-SG",
          "ms-SG",
          "ta-SG",
          "zh-SG",
          "en-SH",
          "sl-SI",
          "no-SJ",
          "sk-SK",
          "en-SL",
          "it-SM",
          "fr-SN",
          "ar-SO",
          "so-SO",
          "nl-SR",
          "en-SS",
          "pt-ST",
          "es-SV",
          "en-SX",
          "nl-SX",
          "ar-SY",
          "en-SZ",
          "ss-SZ",
          "en-TC",
          "ar-TD",
          "fr-TD",
          "fr-TF",
          "fr-TG",
          "th-TH",
          "ru-TJ",
          "tg-TJ",
          "en-TK",
          "pt-TL",
          "ru-TM",
          "tk-TM",
          "ar-TN",
          "en-TO",
          "to-TO",
          "tr-TR",
          "en-TT",
          "en-TV",
          "zh-TW",
          "en-TZ",
          "sw-TZ",
          "uk-UA",
          "en-UG",
          "sw-UG",
          "en-UM",
          "en-US",
          "es-UY",
          "ru-UZ",
          "uz-UZ",
          "de-VA",
          "fr-VA",
          "it-VA",
          "la-VA",
          "en-VC",
          "es-VE",
          "en-VG",
          "en-VI",
          "vi-VN",
          "bi-VU",
          "en-VU",
          "fr-VU",
          "fr-WF",
          "en-WS",
          "sm-WS",
          "sq-XK",
          "sr-XK",
          "ar-YE",
          "fr-YT",
          "af-ZA",
          "en-ZA",
          "nr-ZA",
          "st-ZA",
          "ss-ZA",
          "tn-ZA",
          "ts-ZA",
          "ve-ZA",
          "xh-ZA",
          "zu-ZA",
          "en-ZM",
          "en-ZW",
          "nd-ZW",
          "sn-ZW"
        ]
      },
      "publicLocales": {
        "type": "array",
        "description": "Locales available to choose from on public pages",
        "minItems": 1,
        "maxItems": 50,
        "x-constraint": {
          "unique": true
        },
        "items": {
          "$ref": "#/components/schemas/Model2"
        }
      },
      "publicPagesExperiments": {
        "type": "array",
        "description": "Experimental flags, use \"all\" for enabling all",
        "items": {
          "type": "string",
          "description": "Short string",
          "example": "A short-sized string",
          "minLength": 0,
          "maxLength": 100,
          "x-convert": {
            "trim": true
          }
        }
      },
      "resources": {
        "type": "array",
        "description": "Resource identifiers",
        "x-constraint": {
          "unique": true,
          "single": true
        },
        "items": {
          "type": "string",
          "description": "Identifier of resource",
          "example": "FejxZ0WWpXTjzIScVEq0",
          "pattern": "^[a-zA-Z0-9]{20}$",
          "x-convert": {
            "trim": true
          }
        }
      },
      "services": {
        "type": "array",
        "description": "Service identifiers",
        "x-constraint": {
          "unique": true,
          "single": true
        },
        "items": {
          "type": "string",
          "description": "Identifier of service",
          "example": "FejxZ0WWpXTjzIScVEq0",
          "pattern": "^[a-zA-Z0-9]{20}$",
          "x-convert": {
            "trim": true
          }
        }
      },
      "activeResources": {
        "type": "array",
        "description": "Currently active resources",
        "x-constraint": {
          "unique": true,
          "single": true
        },
        "items": {
          "type": "string",
          "description": "Unique identifier",
          "example": "FejxZ0WWpXTjzIScVEq0",
          "pattern": "^[a-zA-Z0-9]{20}$",
          "x-convert": {
            "trim": true
          }
        }
      },
      "activeServices": {
        "type": "array",
        "description": "Currently active service",
        "x-constraint": {
          "unique": true,
          "single": true
        },
        "items": {
          "type": "string",
          "description": "Unique identifier",
          "example": "FejxZ0WWpXTjzIScVEq0",
          "pattern": "^[a-zA-Z0-9]{20}$",
          "x-convert": {
            "trim": true
          }
        }
      },
      "array": {
        "type": "string",
        "enum": [
          "ACTIVE",
          "AWAY",
          "UNAVAILABLE",
          "INACTIVE",
          "BUSY"
        ]
      },
      "availableWaitlistResourceIds": {
        "type": "array",
        "description": "Available resources for waitlist",
        "x-constraint": {
          "unique": true,
          "single": true
        },
        "items": {
          "type": "string",
          "description": "Identifier of resource",
          "example": "FejxZ0WWpXTjzIScVEq0",
          "pattern": "^[a-zA-Z0-9]{20}$",
          "x-convert": {
            "trim": true
          }
        }
      },
      "availableWaitlistServiceIds": {
        "type": "array",
        "description": "Available services for waitlist",
        "x-constraint": {
          "unique": true,
          "single": true
        },
        "items": {
          "type": "string",
          "description": "Identifier of service",
          "example": "FejxZ0WWpXTjzIScVEq0",
          "pattern": "^[a-zA-Z0-9]{20}$",
          "x-convert": {
            "trim": true
          }
        }
      },
      "availableBookingResourceIds": {
        "type": "array",
        "description": "Available services for booking",
        "x-constraint": {
          "unique": true,
          "single": true
        },
        "items": {
          "type": "string",
          "description": "Identifier of resource",
          "example": "FejxZ0WWpXTjzIScVEq0",
          "pattern": "^[a-zA-Z0-9]{20}$",
          "x-convert": {
            "trim": true
          }
        }
      },
      "availableBookingServiceIds": {
        "type": "array",
        "description": "Available services for booking",
        "x-constraint": {
          "unique": true,
          "single": true
        },
        "items": {
          "type": "string",
          "description": "Identifier of service",
          "example": "FejxZ0WWpXTjzIScVEq0",
          "pattern": "^[a-zA-Z0-9]{20}$",
          "x-convert": {
            "trim": true
          }
        }
      },
      "ZeroPositiveIntMapById": {
        "type": "object",
        "description": "Number of waiting by resource"
      },
      "ZeroPositiveIntMapById1": {
        "type": "object",
        "description": "Number of serving by resource"
      },
      "ZeroPositiveIntByInt": {
        "type": "object",
        "description": "Number of waiting by party size"
      },
      "ZeroPositiveIntByInt1": {
        "type": "object",
        "description": "Number of serving by party size"
      },
      "ZeroPositiveIntMapById2": {
        "type": "object",
        "description": "Number of waiting by service"
      },
      "ZeroPositiveIntMapById3": {
        "type": "object",
        "description": "Number of serving by service"
      },
      "waitEstimationMethodInfo": {
        "type": "object",
        "description": "Wait estimation methods and model files",
        "properties": {
          "method": {
            "type": "string",
            "nullable": true
          },
          "version": {
            "type": "string",
            "nullable": true
          },
          "estimateServiceDuration": {
            "type": "boolean",
            "nullable": true
          },
          "partySizeServiceDurationFactor": {
            "type": "number",
            "description": "Positive integer",
            "example": 1.2,
            "nullable": true
          }
        }
      },
      "ZeroPositiveIntByInt2": {
        "type": "object",
        "description": "Estimated wait time by party size"
      },
      "waitByResource": {
        "type": "object",
        "description": "Estimated wait time by resource"
      },
      "ZeroPositiveIntMapById4": {
        "type": "object",
        "description": "Estimated wait time by service"
      },
      "naEstWaitReason": {
        "type": "string",
        "description": "Reason for n/a estimated wait",
        "example": "A short-sized string",
        "enum": [
          "LOCATION_IS_CLOSED_FOR_DAY",
          "LOCATION_IS_FORCED_CLOSED",
          "NO_RESOURCES_AVAILABLE",
          "NO_SERVERS_AVAILABLE",
          "REASON_UNKNOWN",
          "WAIT_EXCEEDS_HOURS"
        ],
        "minLength": 0,
        "maxLength": 100,
        "x-convert": {
          "trim": true
        }
      },
      "smsProviderNumbers": {
        "type": "array",
        "items": {
          "type": "string",
          "description": "Phone number in E.164 format",
          "example": "+16005551234",
          "x-convert": {
            "trim": true
          }
        }
      },
      "LocationStatusResponse": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier",
            "example": "FejxZ0WWpXTjzIScVEq0",
            "pattern": "^[a-zA-Z0-9]{20}$",
            "x-convert": {
              "trim": true
            }
          },
          "accountId": {
            "type": "string",
            "description": "Unique identifier",
            "example": "FejxZ0WWpXTjzIScVEq0",
            "pattern": "^[a-zA-Z0-9]{20}$",
            "x-convert": {
              "trim": true
            }
          },
          "name": {
            "type": "string",
            "description": "Name",
            "example": "A short-sized string",
            "nullable": true,
            "minLength": 0,
            "maxLength": 100,
            "x-convert": {
              "trim": true
            }
          },
          "displayName": {
            "type": "string",
            "description": "Display name used in customer facing pages",
            "example": "A short-sized string",
            "nullable": true,
            "minLength": 0,
            "maxLength": 100,
            "x-convert": {
              "trim": true
            }
          },
          "shortName": {
            "type": "string",
            "description": "Short name for use in URLs",
            "example": "shortname",
            "maxLength": 30,
            "pattern": "^[a-z0-9-]{3,20}[0-9]{0,10}$",
            "x-convert": {
              "case": "lower",
              "trim": true
            }
          },
          "businessName": {
            "type": "string",
            "description": "Name of company or organization",
            "example": "A short-sized string",
            "minLength": 1,
            "maxLength": 100,
            "x-convert": {
              "trim": true
            }
          },
          "businessType": {
            "$ref": "#/components/schemas/businessType"
          },
          "address": {
            "$ref": "#/components/schemas/Address"
          },
          "phone": {
            "type": "string",
            "description": "Phone number in E.164 format",
            "example": "+16005551234",
            "x-convert": {
              "trim": true
            }
          },
          "email": {
            "type": "string",
            "description": "Email address",
            "example": "test@test.com",
            "maxLength": 100,
            "x-format": {
              "email": true
            },
            "x-convert": {
              "case": "lower",
              "trim": true
            }
          },
          "timezone": {
            "type": "string",
            "description": "Timezone in xxx/yyy format",
            "example": "A short-sized string",
            "minLength": 0,
            "maxLength": 30,
            "x-convert": {
              "trim": true
            }
          },
          "currency": {
            "type": "string",
            "description": "Currency in ISO 4217 format",
            "example": "USD",
            "minLength": 3,
            "maxLength": 3,
            "x-convert": {
              "case": "upper",
              "trim": true
            }
          },
          "publicLocales": {
            "$ref": "#/components/schemas/publicLocales"
          },
          "logoUrl": {
            "type": "string",
            "description": "URL to logo image",
            "example": "https://test.com/test",
            "nullable": true,
            "x-format": {
              "uri": {
                "scheme": [
                  "http",
                  "https"
                ]
              }
            }
          },
          "publicLogoUrl": {
            "type": "string",
            "description": "URL to public-facing location logo",
            "example": "https://test.com/test",
            "nullable": true,
            "x-format": {
              "uri": {
                "scheme": [
                  "http",
                  "https"
                ]
              }
            }
          },
          "maxPartySize": {
            "type": "integer",
            "description": "Positive integer",
            "example": 1,
            "nullable": true,
            "minimum": 1
          },
          "maxPartySizeBookings": {
            "type": "integer",
            "description": "Positive integer",
            "example": 1,
            "nullable": true,
            "minimum": 1
          },
          "accountShortName": {
            "type": "string",
            "description": "Short name for use in URLs",
            "example": "shortname",
            "maxLength": 30,
            "pattern": "^[a-z0-9-]{3,20}[0-9]{0,10}$",
            "x-convert": {
              "case": "lower",
              "trim": true
            }
          },
          "accountBusinessName": {
            "type": "string",
            "description": "Name",
            "example": "A short-sized string",
            "nullable": true,
            "minLength": 0,
            "maxLength": 100,
            "x-convert": {
              "trim": true
            }
          },
          "isFreeAccount": {
            "type": "boolean",
            "description": "Boolean flag",
            "example": true
          },
          "enableNewStatusPage": {
            "type": "boolean",
            "description": "Boolean flag",
            "example": true
          },
          "publicPagesExperiments": {
            "$ref": "#/components/schemas/publicPagesExperiments"
          },
          "labels": {
            "$ref": "#/components/schemas/Labels"
          },
          "isActive": {
            "type": "boolean",
            "description": "Flag to indicate if active",
            "example": true
          },
          "isWaitlistActive": {
            "type": "boolean",
            "description": "Flag to indicate if available for waitlist",
            "example": true
          },
          "isBookingActive": {
            "type": "boolean",
            "description": "Flag to indicate if available for booking",
            "example": true
          },
          "isPublicSearch": {
            "type": "boolean",
            "description": "Flag to indicate if location is searchable",
            "example": true
          },
          "isPublicBooking": {
            "type": "boolean",
            "description": "Flag to indicate if booking check-in is open to public",
            "example": true
          },
          "isPublicWaitlist": {
            "type": "boolean",
            "description": "Flag to indicate if waitlist is open to public",
            "example": true
          },
          "isPublicCheckIn": {
            "type": "boolean",
            "description": "Flag to indicate if waitlist check-in is open to public",
            "example": true
          },
          "isOpen": {
            "type": "boolean",
            "description": "Flag to indicate if waitlist is open overriding other settings",
            "example": true
          },
          "isWaitlistOpen": {
            "type": "boolean",
            "description": "Flag to indicate if waitlist is open",
            "example": true
          },
          "isBookingOpen": {
            "type": "boolean",
            "description": "Flag to indicate if booking is open",
            "example": true
          },
          "isForceOpen": {
            "type": "boolean",
            "description": "Flag to indicate if waitlist is open overriding other settings",
            "example": true
          },
          "isForceClosed": {
            "type": "boolean",
            "description": "Flag to indicate if waitlist is closed overriding other settings",
            "example": true
          },
          "isWaitlistFull": {
            "type": "boolean",
            "description": "Flag to indicate if waitlist is full",
            "example": true
          },
          "isServingFull": {
            "type": "boolean",
            "description": "Flag to indicate if serving list is full",
            "example": true
          },
          "showCheckInWelcome": {
            "type": "boolean",
            "description": "Flag to indicate public pages should show check-in welcome",
            "example": true
          },
          "allowSMSSignup": {
            "type": "boolean",
            "description": "Boolean flag",
            "example": true
          },
          "allowIncomingMessages": {
            "type": "boolean",
            "description": "Boolean flag",
            "example": true
          },
          "resources": {
            "$ref": "#/components/schemas/resources"
          },
          "services": {
            "$ref": "#/components/schemas/services"
          },
          "activeResources": {
            "$ref": "#/components/schemas/activeResources"
          },
          "activeServices": {
            "$ref": "#/components/schemas/activeServices"
          },
          "availabilityStateByResource": {
            "type": "object",
            "properties": {
              "array": {
                "$ref": "#/components/schemas/array"
              }
            }
          },
          "availableWaitlistResourceIds": {
            "$ref": "#/components/schemas/availableWaitlistResourceIds"
          },
          "availableWaitlistServiceIds": {
            "$ref": "#/components/schemas/availableWaitlistServiceIds"
          },
          "availableBookingResourceIds": {
            "$ref": "#/components/schemas/availableBookingResourceIds"
          },
          "availableBookingServiceIds": {
            "$ref": "#/components/schemas/availableBookingServiceIds"
          },
          "hasCapacitySinceByResource": {
            "type": "object",
            "properties": {
              "array": {
                "type": "string",
                "format": "date-time",
                "description": "Date in ISO-8601 format",
                "example": "2020-01-01T17:00:00.000Z"
              }
            }
          },
          "numServers": {
            "type": "integer",
            "description": "Current number of servers",
            "example": 1,
            "nullable": true,
            "minimum": 1
          },
          "numWaitingByResource": {
            "$ref": "#/components/schemas/ZeroPositiveIntMapById"
          },
          "numServingByResource": {
            "$ref": "#/components/schemas/ZeroPositiveIntMapById1"
          },
          "numWaitingByPartySize": {
            "$ref": "#/components/schemas/ZeroPositiveIntByInt"
          },
          "numServingByPartySize": {
            "$ref": "#/components/schemas/ZeroPositiveIntByInt1"
          },
          "numWaitingByService": {
            "$ref": "#/components/schemas/ZeroPositiveIntMapById2"
          },
          "numServingByService": {
            "$ref": "#/components/schemas/ZeroPositiveIntMapById3"
          },
          "numPendingWaiting": {
            "type": "integer",
            "description": "Number of pending waiting parties",
            "example": 2,
            "minimum": 0
          },
          "numDraftWaiting": {
            "type": "integer",
            "description": "Number of draft waiting parties",
            "example": 2,
            "minimum": 0
          },
          "numDraftBooked": {
            "type": "integer",
            "description": "Number of draft booked parties",
            "example": 2,
            "minimum": 0
          },
          "numWaiting": {
            "type": "integer",
            "description": "Number of waiting parties",
            "example": 2,
            "minimum": 0
          },
          "numServing": {
            "type": "integer",
            "description": "Number of serving parties",
            "example": 2,
            "minimum": 0
          },
          "numBooked": {
            "type": "integer",
            "description": "Number of booked parties",
            "example": 2,
            "minimum": 0
          },
          "numPendingWaitingGuests": {
            "type": "integer",
            "description": "Number of pending waiting individuals",
            "example": 2,
            "minimum": 0
          },
          "numDraftWaitingGuests": {
            "type": "integer",
            "description": "Number of draft waiting individuals",
            "example": 2,
            "minimum": 0
          },
          "numDraftBookedGuests": {
            "type": "integer",
            "description": "Number of draft booked individuals",
            "example": 2,
            "minimum": 0
          },
          "numWaitingGuests": {
            "type": "integer",
            "description": "Number of waiting individuals",
            "example": 2,
            "minimum": 0
          },
          "numServingGuests": {
            "type": "integer",
            "description": "Number of serving individuals",
            "example": 2,
            "minimum": 0
          },
          "numBookedGuests": {
            "type": "integer",
            "description": "Number of booked individuals",
            "example": 2,
            "minimum": 0
          },
          "nextTicket": {
            "type": "integer",
            "description": "Ticket counter",
            "example": 2,
            "minimum": 0
          },
          "waitEstimationMethodInfo": {
            "$ref": "#/components/schemas/waitEstimationMethodInfo"
          },
          "openDuration": {
            "type": "integer",
            "description": "Time in seconds until open",
            "example": 900,
            "minimum": 0
          },
          "wait": {
            "type": "integer",
            "description": "Estimated wait time in seconds",
            "example": 0,
            "nullable": true
          },
          "waitByPartySize": {
            "$ref": "#/components/schemas/ZeroPositiveIntByInt2"
          },
          "waitByResource": {
            "$ref": "#/components/schemas/waitByResource"
          },
          "waitByService": {
            "$ref": "#/components/schemas/ZeroPositiveIntMapById4"
          },
          "naEstWaitReason": {
            "$ref": "#/components/schemas/naEstWaitReason"
          },
          "smsProviderNumbers": {
            "$ref": "#/components/schemas/smsProviderNumbers"
          },
          "lastBookingUpdate": {
            "type": "string",
            "format": "date-time",
            "description": "Date and time of last update",
            "example": "2020-01-01T17:00:00.000Z"
          },
          "lastActive": {
            "type": "string",
            "format": "date-time",
            "description": "Date and time of last active",
            "example": "2020-01-01T17:00:00.000Z"
          },
          "updated": {
            "type": "string",
            "format": "date-time",
            "description": "Date and time of last update",
            "example": "2020-01-01T17:00:00.000Z"
          }
        }
      }
    }
  },
  "paths": {
    "/location-status/{locationId}": {
      "get": {
        "summary": "Retrieve a location-status",
        "operationId": "getLocationstatusLocationid",
        "parameters": [
          {
            "name": "locationId",
            "in": "path",
            "schema": {
              "type": "string",
              "description": "Identifier of location",
              "example": "FejxZ0WWpXTjzIScVEq0",
              "pattern": "^[a-zA-Z0-9]{20}$",
              "x-convert": {
                "trim": true
              }
            },
            "description": "Identifier of location",
            "required": true
          }
        ],
        "tags": [
          "Location Status"
        ],
        "responses": {
          "200": {
            "description": "Successful",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LocationStatusResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "429": {
            "description": "Too Many Requests"
          }
        }
      }
    }
  },
  "x-alt-definitions": {
    "string": {
      "type": "array",
      "items": {
        "anyOf": [
          {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "number"
              },
              {
                "type": "boolean"
              },
              {
                "type": "string",
                "nullable": true
              }
            ]
          },
          {
            "type": "string"
          }
        ]
      }
    },
    "locationIds": {
      "type": "array",
      "description": "Location identifiers",
      "example": "0bNUpoiBT1PoOZogGLeq",
      "x-constraint": {
        "unique": true,
        "single": true
      },
      "items": {
        "type": "string",
        "description": "Unique identifier",
        "example": "FejxZ0WWpXTjzIScVEq0",
        "pattern": "^[a-zA-Z0-9]{20}$",
        "x-convert": {
          "trim": true
        }
      }
    },
    "waitDurationQuantiles": {
      "type": "array",
      "items": {
        "type": "number",
        "description": "Zero or positive decimal",
        "example": 0.5,
        "minimum": 0
      }
    },
    "serveDurationQuantiles": {
      "type": "array",
      "items": {
        "type": "number",
        "description": "Zero or positive decimal",
        "example": 0.5,
        "minimum": 0
      }
    },
    "numWaitlistedByDayOfWeek": {
      "type": "array",
      "items": {
        "type": "integer",
        "description": "Zero or positive integer",
        "example": 2,
        "minimum": 0
      }
    },
    "numBookedByDayOfWeek": {
      "type": "array",
      "items": {
        "type": "integer",
        "description": "Zero or positive integer",
        "example": 2,
        "minimum": 0
      }
    },
    "numServedByDayOfWeek": {
      "type": "array",
      "items": {
        "type": "integer",
        "description": "Zero or positive integer",
        "example": 2,
        "minimum": 0
      }
    },
    "numNoShowedByDayOfWeek": {
      "type": "array",
      "items": {
        "type": "integer",
        "description": "Zero or positive integer",
        "example": 2,
        "minimum": 0
      }
    },
    "numWaitlistedByHourOfDay": {
      "type": "array",
      "items": {
        "type": "integer",
        "description": "Zero or positive integer",
        "example": 2,
        "minimum": 0
      }
    },
    "numBookedByHourOfDay": {
      "type": "array",
      "items": {
        "type": "integer",
        "description": "Zero or positive integer",
        "example": 2,
        "minimum": 0
      }
    },
    "numServedByHourOfDay": {
      "type": "array",
      "items": {
        "type": "integer",
        "description": "Zero or positive integer",
        "example": 2,
        "minimum": 0
      }
    },
    "numNoShowedByHourOfDay": {
      "type": "array",
      "items": {
        "type": "integer",
        "description": "Zero or positive integer",
        "example": 2,
        "minimum": 0
      }
    },
    "VisitAnalyticsStats": {
      "type": "object",
      "properties": {
        "numVisits": {
          "type": "integer",
          "description": "Zero or positive integer",
          "example": 2,
          "minimum": 0
        },
        "numWaitlisted": {
          "type": "integer",
          "description": "Zero or positive integer",
          "example": 2,
          "minimum": 0
        },
        "numBookingsMade": {
          "type": "integer",
          "description": "Zero or positive integer",
          "example": 2,
          "minimum": 0
        },
        "numBookings": {
          "type": "integer",
          "description": "Zero or positive integer",
          "example": 2,
          "minimum": 0
        },
        "numNoShowed": {
          "type": "integer",
          "description": "Zero or positive integer",
          "example": 2,
          "minimum": 0
        },
        "numServed": {
          "type": "integer",
          "description": "Zero or positive integer",
          "example": 2,
          "minimum": 0
        },
        "numCompleted": {
          "type": "integer",
          "description": "Zero or positive integer",
          "example": 2,
          "minimum": 0
        },
        "numCancelled": {
          "type": "integer",
          "description": "Zero or positive integer",
          "example": 2,
          "minimum": 0
        },
        "numRemoved": {
          "type": "integer",
          "description": "Zero or positive integer",
          "example": 2,
          "minimum": 0
        },
        "numCheckIns": {
          "type": "integer",
          "description": "Zero or positive integer",
          "example": 2,
          "minimum": 0
        },
        "numUniqueCustomers": {
          "type": "integer",
          "description": "Zero or positive integer",
          "example": 2,
          "minimum": 0
        },
        "numCustomers": {
          "type": "integer",
          "description": "Zero or positive integer",
          "example": 2,
          "minimum": 0
        },
        "serveRatio": {
          "type": "number",
          "description": "Zero or positive decimal",
          "example": 0.5,
          "minimum": 0
        },
        "cancelRatio": {
          "type": "number",
          "description": "Zero or positive decimal",
          "example": 0.5,
          "minimum": 0
        },
        "avgPartySize": {
          "type": "number",
          "description": "Zero or positive decimal",
          "example": 0.5,
          "minimum": 0
        },
        "avgWaitDuration": {
          "type": "number",
          "description": "Zero or positive decimal",
          "example": 0.5,
          "minimum": 0
        },
        "avgServeDuration": {
          "type": "number",
          "description": "Zero or positive decimal",
          "example": 0.5,
          "minimum": 0
        },
        "waitDurationQuantiles": {
          "$ref": "#/x-alt-definitions/waitDurationQuantiles"
        },
        "serveDurationQuantiles": {
          "$ref": "#/x-alt-definitions/serveDurationQuantiles"
        },
        "numWaitlistedByDayOfWeek": {
          "$ref": "#/x-alt-definitions/numWaitlistedByDayOfWeek"
        },
        "numBookedByDayOfWeek": {
          "$ref": "#/x-alt-definitions/numBookedByDayOfWeek"
        },
        "numServedByDayOfWeek": {
          "$ref": "#/x-alt-definitions/numServedByDayOfWeek"
        },
        "numNoShowedByDayOfWeek": {
          "$ref": "#/x-alt-definitions/numNoShowedByDayOfWeek"
        },
        "numWaitlistedByHourOfDay": {
          "$ref": "#/x-alt-definitions/numWaitlistedByHourOfDay"
        },
        "numBookedByHourOfDay": {
          "$ref": "#/x-alt-definitions/numBookedByHourOfDay"
        },
        "numServedByHourOfDay": {
          "$ref": "#/x-alt-definitions/numServedByHourOfDay"
        },
        "numNoShowedByHourOfDay": {
          "$ref": "#/x-alt-definitions/numNoShowedByHourOfDay"
        }
      }
    },
    "VisitAnalyticsGroupBy": {
      "type": "object",
      "properties": {
        "numVisits": {
          "type": "integer",
          "description": "Zero or positive integer",
          "example": 2,
          "minimum": 0
        },
        "numWaitlisted": {
          "type": "integer",
          "description": "Zero or positive integer",
          "example": 2,
          "minimum": 0
        },
        "numBookingsMade": {
          "type": "integer",
          "description": "Zero or positive integer",
          "example": 2,
          "minimum": 0
        },
        "numBookings": {
          "type": "integer",
          "description": "Zero or positive integer",
          "example": 2,
          "minimum": 0
        },
        "numNoShowed": {
          "type": "integer",
          "description": "Zero or positive integer",
          "example": 2,
          "minimum": 0
        },
        "numServed": {
          "type": "integer",
          "description": "Zero or positive integer",
          "example": 2,
          "minimum": 0
        },
        "numCompleted": {
          "type": "integer",
          "description": "Zero or positive integer",
          "example": 2,
          "minimum": 0
        },
        "numCancelled": {
          "type": "integer",
          "description": "Zero or positive integer",
          "example": 2,
          "minimum": 0
        },
        "numRemoved": {
          "type": "integer",
          "description": "Zero or positive integer",
          "example": 2,
          "minimum": 0
        },
        "numCheckIns": {
          "type": "integer",
          "description": "Zero or positive integer",
          "example": 2,
          "minimum": 0
        },
        "numUniqueCustomers": {
          "type": "integer",
          "description": "Zero or positive integer",
          "example": 2,
          "minimum": 0
        },
        "numCustomers": {
          "type": "integer",
          "description": "Zero or positive integer",
          "example": 2,
          "minimum": 0
        },
        "serveRatio": {
          "type": "number",
          "description": "Zero or positive decimal",
          "example": 0.5,
          "minimum": 0
        },
        "cancelRatio": {
          "type": "number",
          "description": "Zero or positive decimal",
          "example": 0.5,
          "minimum": 0
        },
        "avgPartySize": {
          "type": "number",
          "description": "Zero or positive decimal",
          "example": 0.5,
          "minimum": 0
        },
        "avgWaitDuration": {
          "type": "number",
          "description": "Zero or positive decimal",
          "example": 0.5,
          "minimum": 0
        },
        "avgServeDuration": {
          "type": "number",
          "description": "Zero or positive decimal",
          "example": 0.5,
          "minimum": 0
        },
        "waitDurationQuantiles": {
          "$ref": "#/x-alt-definitions/waitDurationQuantiles"
        },
        "serveDurationQuantiles": {
          "$ref": "#/x-alt-definitions/serveDurationQuantiles"
        },
        "numWaitlistedByDayOfWeek": {
          "$ref": "#/x-alt-definitions/numWaitlistedByDayOfWeek"
        },
        "numBookedByDayOfWeek": {
          "$ref": "#/x-alt-definitions/numBookedByDayOfWeek"
        },
        "numServedByDayOfWeek": {
          "$ref": "#/x-alt-definitions/numServedByDayOfWeek"
        },
        "numNoShowedByDayOfWeek": {
          "$ref": "#/x-alt-definitions/numNoShowedByDayOfWeek"
        },
        "numWaitlistedByHourOfDay": {
          "$ref": "#/x-alt-definitions/numWaitlistedByHourOfDay"
        },
        "numBookedByHourOfDay": {
          "$ref": "#/x-alt-definitions/numBookedByHourOfDay"
        },
        "numServedByHourOfDay": {
          "$ref": "#/x-alt-definitions/numServedByHourOfDay"
        },
        "numNoShowedByHourOfDay": {
          "$ref": "#/x-alt-definitions/numNoShowedByHourOfDay"
        },
        "id": {
          "type": "string",
          "description": "Unique identifier",
          "example": "FejxZ0WWpXTjzIScVEq0",
          "pattern": "^[a-zA-Z0-9]{20}$",
          "x-convert": {
            "trim": true
          }
        },
        "name": {
          "type": "string",
          "description": "Name",
          "example": "A short-sized string",
          "nullable": true,
          "minLength": 0,
          "maxLength": 100,
          "x-convert": {
            "trim": true
          }
        },
        "categoryId": {
          "type": "string",
          "description": "Unique identifier",
          "example": "FejxZ0WWpXTjzIScVEq0",
          "pattern": "^[a-zA-Z0-9]{20}$",
          "x-convert": {
            "trim": true
          }
        },
        "categoryName": {
          "type": "string",
          "description": "Name",
          "example": "A short-sized string",
          "nullable": true,
          "minLength": 0,
          "maxLength": 100,
          "x-convert": {
            "trim": true
          }
        }
      }
    },
    "locations": {
      "type": "array",
      "items": {
        "$ref": "#/x-alt-definitions/VisitAnalyticsGroupBy"
      }
    },
    "resources": {
      "type": "array",
      "items": {
        "$ref": "#/x-alt-definitions/VisitAnalyticsGroupBy"
      }
    },
    "services": {
      "type": "array",
      "items": {
        "$ref": "#/x-alt-definitions/VisitAnalyticsGroupBy"
      }
    },
    "dataFields": {
      "type": "array",
      "items": {
        "$ref": "#/x-alt-definitions/VisitAnalyticsGroupBy"
      }
    },
    "partySizes": {
      "type": "array",
      "items": {
        "$ref": "#/x-alt-definitions/VisitAnalyticsGroupBy"
      }
    },
    "users": {
      "type": "array",
      "items": {
        "$ref": "#/x-alt-definitions/VisitAnalyticsGroupBy"
      }
    },
    "VisitAnalyticsResponse": {
      "type": "object",
      "properties": {
        "locationIds": {
          "$ref": "#/x-alt-definitions/locationIds"
        },
        "fromDate": {
          "type": "string",
          "format": "date-time",
          "description": "Date in ISO-8601 format",
          "example": "2020-01-01T17:00:00.000Z"
        },
        "toDate": {
          "type": "string",
          "format": "date-time",
          "description": "Date in ISO-8601 format",
          "example": "2020-01-01T17:00:00.000Z"
        },
        "timezone": {
          "type": "string",
          "description": "Timezone in xxx/yyy format",
          "example": "A short-sized string",
          "minLength": 0,
          "maxLength": 30,
          "x-convert": {
            "trim": true
          }
        },
        "overall": {
          "$ref": "#/x-alt-definitions/VisitAnalyticsStats"
        },
        "locations": {
          "$ref": "#/x-alt-definitions/locations"
        },
        "resources": {
          "$ref": "#/x-alt-definitions/resources"
        },
        "services": {
          "$ref": "#/x-alt-definitions/services"
        },
        "dataFields": {
          "$ref": "#/x-alt-definitions/dataFields"
        },
        "partySizes": {
          "$ref": "#/x-alt-definitions/partySizes"
        },
        "users": {
          "$ref": "#/x-alt-definitions/users"
        }
      },
      "required": [
        "locationIds",
        "fromDate",
        "toDate",
        "timezone"
      ]
    },
    "MonthlyVisitAnalyticsPeriod": {
      "type": "object",
      "properties": {
        "period": {
          "type": "string",
          "description": "Year and month in YYYY-MM format",
          "example": "2020-01",
          "pattern": "^[0-9]{4}-(1[0-2]|0[1-9])$",
          "x-convert": {
            "trim": true
          }
        },
        "businessName": {
          "type": "string",
          "description": "Name",
          "example": "A short-sized string",
          "nullable": true,
          "minLength": 0,
          "maxLength": 100,
          "x-convert": {
            "trim": true
          }
        },
        "accountId": {
          "type": "string",
          "description": "Account identifier",
          "example": "FejxZ0WWpXTjzIScVEq0",
          "pattern": "^[a-zA-Z0-9]{20}$",
          "x-convert": {
            "trim": true
          }
        },
        "locationName": {
          "type": "string",
          "description": "Name",
          "example": "A short-sized string",
          "nullable": true,
          "minLength": 0,
          "maxLength": 100,
          "x-convert": {
            "trim": true
          }
        },
        "locationShortName": {
          "type": "string",
          "description": "Short name for use in URLs",
          "example": "shortname",
          "maxLength": 30,
          "pattern": "^[a-z0-9-]{3,20}[0-9]{0,10}$",
          "x-convert": {
            "case": "lower",
            "trim": true
          }
        },
        "locationId": {
          "type": "string",
          "description": "Identifier of location",
          "example": "FejxZ0WWpXTjzIScVEq0",
          "pattern": "^[a-zA-Z0-9]{20}$",
          "x-convert": {
            "trim": true
          }
        },
        "numVisits": {
          "type": "integer",
          "description": "Zero or positive integer",
          "example": 2,
          "minimum": 0
        },
        "numBookingsMade": {
          "type": "integer",
          "description": "Zero or positive integer",
          "example": 2,
          "minimum": 0
        },
        "numBookings": {
          "type": "integer",
          "description": "Zero or positive integer",
          "example": 2,
          "minimum": 0
        },
        "servedVisits": {
          "type": "integer",
          "description": "Zero or positive integer",
          "example": 2,
          "minimum": 0
        },
        "completedVisits": {
          "type": "integer",
          "description": "Zero or positive integer",
          "example": 2,
          "minimum": 0
        },
        "noShowedVisits": {
          "type": "integer",
          "description": "Zero or positive integer",
          "example": 2,
          "minimum": 0
        },
        "cancelledVisits": {
          "type": "integer",
          "description": "Zero or positive integer",
          "example": 2,
          "minimum": 0
        },
        "removedVisits": {
          "type": "integer",
          "description": "Zero or positive integer",
          "example": 2,
          "minimum": 0
        },
        "uniqueCustomers": {
          "type": "integer",
          "description": "Zero or positive integer",
          "example": 2,
          "minimum": 0
        },
        "numCustomers": {
          "type": "integer",
          "description": "Zero or positive integer",
          "example": 2,
          "minimum": 0
        },
        "serveRatio": {
          "type": "integer",
          "description": "Zero or positive integer",
          "example": 2,
          "minimum": 0
        },
        "cancelRatio": {
          "type": "integer",
          "description": "Zero or positive integer",
          "example": 2,
          "minimum": 0
        },
        "avgPartySize": {
          "type": "integer",
          "description": "Zero or positive integer",
          "example": 2,
          "minimum": 0
        },
        "avgWaitDuration": {
          "type": "number",
          "description": "Zero or positive decimal",
          "example": 0.5,
          "minimum": 0
        },
        "avgServeDuration": {
          "type": "number",
          "description": "Zero or positive decimal",
          "example": 0.5,
          "minimum": 0
        },
        "numSmsSent": {
          "type": "integer",
          "description": "Zero or positive integer",
          "example": 2,
          "minimum": 0
        },
        "numEmailSent": {
          "type": "integer",
          "description": "Zero or positive integer",
          "example": 2,
          "minimum": 0
        }
      }
    },
    "MonthlyVisitAnalyticsResponse": {
      "type": "array",
      "items": {
        "$ref": "#/x-alt-definitions/MonthlyVisitAnalyticsPeriod"
      }
    },
    "messageType": {
      "type": "string",
      "enum": [
        "BOOKING-ALERT",
        "WAITLIST-ALERT",
        "BOOKING-RESCHEDULED",
        "WAITLIST-RESCHEDULED",
        "BOOKING-CANCEL",
        "WAITLIST-CANCEL",
        "BOOKING-COMPLETE",
        "WAITLIST-COMPLETE",
        "BOOKING-FOLLOW-UP",
        "WAITLIST-FOLLOW-UP",
        "BOOKING-CONFIRM",
        "WAITLIST-CONFIRM",
        "WAITLIST-NEXT",
        "BOOKING-NO-SHOW",
        "WAITLIST-NO-SHOW",
        "BOOKING-REMINDER",
        "BOOKING-SERVE",
        "WAITLIST-SERVE",
        "BOOKING-REJECTED",
        "BOOKING-REQUESTED",
        "USER-BOOKING-ARRIVED",
        "USER-WAITLIST-ARRIVED",
        "USER-BOOKING-CANCEL",
        "USER-WAITLIST-CANCEL",
        "USER-BOOKING-COMPLETE",
        "USER-WAITLIST-COMPLETE",
        "USER-BOOKING-CONFIRM",
        "USER-BOOKING-WAITING",
        "USER-WAITLIST-CONFIRM",
        "USER-BOOKING-NOSHOW",
        "USER-WAITLIST-NOSHOW",
        "USER-BOOKING-REMOVE",
        "USER-WAITLIST-REMOVE",
        "USER-BOOKING-SERVE",
        "USER-WAITLIST-SERVE",
        "USER-BOOKING-ALERTED",
        "USER-WAITLIST-ALERTED",
        "USER-BOOKING-DELAYED",
        "USER-WAITLIST-DELAYED",
        "USER-BOOKING-CONFIRMED",
        "USER-WAITLIST-CONFIRMED",
        "USER-INCOMING-MESSAGE",
        "USER-BOOKING-RESCHEDULED",
        "USER-WAITLIST-RESCHEDULED",
        "USER-BOOKING-REQUESTED",
        "USER-SURVEY-ANSWERED"
      ]
    },
    "type": {
      "type": "string",
      "enum": [
        "FCM"
      ]
    },
    "Model1": {
      "type": "object",
      "properties": {
        "type": {
          "$ref": "#/x-alt-definitions/type"
        },
        "token": {
          "type": "string",
          "description": "FCM token or similar",
          "minLength": 1,
          "maxLength": 2000
        }
      },
      "required": [
        "type",
        "token"
      ]
    },
    "VisitMessagingTokens": {
      "type": "array",
      "description": "Tokens used for sending visit messages",
      "x-meta": {
        "publicDocsVisibility": false
      },
      "maxItems": 5,
      "items": {
        "$ref": "#/x-alt-definitions/Model1"
      }
    },
    "liveActivityToken": {
      "type": "object",
      "description": "Update token for customer live activity",
      "x-meta": {
        "publicDocsVisibility": false
      },
      "nullable": true,
      "properties": {
        "fcmToken": {
          "type": "string",
          "description": "FCM token or similar",
          "minLength": 1,
          "maxLength": 2000
        },
        "apnsToken": {
          "type": "string",
          "description": "FCM token or similar",
          "minLength": 1,
          "maxLength": 2000
        }
      }
    },
    "VisitServicesById": {
      "type": "object",
      "description": "Services of visit, ***deprecated*** use serviceIds instead",
      "nullable": true
    },
    "VisitResourcesById": {
      "type": "object",
      "description": "Resources of visit, ***deprecated*** use resourceIds instead",
      "nullable": true
    },
    "VisitDataFieldsById": {
      "type": "object",
      "description": "Data-fields of visit, ***deprecated*** use dataFields instead"
    },
    "serviceIds": {
      "type": "array",
      "description": "Service identifiers",
      "nullable": true,
      "x-constraint": {
        "unique": true,
        "single": true
      },
      "items": {
        "type": "string",
        "description": "Identifier of service",
        "example": "FejxZ0WWpXTjzIScVEq0",
        "pattern": "^[a-zA-Z0-9]{20}$",
        "x-convert": {
          "trim": true
        }
      }
    },
    "resourceIds": {
      "type": "array",
      "description": "Resource identifiers",
      "nullable": true,
      "x-constraint": {
        "unique": true,
        "single": true
      },
      "items": {
        "type": "string",
        "description": "Identifier of resource",
        "example": "FejxZ0WWpXTjzIScVEq0",
        "pattern": "^[a-zA-Z0-9]{20}$",
        "x-convert": {
          "trim": true
        }
      }
    },
    "values": {
      "type": "array",
      "maxItems": 20,
      "items": {
        "anyOf": [
          {
            "type": "string",
            "description": "Medium string",
            "example": "A medium-sized string",
            "minLength": 0,
            "maxLength": 500,
            "x-convert": {
              "trim": true
            }
          },
          {
            "type": "boolean",
            "nullable": true
          },
          {
            "type": "number",
            "nullable": true
          }
        ]
      }
    },
    "VisitDataField": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "Unique identifier",
          "example": "FejxZ0WWpXTjzIScVEq0",
          "pattern": "^[a-zA-Z0-9]{20}$",
          "x-convert": {
            "trim": true
          }
        },
        "values": {
          "$ref": "#/x-alt-definitions/values"
        }
      },
      "required": [
        "id",
        "values"
      ]
    },
    "dataFields1": {
      "type": "array",
      "description": "Data-fields",
      "nullable": true,
      "items": {
        "$ref": "#/x-alt-definitions/VisitDataField"
      }
    },
    "state": {
      "type": "string",
      "description": "State of visit",
      "enum": [
        "PENDING",
        "DRAFT",
        "BOOKED",
        "WAITING",
        "SERVING",
        "COMPLETE"
      ],
      "x-convert": {
        "case": "upper"
      }
    },
    "Model2": {
      "type": "string",
      "description": "Tag associated with visit",
      "enum": [
        "NO-SHOW",
        "CANCELLED",
        "REMOVED",
        "ALERTED",
        "ARRIVED",
        "DELAYED",
        "CONFIRMED",
        "EXPIRED",
        "FLAGGED",
        "IMPORTED",
        "PRIORITIZED",
        "CAPACITY",
        "REJECTED"
      ],
      "x-convert": {
        "case": "upper"
      }
    },
    "VisitTags": {
      "type": "array",
      "description": "Optional tags associated with visit",
      "maxItems": 10,
      "x-constraint": {
        "unique": true
      },
      "items": {
        "$ref": "#/x-alt-definitions/Model2"
      }
    },
    "source": {
      "type": "string",
      "description": "Source where visit was created",
      "enum": [
        "WEB-APP",
        "IOS-APP",
        "ANDROID-APP",
        "PUBLIC",
        "KIOSK",
        "QR",
        "SMS",
        "EMAIL",
        "API",
        "RWG",
        "IMPORT",
        "IOS-APP-CLIP"
      ],
      "x-convert": {
        "case": "upper"
      }
    },
    "locale": {
      "type": "string",
      "description": "Locale in xx-YY format, where the first part is language and second country code",
      "example": "en-US",
      "enum": [
        "ca-AD",
        "ar-AE",
        "ps-AF",
        "tk-AF",
        "uz-AF",
        "en-AG",
        "en-AI",
        "sq-AL",
        "hy-AM",
        "pt-AO",
        "en-AQ",
        "ru-AQ",
        "gn-AR",
        "es-AR",
        "en-AS",
        "sm-AS",
        "de-AT",
        "en-AU",
        "nl-AW",
        "pa-AW",
        "sv-AX",
        "az-AZ",
        "bs-BA",
        "hr-BA",
        "sr-BA",
        "en-BB",
        "bn-BD",
        "de-BE",
        "fr-BE",
        "nl-BE",
        "fr-BF",
        "ff-BF",
        "bg-BG",
        "ar-BH",
        "fr-BI",
        "rn-BI",
        "fr-BJ",
        "fr-BL",
        "en-BM",
        "ms-BN",
        "ay-BO",
        "qu-BO",
        "es-BO",
        "nl-BQ",
        "pt-BR",
        "en-BS",
        "dz-BT",
        "nn-BV",
        "nb-BV",
        "no-BV",
        "en-BW",
        "tn-BW",
        "be-BY",
        "ru-BY",
        "en-BZ",
        "es-BZ",
        "en-CA",
        "fr-CA",
        "en-CC",
        "fr-CD",
        "kg-CD",
        "ln-CD",
        "lu-CD",
        "sw-CD",
        "fr-CF",
        "sg-CF",
        "fr-CG",
        "ln-CG",
        "de-CH",
        "fr-CH",
        "it-CH",
        "rm-CH",
        "fr-CI",
        "en-CK",
        "rar-CK",
        "es-CL",
        "en-CM",
        "fr-CM",
        "zh-CN",
        "es-CO",
        "es-CR",
        "es-CU",
        "pt-CV",
        "en-CW",
        "nl-CW",
        "pa-CW",
        "en-CX",
        "el-CY",
        "hy-CY",
        "tr-CY",
        "cs-CZ",
        "sk-CZ",
        "de-DE",
        "ar-DJ",
        "fr-DJ",
        "da-DK",
        "en-DM",
        "es-DO",
        "ar-DZ",
        "es-EC",
        "et-EE",
        "ar-EG",
        "es-EH",
        "aa-ER",
        "ar-ER",
        "byn-ER",
        "en-ER",
        "kun-ER",
        "nrb-ER",
        "ssy-ER",
        "tig-ER",
        "ti-ER",
        "ca-ES",
        "es-ES",
        "eu-ES",
        "am-ET",
        "fi-FI",
        "sv-FI",
        "en-FJ",
        "fj-FJ",
        "hif-FJ",
        "rtm-FJ",
        "en-FK",
        "en-FM",
        "fo-FO",
        "fr-FR",
        "fr-GA",
        "en-GB",
        "en-GD",
        "ka-GE",
        "fr-GF",
        "en-GG",
        "fr-GG",
        "en-GH",
        "en-GI",
        "kl-GL",
        "en-GM",
        "fr-GN",
        "ff-GN",
        "fr-GP",
        "fan-GQ",
        "fr-GQ",
        "pt-GQ",
        "es-GQ",
        "el-GR",
        "en-GS",
        "es-GT",
        "ch-GU",
        "en-GU",
        "es-GU",
        "pt-GW",
        "en-GY",
        "en-HK",
        "zh-HK",
        "en-HM",
        "es-HN",
        "hr-HR",
        "fr-HT",
        "ht-HT",
        "hu-HU",
        "id-ID",
        "en-IE",
        "ga-IE",
        "ar-IL",
        "he-IL",
        "en-IM",
        "gv-IM",
        "en-IN",
        "hi-IN",
        "en-IO",
        "ar-IQ",
        "ku-IQ",
        "fa-IR",
        "is-IS",
        "it-IT",
        "en-JE",
        "fr-JE",
        "en-JM",
        "ar-JO",
        "ja-JP",
        "en-KE",
        "sw-KE",
        "ky-KG",
        "ru-KG",
        "km-KH",
        "en-KI",
        "ar-KM",
        "fr-KM",
        "en-KN",
        "ko-KP",
        "ko-KR",
        "ar-KW",
        "en-KY",
        "kk-KZ",
        "ru-KZ",
        "lo-LA",
        "ar-LB",
        "fr-LB",
        "en-LC",
        "de-LI",
        "si-LK",
        "ta-LK",
        "en-LR",
        "en-LS",
        "st-LS",
        "lt-LT",
        "de-LU",
        "fr-LU",
        "lb-LU",
        "lv-LV",
        "ar-LY",
        "ar-MA",
        "fr-MC",
        "ro-MD",
        "bs-ME",
        "hr-ME",
        "sq-ME",
        "sr-ME",
        "en-MF",
        "fr-MF",
        "nl-MF",
        "fr-MG",
        "mg-MG",
        "en-MH",
        "mh-MH",
        "mk-MK",
        "fr-ML",
        "my-MM",
        "mn-MN",
        "pt-MO",
        "zh-MO",
        "ch-MP",
        "en-MP",
        "fr-MQ",
        "ar-MR",
        "en-MS",
        "en-MT",
        "mt-MT",
        "en-MU",
        "dv-MV",
        "en-MW",
        "ny-MW",
        "es-MX",
        "ms-MY",
        "pt-MZ",
        "af-NA",
        "en-NA",
        "fr-NC",
        "fr-NE",
        "en-NF",
        "en-NG",
        "es-NI",
        "nl-NL",
        "nn-NO",
        "nb-NO",
        "no-NO",
        "ne-NP",
        "en-NR",
        "na-NR",
        "en-NU",
        "en-NZ",
        "mi-NZ",
        "ar-OM",
        "es-PA",
        "es-PE",
        "fr-PF",
        "en-PG",
        "en-PH",
        "en-PK",
        "ur-PK",
        "pl-PL",
        "fr-PM",
        "en-PN",
        "en-PR",
        "es-PR",
        "ar-PS",
        "pt-PT",
        "en-PW",
        "gn-PY",
        "es-PY",
        "ar-QA",
        "fr-RE",
        "ro-RO",
        "sr-RS",
        "ru-RU",
        "en-RW",
        "fr-RW",
        "rw-RW",
        "ar-SA",
        "en-SB",
        "en-SC",
        "fr-SC",
        "ar-SD",
        "en-SD",
        "sv-SE",
        "en-SG",
        "ms-SG",
        "ta-SG",
        "zh-SG",
        "en-SH",
        "sl-SI",
        "no-SJ",
        "sk-SK",
        "en-SL",
        "it-SM",
        "fr-SN",
        "ar-SO",
        "so-SO",
        "nl-SR",
        "en-SS",
        "pt-ST",
        "es-SV",
        "en-SX",
        "nl-SX",
        "ar-SY",
        "en-SZ",
        "ss-SZ",
        "en-TC",
        "ar-TD",
        "fr-TD",
        "fr-TF",
        "fr-TG",
        "th-TH",
        "ru-TJ",
        "tg-TJ",
        "en-TK",
        "pt-TL",
        "ru-TM",
        "tk-TM",
        "ar-TN",
        "en-TO",
        "to-TO",
        "tr-TR",
        "en-TT",
        "en-TV",
        "zh-TW",
        "en-TZ",
        "sw-TZ",
        "uk-UA",
        "en-UG",
        "sw-UG",
        "en-UM",
        "en-US",
        "es-UY",
        "ru-UZ",
        "uz-UZ",
        "de-VA",
        "fr-VA",
        "it-VA",
        "la-VA",
        "en-VC",
        "es-VE",
        "en-VG",
        "en-VI",
        "vi-VN",
        "bi-VU",
        "en-VU",
        "fr-VU",
        "fr-WF",
        "en-WS",
        "sm-WS",
        "sq-XK",
        "sr-XK",
        "ar-YE",
        "fr-YT",
        "af-ZA",
        "en-ZA",
        "nr-ZA",
        "st-ZA",
        "ss-ZA",
        "tn-ZA",
        "ts-ZA",
        "ve-ZA",
        "xh-ZA",
        "zu-ZA",
        "en-ZM",
        "en-ZW",
        "nd-ZW",
        "sn-ZW"
      ]
    },
    "channel": {
      "type": "string",
      "description": "Message channel",
      "enum": [
        "EMAIL",
        "SMS",
        "APP"
      ],
      "x-convert": {
        "case": "upper",
        "trim": true
      }
    },
    "state1": {
      "type": "string",
      "description": "Current state of message",
      "enum": [
        "PENDING",
        "BLOCKED",
        "FAILED",
        "DELIVERED",
        "UNCONFIRMED",
        "RECEIVED"
      ],
      "x-convert": {
        "case": "upper"
      }
    },
    "lastOutgoing": {
      "type": "object",
      "nullable": true,
      "properties": {
        "messageId": {
          "type": "string",
          "description": "Unique identifier",
          "example": "FejxZ0WWpXTjzIScVEq0",
          "pattern": "^[a-zA-Z0-9]{20}$",
          "x-convert": {
            "trim": true
          }
        },
        "channel": {
          "$ref": "#/x-alt-definitions/channel"
        },
        "body": {
          "type": "string",
          "description": "Body of message",
          "example": "A message body",
          "nullable": true,
          "minLength": 0,
          "maxLength": 2000,
          "x-convert": {
            "trim": true
          }
        },
        "state": {
          "$ref": "#/x-alt-definitions/state1"
        },
        "type": {
          "type": "string",
          "description": "Type of message",
          "example": "A short-sized string",
          "minLength": 0,
          "maxLength": 100,
          "x-convert": {
            "trim": true
          }
        },
        "errorCode": {
          "type": "string",
          "description": "Name",
          "example": "A short-sized string",
          "nullable": true,
          "minLength": 0,
          "maxLength": 100,
          "x-convert": {
            "trim": true
          }
        },
        "errorMessage": {
          "type": "string",
          "description": "Name",
          "example": "A short-sized string",
          "nullable": true,
          "minLength": 0,
          "maxLength": 100,
          "x-convert": {
            "trim": true
          }
        },
        "created": {
          "type": "string",
          "format": "date-time",
          "description": "Date and time of creation",
          "example": "2020-01-01T17:00:00.000Z"
        }
      }
    },
    "lastIncoming": {
      "type": "object",
      "nullable": true,
      "properties": {
        "messageId": {
          "type": "string",
          "description": "Unique identifier",
          "example": "FejxZ0WWpXTjzIScVEq0",
          "pattern": "^[a-zA-Z0-9]{20}$",
          "x-convert": {
            "trim": true
          }
        },
        "channel": {
          "$ref": "#/x-alt-definitions/channel"
        },
        "body": {
          "type": "string",
          "description": "Body of message",
          "example": "A message body",
          "nullable": true,
          "minLength": 0,
          "maxLength": 2000,
          "x-convert": {
            "trim": true
          }
        },
        "created": {
          "type": "string",
          "format": "date-time",
          "description": "Date and time of creation",
          "example": "2020-01-01T17:00:00.000Z"
        }
      }
    },
    "numOutgoing": {
      "type": "object",
      "properties": {
        "SMS": {
          "type": "integer",
          "description": "Zero or positive integer",
          "example": 2,
          "minimum": 0
        },
        "EMAIL": {
          "type": "integer",
          "description": "Zero or positive integer",
          "example": 2,
          "minimum": 0
        }
      }
    },
    "numIncoming": {
      "type": "object",
      "properties": {
        "SMS": {
          "type": "integer",
          "description": "Zero or positive integer",
          "example": 2,
          "minimum": 0
        },
        "EMAIL": {
          "type": "integer",
          "description": "Zero or positive integer",
          "example": 2,
          "minimum": 0
        }
      }
    },
    "numAlerts": {
      "type": "object",
      "properties": {
        "SMS": {
          "type": "integer",
          "description": "Zero or positive integer",
          "example": 2,
          "minimum": 0
        },
        "EMAIL": {
          "type": "integer",
          "description": "Zero or positive integer",
          "example": 2,
          "minimum": 0
        }
      }
    },
    "messageInfo": {
      "type": "object",
      "properties": {
        "lastOutgoing": {
          "$ref": "#/x-alt-definitions/lastOutgoing"
        },
        "lastIncoming": {
          "$ref": "#/x-alt-definitions/lastIncoming"
        },
        "numOutgoing": {
          "$ref": "#/x-alt-definitions/numOutgoing"
        },
        "numIncoming": {
          "$ref": "#/x-alt-definitions/numIncoming"
        },
        "numAlerts": {
          "$ref": "#/x-alt-definitions/numAlerts"
        }
      }
    },
    "Model3": {
      "type": "string",
      "description": "Tag associated with visit",
      "enum": [
        "NO-SHOW",
        "CANCELLED",
        "REMOVED",
        "ALERTED",
        "ARRIVED",
        "DELAYED",
        "CONFIRMED",
        "EXPIRED",
        "FLAGGED",
        "IMPORTED",
        "PRIORITIZED",
        "CAPACITY",
        "REJECTED"
      ],
      "x-convert": {
        "case": "upper"
      }
    },
    "VisitTags1": {
      "type": "array",
      "description": "Adds specified tags to existing tags",
      "maxItems": 10,
      "x-constraint": {
        "unique": true,
        "single": true
      },
      "items": {
        "$ref": "#/x-alt-definitions/Model3"
      }
    },
    "Model4": {
      "type": "string",
      "description": "Tag associated with visit",
      "enum": [
        "NO-SHOW",
        "CANCELLED",
        "REMOVED",
        "ALERTED",
        "ARRIVED",
        "DELAYED",
        "CONFIRMED",
        "EXPIRED",
        "FLAGGED",
        "IMPORTED",
        "PRIORITIZED",
        "CAPACITY",
        "REJECTED"
      ],
      "x-convert": {
        "case": "upper"
      }
    },
    "VisitTags2": {
      "type": "array",
      "description": "Removes specified tags from existing tags",
      "maxItems": 10,
      "x-constraint": {
        "unique": true,
        "single": true
      },
      "items": {
        "$ref": "#/x-alt-definitions/Model4"
      }
    },
    "metadata": {
      "type": "object",
      "description": "Store metadata about your objects. You can store 20 keys with max length 40. Values can be strings of max length 500.",
      "nullable": true
    },
    "orderValue": {
      "type": "object",
      "description": "The order value assigned to a visit",
      "properties": {
        "value": {
          "type": "number",
          "description": "Order value",
          "example": 59,
          "minimum": 0
        },
        "currency": {
          "type": "string",
          "description": "Currency in ISO 4217 format",
          "example": "USD",
          "minLength": 3,
          "maxLength": 3,
          "x-convert": {
            "case": "upper",
            "trim": true
          }
        }
      }
    },
    "CreateVisitPayload": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "Identifier of visit",
          "example": "FejxZ0WWpXTjzIScVEq0",
          "pattern": "^[a-zA-Z0-9]{20}$",
          "x-convert": {
            "trim": true
          }
        },
        "locationId": {
          "type": "string",
          "description": "Identifier of location",
          "example": "FejxZ0WWpXTjzIScVEq0",
          "pattern": "^[a-zA-Z0-9]{20}$",
          "x-convert": {
            "trim": true
          }
        },
        "customerId": {
          "type": "string",
          "description": "Identifier of customer, automatically derived from visitor contact information if not provided.",
          "example": "qbysnjcWCNLyOkmC6K4QMI",
          "pattern": "^[a-zA-Z0-9]{22}$",
          "x-convert": {
            "trim": true
          }
        },
        "externalCustomerId": {
          "type": "string",
          "description": "External customer identifier, optionally provided by client. Will take priority over other contact info when deriving customerId",
          "example": "A short-sized string",
          "nullable": true,
          "minLength": 0,
          "maxLength": 100,
          "x-convert": {
            "trim": true
          }
        },
        "name": {
          "type": "string",
          "description": "Name of customer",
          "example": "A short-sized string",
          "nullable": true,
          "minLength": 0,
          "maxLength": 100,
          "x-convert": {
            "trim": true
          }
        },
        "firstName": {
          "type": "string",
          "description": "First name of customer",
          "example": "A short-sized string",
          "nullable": true,
          "minLength": 0,
          "maxLength": 100,
          "x-convert": {
            "trim": true
          }
        },
        "lastName": {
          "type": "string",
          "description": "Last name of customer",
          "example": "A short-sized string",
          "nullable": true,
          "minLength": 0,
          "maxLength": 100,
          "x-convert": {
            "trim": true
          }
        },
        "phone": {
          "type": "string",
          "description": "Phone number in E.164 format",
          "example": "+16005551234",
          "nullable": true,
          "x-convert": {
            "trim": true
          }
        },
        "email": {
          "type": "string",
          "description": "Email address",
          "example": "test@test.com",
          "nullable": true,
          "maxLength": 100,
          "x-format": {
            "email": true
          },
          "x-convert": {
            "case": "lower",
            "trim": true
          }
        },
        "addMessagingTokens": {
          "$ref": "#/x-alt-definitions/VisitMessagingTokens"
        },
        "removeMessagingTokens": {
          "$ref": "#/x-alt-definitions/VisitMessagingTokens"
        },
        "liveActivityToken": {
          "$ref": "#/x-alt-definitions/liveActivityToken"
        },
        "notes": {
          "type": "string",
          "description": "Optional notes - ***Deprecated*** please use notes on [customer/notes](#operation/getCustomersCustomeridNotes)",
          "example": "A long-sized string",
          "nullable": true,
          "minLength": 0,
          "maxLength": 1000,
          "x-convert": {
            "trim": true
          }
        },
        "services": {
          "$ref": "#/x-alt-definitions/VisitServicesById"
        },
        "resources": {
          "$ref": "#/x-alt-definitions/VisitResourcesById"
        },
        "fields": {
          "$ref": "#/x-alt-definitions/VisitDataFieldsById"
        },
        "sessionSeriesId": {
          "type": "string",
          "description": "Unique identifier",
          "example": "FejxZ0WWpXTjzIScVEq0",
          "nullable": true,
          "pattern": "^[a-zA-Z0-9]{20}$",
          "x-convert": {
            "trim": true
          }
        },
        "serviceIds": {
          "$ref": "#/x-alt-definitions/serviceIds"
        },
        "resourceIds": {
          "$ref": "#/x-alt-definitions/resourceIds"
        },
        "dataFields": {
          "$ref": "#/x-alt-definitions/dataFields1"
        },
        "partySize": {
          "type": "integer",
          "description": "Party size",
          "example": 5,
          "minimum": 1,
          "maximum": 100
        },
        "quotedWaitDuration": {
          "type": "integer",
          "description": "Wait duration estimated by client",
          "example": 900,
          "minimum": 0
        },
        "position": {
          "type": "integer",
          "description": "Current position in line",
          "example": 1,
          "nullable": true,
          "minimum": 1
        },
        "state": {
          "$ref": "#/x-alt-definitions/state"
        },
        "tags": {
          "$ref": "#/x-alt-definitions/VisitTags"
        },
        "date": {
          "type": "string",
          "description": "Date and time of booking, must be in YYYY-MM-DDThh:mm format",
          "example": "2020-01-01T15:00",
          "nullable": true,
          "x-convert": {
            "trim": true
          }
        },
        "duration": {
          "type": "integer",
          "description": "Duration of booking in seconds",
          "example": 900,
          "nullable": true,
          "minimum": 0,
          "maximum": 86400
        },
        "isBlock": {
          "type": "boolean",
          "description": "Flag to indicate if booking visit is used to block out calendar",
          "example": true
        },
        "source": {
          "$ref": "#/x-alt-definitions/source"
        },
        "locale": {
          "$ref": "#/x-alt-definitions/locale"
        },
        "policyConsent": {
          "type": "boolean",
          "description": "Flag to indicate if policy and terms has been accepted",
          "example": true
        },
        "messageInfo": {
          "$ref": "#/x-alt-definitions/messageInfo"
        },
        "addTags": {
          "$ref": "#/x-alt-definitions/VisitTags1"
        },
        "removeTags": {
          "$ref": "#/x-alt-definitions/VisitTags2"
        },
        "metadata": {
          "$ref": "#/x-alt-definitions/metadata"
        },
        "orderValue": {
          "$ref": "#/x-alt-definitions/orderValue"
        },
        "pluginData": {
          "type": "string",
          "x-meta": {}
        }
      }
    },
    "VisitsPayload": {
      "type": "array",
      "minItems": 1,
      "maxItems": 200,
      "x-constraint": {
        "unique": {
          "ignoreUndefined": true
        }
      },
      "items": {
        "$ref": "#/x-alt-definitions/CreateVisitPayload"
      }
    },
    "locationIds1": {
      "type": "string",
      "enum": [
        "ALL"
      ]
    },
    "Model5": {
      "type": "object"
    },
    "Model6": {
      "type": "array",
      "items": {
        "$ref": "#/x-alt-definitions/Model5"
      }
    }
  }
}
```