{
  "openapi": "3.1.1",
  "info": {
    "title": "Partner Connectivity API",
    "version": "1"
  },
  "servers": [
    {
      "url": "https://ws-premiere.beta.belugga.net/"
    }
  ],
  "paths": {
    "/api/v1/ping": {
      "get": {
        "tags": [
          "Connectivity API"
        ],
        "summary": "Ping",
        "description": "Ping the API to check its status",
        "parameters": [
          {
            "name": "X-Client-Country-Code",
            "in": "header",
            "description": "Optional. Country code of the client (overrides IP-based detection)."
          },
          {
            "name": "X-Client-IP",
            "in": "header",
            "description": "Optional. IP address of the client (used for country detection if country code is not provided)."
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/Hotels/Availability": {
      "post": {
        "tags": [
          "Connectivity API"
        ],
        "summary": "Hotels/Availability",
        "description": "Returns available hotels matching the provided criteria such as check-in/check-out dates, room setup, and hotel IDs.\r\nRequests may include up to 3 rooms; exceeding this limit will result in an error.\r\nUse the Content API referenced in the main documentation to obtain hotel details and valid hotelIds",
        "operationId": "HotelAvailability_V1",
        "parameters": [
          {
            "name": "X-Client-Country-Code",
            "in": "header",
            "description": "Optional. Country code of the client (overrides IP-based detection)."
          },
          {
            "name": "X-Client-IP",
            "in": "header",
            "description": "Optional. IP address of the client (used for country detection if country code is not provided)."
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/HotelAvailabilityRQ"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HotelAvailabilityRS"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorDetailsRS"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/api/v1/Hotels/AddonAvailability": {
      "post": {
        "tags": [
          "Connectivity API"
        ],
        "summary": "Hotels/AddonAvailability",
        "description": "Searches for available add-on options based on the provided criteria such as check-in date, room requirements, and hotel ID.\r\nUse the addonOptions field returned in the Hotel/Availability response — only for those rates that include add-ons.",
        "operationId": "AddonAvailability_V1",
        "parameters": [
          {
            "name": "X-Client-Country-Code",
            "in": "header",
            "description": "Optional. Country code of the client (overrides IP-based detection)."
          },
          {
            "name": "X-Client-IP",
            "in": "header",
            "description": "Optional. IP address of the client (used for country detection if country code is not provided)."
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AddonAvailabilityRQ"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AddonAvailabilityRS"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorDetailsRS"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/api/v1/Transfers/RoutePointDestinations": {
      "post": {
        "tags": [
          "Connectivity API"
        ],
        "summary": "Transfers/RoutePointDestinations",
        "description": "Returns available route point destinations for the provided starting route point.  Available RoutePoints are available in transferoutepoints in ContentAPI ",
        "operationId": "RoutePointDestinations_V1",
        "parameters": [
          {
            "name": "X-Client-Country-Code",
            "in": "header",
            "description": "Optional. Country code of the client (overrides IP-based detection)."
          },
          {
            "name": "X-Client-IP",
            "in": "header",
            "description": "Optional. IP address of the client (used for country detection if country code is not provided)."
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RoutePointDestinationsRQ"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RoutePointDestinationsRS"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorDetailsRS"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/api/v1/Transfers/Availability": {
      "post": {
        "tags": [
          "Connectivity API"
        ],
        "summary": "Transfers/Availability",
        "description": "Returns available options for the specified transfer criteria. \r\n                               Use transferoutepoints from ContentAPI to get all available supported transfer route points and use method Transfers/RoutePointDestinations from this API to get the available destinationRoutePoint for each transfer route point.\r\n                               API supports only transfers from Port to Hotel and from Hotel to Port",
        "operationId": "TransferAvailability_V1",
        "parameters": [
          {
            "name": "X-Client-Country-Code",
            "in": "header",
            "description": "Optional. Country code of the client (overrides IP-based detection)."
          },
          {
            "name": "X-Client-IP",
            "in": "header",
            "description": "Optional. IP address of the client (used for country detection if country code is not provided)."
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TransferAvailabilityRQ"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TransferAvailabilityRS"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorDetailsRS"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/api/v1/Tours/Availability": {
      "post": {
        "tags": [
          "Connectivity API"
        ],
        "summary": "Tours/Availability",
        "description": "Returns available options for the specified tour criteria.",
        "operationId": "TourAvailability_V1",
        "parameters": [
          {
            "name": "X-Client-Country-Code",
            "in": "header",
            "description": "Optional. Country code of the client (overrides IP-based detection)."
          },
          {
            "name": "X-Client-IP",
            "in": "header",
            "description": "Optional. IP address of the client (used for country detection if country code is not provided)."
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TourAvailabilityRQ"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TourAvailabilityRS"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorDetailsRS"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/api/v1/Tours/AvailableToursByCoordinates": {
      "post": {
        "tags": [
          "Connectivity API"
        ],
        "summary": "Tours/AvailableToursByCoordinates",
        "description": "Returns available tours based on the specified coordinates and radius.",
        "operationId": "AvailableToursByCoordinates",
        "parameters": [
          {
            "name": "X-Client-Country-Code",
            "in": "header",
            "description": "Optional. Country code of the client (overrides IP-based detection)."
          },
          {
            "name": "X-Client-IP",
            "in": "header",
            "description": "Optional. IP address of the client (used for country detection if country code is not provided)."
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AvailableToursByCoordinatesRQ"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AvailableToursByCoordinatesRS"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorDetailsRS"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/api/v1/Reservation/Book": {
      "post": {
        "tags": [
          "Connectivity API"
        ],
        "summary": "Reservation/Book",
        "description": "Creates a booking in the system using data obtained from the Availability response.\r\nA successful call returns a confirmed booking.\r\nAlways review the reservation, booking, and service statuses in the response.\r\n\r\nNote that services with an on-request status are expected and are already indicated in the Availability response — these are not considered failed bookings.\r\n\r\nIf any issues occur during the transaction, the response includes the relevant warning messages along with the current status of the booking and its associated services.",
        "operationId": "ReservationBook_V1",
        "parameters": [
          {
            "name": "X-Client-Country-Code",
            "in": "header",
            "description": "Optional. Country code of the client (overrides IP-based detection)."
          },
          {
            "name": "X-Client-IP",
            "in": "header",
            "description": "Optional. IP address of the client (used for country detection if country code is not provided)."
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ReservationRQ"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReservationRS"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorDetailsRS"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/api/v1/Reservation/Retrieve": {
      "post": {
        "tags": [
          "Connectivity API"
        ],
        "summary": "Reservation/Retrieve",
        "description": "Retrieves detailed information for an existing booking.\r\nUse the reservationCode or the partnerUniqueId provided in the Book response to fetch the latest reservation details and statuses.",
        "operationId": "ReservationRetrieve_V1",
        "parameters": [
          {
            "name": "X-Client-Country-Code",
            "in": "header",
            "description": "Optional. Country code of the client (overrides IP-based detection)."
          },
          {
            "name": "X-Client-IP",
            "in": "header",
            "description": "Optional. IP address of the client (used for country detection if country code is not provided)."
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RetrieveRQ"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReservationRS"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorDetailsRS"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/api/v1/Reservation/RetrieveList": {
      "post": {
        "tags": [
          "Connectivity API"
        ],
        "summary": "Reservation/RetrieveList",
        "description": "Retrieves a list of reservations filtered by booking date range and/or travel date range.\r\nAt least one date range must be provided. Both start and end dates are required for each range.",
        "operationId": "ReservationRetrieveList_V1",
        "parameters": [
          {
            "name": "X-Client-Country-Code",
            "in": "header",
            "description": "Optional. Country code of the client (overrides IP-based detection)."
          },
          {
            "name": "X-Client-IP",
            "in": "header",
            "description": "Optional. IP address of the client (used for country detection if country code is not provided)."
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RetrieveListRQ"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RetrieveListRS"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorDetailsRS"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/api/v1/Reservation/Cancel": {
      "post": {
        "tags": [
          "Connectivity API"
        ],
        "summary": "Reservation/Cancel",
        "description": "Cancels an existing booking or a specific service within a booking.\r\nTo cancel all services in a reservation, provide the reservationCode or partnerUniqueId returned in the Book response.\r\nTo cancel an individual service, provide the corresponding serviceId obtained from the booking or retrieval response.\r\n\r\nAlways review the reservation status, booking status, service status, and any warnings in the response. \r\n\r\nIf any issues occur during the transaction, the response includes the relevant warning messages along with the current status of the booking and its associated services.",
        "operationId": "ReservationCancelV1",
        "parameters": [
          {
            "name": "X-Client-Country-Code",
            "in": "header",
            "description": "Optional. Country code of the client (overrides IP-based detection)."
          },
          {
            "name": "X-Client-IP",
            "in": "header",
            "description": "Optional. IP address of the client (used for country detection if country code is not provided)."
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CancelRQ"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReservationRS"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorDetailsRS"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/api/v1/Reservation/AddRoom": {
      "post": {
        "tags": [
          "Connectivity API"
        ],
        "summary": "Reservation/AddRoom",
        "description": "Adds a room to an existing reservation.\r\nTo add a room, provide the reservationCode or partnerUniqueId returned in the Book response, along with the details of the room to be added. Reservation BookingStatus must be 'Confirmed' or 'PartiallyConfirmed'.\r\n\r\nIf any issues occur during the transaction, the response includes the relevant warning messages along with the current status of the booking and its associated services.",
        "operationId": "ReservationAddRoom_V1",
        "parameters": [
          {
            "name": "X-Client-Country-Code",
            "in": "header",
            "description": "Optional. Country code of the client (overrides IP-based detection)."
          },
          {
            "name": "X-Client-IP",
            "in": "header",
            "description": "Optional. IP address of the client (used for country detection if country code is not provided)."
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AddRoomRQ"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReservationRS"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorDetailsRS"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/api/v1/Reservation/AddTransfer": {
      "post": {
        "tags": [
          "Connectivity API"
        ],
        "summary": "Reservation/AddTransfer",
        "description": "Adds a transfer to an existing reservation.\r\nTo add a transfer, provide the reservationCode or partnerUniqueId returned in the Book response, along with the details of the transfer to be added. Reservation BookingStatus must be 'Confirmed' or 'PartiallyConfirmed'.\r\n\r\nIf any issues occur during the transaction, the response includes the relevant warning messages along with the current status of the booking and its associated services.",
        "operationId": "ReservationAddTransfer_V1",
        "parameters": [
          {
            "name": "X-Client-Country-Code",
            "in": "header",
            "description": "Optional. Country code of the client (overrides IP-based detection)."
          },
          {
            "name": "X-Client-IP",
            "in": "header",
            "description": "Optional. IP address of the client (used for country detection if country code is not provided)."
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AddTransferRQ"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReservationRS"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorDetailsRS"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/api/v1/Reservation/AddTour": {
      "post": {
        "tags": [
          "Connectivity API"
        ],
        "summary": "Reservation/AddTour",
        "description": "Adds a tour to an existing reservation.\r\nTo add a tour, provide the reservationCode or partnerUniqueId returned in the Book response, along with the details of the tour to be added. Reservation BookingStatus must be 'Confirmed' or 'PartiallyConfirmed'.\r\n\r\nIf any issues occur during the transaction, the response includes the relevant warning messages along with the current status of the booking and its associated services.",
        "operationId": "ReservationAddTour_V1",
        "parameters": [
          {
            "name": "X-Client-Country-Code",
            "in": "header",
            "description": "Optional. Country code of the client (overrides IP-based detection)."
          },
          {
            "name": "X-Client-IP",
            "in": "header",
            "description": "Optional. IP address of the client (used for country detection if country code is not provided)."
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AddTourRQ"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReservationRS"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorDetailsRS"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "Addon": {
        "type": "object",
        "properties": {
          "isRequired": {
            "type": "boolean"
          },
          "options": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AddonOption"
            }
          }
        }
      },
      "AddonAvailabilityRQ": {
        "required": [
          "hotelId",
          "checkin",
          "addonOptionRequests"
        ],
        "type": "object",
        "properties": {
          "hotelId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "checkin": {
            "type": "string"
          },
          "addonOptionRequests": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AddonOptionRequest"
            }
          }
        }
      },
      "AddonAvailabilityRS": {
        "type": "object",
        "properties": {
          "checkin": {
            "type": "string"
          },
          "hotelId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "roomAddonOptions": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "$ref": "#/components/schemas/AvailableRoomAddonOption"
            }
          }
        }
      },
      "AddonOption": {
        "type": "object",
        "properties": {
          "addonOptionId": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "type": {
            "$ref": "#/components/schemas/AddonOptionType"
          }
        },
        "description": "A rate can be booked with only one option."
      },
      "AddonOptionRequest": {
        "required": [
          "roomCriteria",
          "type"
        ],
        "type": "object",
        "properties": {
          "roomCriteria": {
            "$ref": "#/components/schemas/RoomCriteria"
          },
          "type": {
            "$ref": "#/components/schemas/AddonOptionType"
          },
          "addonOptionIds": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "AddonOptionType": {
        "enum": [
          "DisneyTicket"
        ],
        "description": "Allowed values:\n- DisneyTicket (0): Disney park ticket."
      },
      "AddRoomRQ": {
        "required": [
          "roomRequest"
        ],
        "type": "object",
        "properties": {
          "reservationCode": {
            "type": [
              "null",
              "string"
            ]
          },
          "partnerUniqueId": {
            "type": [
              "null",
              "string"
            ]
          },
          "roomRequest": {
            "$ref": "#/components/schemas/RoomRequest"
          }
        }
      },
      "AddTourRQ": {
        "required": [
          "tourRequest"
        ],
        "type": "object",
        "properties": {
          "reservationCode": {
            "type": [
              "null",
              "string"
            ]
          },
          "partnerUniqueId": {
            "type": [
              "null",
              "string"
            ]
          },
          "tourRequest": {
            "$ref": "#/components/schemas/TourRequest"
          }
        }
      },
      "AddTransferRQ": {
        "required": [
          "transferRequest"
        ],
        "type": "object",
        "properties": {
          "reservationCode": {
            "type": [
              "null",
              "string"
            ]
          },
          "partnerUniqueId": {
            "type": [
              "null",
              "string"
            ]
          },
          "transferRequest": {
            "$ref": "#/components/schemas/TransferRequest"
          }
        }
      },
      "ALaCartService": {
        "type": "object",
        "properties": {
          "serviceId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "serviceStatus": {
            "$ref": "#/components/schemas/ServiceStatusCode"
          }
        }
      },
      "AvailableAddonOption": {
        "required": [
          "type"
        ],
        "type": "object",
        "properties": {
          "addonOptionId": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "type": {
            "$ref": "#/components/schemas/AddonOptionType"
          },
          "price": {
            "$ref": "#/components/schemas/Price"
          }
        }
      },
      "AvailableHotel": {
        "type": "object",
        "properties": {
          "hotelId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "hotelName": {
            "type": "string"
          },
          "location": {
            "type": "string"
          },
          "rooms": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AvailableRoom"
            }
          }
        }
      },
      "AvailableRoom": {
        "type": "object",
        "properties": {
          "index": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "roomCriteria": {
            "$ref": "#/components/schemas/RoomCriteria"
          },
          "rates": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AvailableRoomRate"
            }
          }
        }
      },
      "AvailableRoomAddonOption": {
        "type": "object",
        "properties": {
          "index": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "roomCriteria": {
            "$ref": "#/components/schemas/RoomCriteria"
          },
          "addonOptions": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "$ref": "#/components/schemas/AvailableAddonOption"
            }
          }
        }
      },
      "AvailableRoomRate": {
        "type": "object",
        "properties": {
          "rateId": {
            "type": "string"
          },
          "availableRooms": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "room": {
            "$ref": "#/components/schemas/Room"
          },
          "mealPlan": {
            "$ref": "#/components/schemas/MealPlan"
          },
          "price": {
            "$ref": "#/components/schemas/Price"
          },
          "cancelPolicy": {
            "$ref": "#/components/schemas/HotelCancelPolicy"
          },
          "onRequest": {
            "type": "boolean"
          },
          "fees": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "$ref": "#/components/schemas/Fee"
            }
          },
          "details": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "type": "string"
            }
          },
          "addons": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "$ref": "#/components/schemas/Addon"
            }
          },
          "questions": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "$ref": "#/components/schemas/HotelQuestion"
            }
          },
          "metadata": {
            "type": [
              "null",
              "object"
            ],
            "additionalProperties": {
              "type": "string"
            }
          }
        }
      },
      "AvailableTour": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "tourOptionTitle": {
            "type": [
              "null",
              "string"
            ]
          },
          "tourOptionLanguageName": {
            "type": [
              "null",
              "string"
            ]
          },
          "rateId": {
            "type": "string"
          },
          "price": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/Price"
              }
            ]
          },
          "cancelPolicy": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/TourCancelPolicy"
              }
            ]
          },
          "onRequest": {
            "type": "boolean"
          },
          "pickupPoints": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "$ref": "#/components/schemas/TourPickupPoint"
            }
          },
          "questions": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "$ref": "#/components/schemas/TourQuestion"
            }
          },
          "metadata": {
            "type": [
              "null",
              "object"
            ],
            "additionalProperties": {
              "type": "string"
            }
          }
        }
      },
      "AvailableToursByCoordinatesRQ": {
        "required": [
          "coordinates"
        ],
        "type": "object",
        "properties": {
          "coordinates": {
            "$ref": "#/components/schemas/TourCoordinates"
          },
          "extensions": {
            "type": [
              "null",
              "object"
            ],
            "additionalProperties": {
              "type": "string"
            }
          }
        }
      },
      "AvailableToursByCoordinatesRS": {
        "type": "object",
        "properties": {
          "availableTours": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AvailableTour"
            }
          }
        }
      },
      "AvailableTransfer": {
        "type": "object",
        "properties": {
          "rateId": {
            "type": "string"
          },
          "displayName": {
            "type": "string"
          },
          "minCapacity": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "maxCapacity": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "luggageCapacity": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "vehicle": {
            "$ref": "#/components/schemas/Vehicle"
          },
          "price": {
            "$ref": "#/components/schemas/Price"
          },
          "cancelPolicy": {
            "$ref": "#/components/schemas/TransferCancelPolicy"
          },
          "onRequest": {
            "type": "boolean"
          },
          "details": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "type": "string"
            }
          },
          "questions": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "$ref": "#/components/schemas/TransferQuestion"
            }
          },
          "metadata": {
            "type": [
              "null",
              "object"
            ],
            "additionalProperties": {
              "type": "string"
            }
          }
        }
      },
      "BookingStatusCode": {
        "enum": [
          "Undefined",
          "Confirmed",
          "Cancelled",
          "PartiallyConfirmed"
        ],
        "description": "Allowed values:\n- Undefined (0): Status is undefined\n- Confirmed (1): All services are confirmed\n- Cancelled (2): All services are cancelled\n- PartiallyConfirmed (3): Some services are on-request"
      },
      "CancelRQ": {
        "type": "object",
        "properties": {
          "reservationCode": {
            "type": [
              "null",
              "string"
            ]
          },
          "partnerUniqueId": {
            "type": [
              "null",
              "string"
            ]
          },
          "serviceId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          }
        },
        "description": "Request to cancel a reservation or a specific service within a reservation. Exactly one of ReservationCode, PartnerUniqueId, or ServiceId must be provided.  <br />\r\n                        <b>It always returns the latest status of the reservation</b>"
      },
      "ChildSeat": {
        "type": "object",
        "properties": {
          "type1": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "type2": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "type3": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          }
        }
      },
      "ConditionTypeCode": {
        "enum": [
          "All",
          "Any"
        ],
        "description": "Allowed values:\n- All (0): All conditions in the group must be met\n- Any (1): At least one condition in the group must be met"
      },
      "ErrorDetailsRS": {
        "type": "object",
        "properties": {
          "errors": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "description": "List of human readable errors."
      },
      "EscortedTourPackage": {
        "type": "object",
        "properties": {
          "packageId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "packageStatus": {
            "$ref": "#/components/schemas/PackageStatusCode"
          }
        }
      },
      "Fee": {
        "type": "object",
        "properties": {
          "type": {
            "$ref": "#/components/schemas/FeeType"
          },
          "amount": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          },
          "description": {
            "type": "string"
          }
        }
      },
      "FeeType": {
        "enum": [
          "Inclusive",
          "Exclusive"
        ],
        "description": "Allowed values:\n- Inclusive (0): Fee is included in the rate\n- Exclusive (1): Fee will be collected by the hotel(Property) at check-in"
      },
      "HotelAvailabilityRQ": {
        "required": [
          "stayRange",
          "rooms",
          "hotelIds"
        ],
        "type": "object",
        "properties": {
          "stayRange": {
            "$ref": "#/components/schemas/StayRange"
          },
          "rooms": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RoomCriteria"
            }
          },
          "hotelIds": {
            "type": "array",
            "items": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          },
          "extensions": {
            "type": [
              "null",
              "object"
            ],
            "additionalProperties": {
              "type": "string"
            }
          }
        }
      },
      "HotelAvailabilityRS": {
        "type": "object",
        "properties": {
          "stayRange": {
            "$ref": "#/components/schemas/StayRange"
          },
          "hotels": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "$ref": "#/components/schemas/AvailableHotel"
            }
          }
        }
      },
      "HotelCancelPenalty": {
        "type": "object",
        "properties": {
          "start": {
            "type": "string"
          },
          "end": {
            "type": "string"
          },
          "percentage": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          },
          "nights": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          }
        }
      },
      "HotelCancelPolicy": {
        "type": "object",
        "properties": {
          "nonRefundable": {
            "type": "boolean"
          },
          "penalties": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/HotelCancelPenalty"
            }
          }
        }
      },
      "HotelQuestion": {
        "type": "object",
        "properties": {
          "questionId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "title": {
            "type": "string"
          },
          "subtitle": {
            "type": "string"
          },
          "message": {
            "type": "string"
          },
          "isMandatory": {
            "type": "boolean"
          },
          "isPerGuest": {
            "type": "boolean"
          },
          "isFreeText": {
            "type": "boolean"
          },
          "options": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "$ref": "#/components/schemas/HotelQuestionOption"
            }
          }
        }
      },
      "HotelQuestionAnswer": {
        "required": [
          "questionId",
          "answer"
        ],
        "type": "object",
        "properties": {
          "questionId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "roomQuestIndex": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "answer": {
            "type": "string"
          },
          "selectedOption": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "HotelQuestionOption": {
        "type": "object",
        "properties": {
          "tourQuestionOptionId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "value": {
            "type": "string"
          },
          "isFreeText": {
            "type": "boolean"
          }
        }
      },
      "HotelService": {
        "type": "object",
        "properties": {
          "serviceId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "hotelId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "serviceStatus": {
            "$ref": "#/components/schemas/ServiceStatusCode"
          },
          "hotelName": {
            "type": "string"
          },
          "rateId": {
            "type": "string"
          },
          "checkin": {
            "type": "string"
          },
          "checkout": {
            "type": "string"
          },
          "room": {
            "$ref": "#/components/schemas/Room"
          },
          "roomCriteria": {
            "$ref": "#/components/schemas/RoomCriteria"
          },
          "mealPlan": {
            "$ref": "#/components/schemas/MealPlan"
          },
          "price": {
            "$ref": "#/components/schemas/Price"
          },
          "cancelPolicy": {
            "$ref": "#/components/schemas/HotelCancelPolicy"
          },
          "onRequest": {
            "type": "boolean"
          },
          "guests": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RoomGuest"
            }
          },
          "hotelQuestionAnswers": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "$ref": "#/components/schemas/HotelQuestionAnswer"
            }
          },
          "fees": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "$ref": "#/components/schemas/Fee"
            }
          },
          "details": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "type": "string"
            }
          },
          "addonOption": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/AddonOption"
              }
            ]
          },
          "remarks": {
            "type": [
              "null",
              "string"
            ]
          },
          "partnerServiceReference": {
            "type": [
              "null",
              "string"
            ]
          },
          "extensions": {
            "type": [
              "null",
              "object"
            ],
            "additionalProperties": {
              "type": "string"
            }
          }
        }
      },
      "LeadGuest": {
        "required": [
          "firstName",
          "lastName"
        ],
        "type": "object",
        "properties": {
          "firstName": {
            "type": "string"
          },
          "lastName": {
            "type": "string"
          }
        }
      },
      "MealPlan": {
        "type": "object",
        "properties": {
          "mealId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "mealCode": {
            "type": "string"
          },
          "mealName": {
            "type": "string"
          },
          "details": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "type": "string"
            }
          }
        }
      },
      "OperatorCode": {
        "enum": [
          "Equals",
          "NotEquals",
          "In",
          "NotIn",
          "GreaterThan",
          "LessThan"
        ],
        "description": "Allowed values:\n- Equals (0): When the selected value of the question specified is equal to the specified value\n- NotEquals (1): When the selected value of the question specified is not equal to the specified value\n- In (2): When the selected value of the question specified is one of the specified values\n- NotIn (3): When the selected value of the question specified is none of the specified values\n- GreaterThan (4): When the selected value of the question specified is greater than the specified value\n- LessThan (5): When the selected value of the question specified is less than the specified value"
      },
      "PackageStatusCode": {
        "enum": [
          "Failed",
          "Confirmed",
          "Cancelled",
          "OnRequest",
          "PartiallyConfirmed"
        ],
        "description": "Allowed values:\n- Failed (0): Package has failed during the booking and has not been confirmed\n- Confirmed (1): Package is confirmed\n- Cancelled (2): Package is cancelled\n- OnRequest (3): Package is on-request\n- PartiallyConfirmed (4): Package is partially confirmed"
      },
      "PartnerReferences": {
        "type": "object",
        "properties": {
          "bookingReference": {
            "type": [
              "null",
              "string"
            ]
          },
          "uniqueId": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "Price": {
        "type": "object",
        "properties": {
          "amountBeforeTax": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "amountAfterTax": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "currency": {
            "type": "string"
          }
        }
      },
      "ReservationHeader": {
        "required": [
          "leadGuest",
          "partnerEmail",
          "partnerReferences"
        ],
        "type": "object",
        "properties": {
          "leadGuest": {
            "$ref": "#/components/schemas/LeadGuest"
          },
          "partnerEmail": {
            "type": "string"
          },
          "partnerReferences": {
            "$ref": "#/components/schemas/PartnerReferences"
          },
          "remarks": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "ReservationRQ": {
        "required": [
          "reservationHeader"
        ],
        "type": "object",
        "properties": {
          "reservationHeader": {
            "$ref": "#/components/schemas/ReservationHeader"
          },
          "roomRequests": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "$ref": "#/components/schemas/RoomRequest"
            }
          },
          "transferRequests": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "$ref": "#/components/schemas/TransferRequest"
            }
          },
          "tourRequests": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "$ref": "#/components/schemas/TourRequest"
            }
          },
          "extensions": {
            "type": [
              "null",
              "object"
            ],
            "additionalProperties": {
              "type": "string"
            }
          }
        }
      },
      "ReservationRS": {
        "type": "object",
        "properties": {
          "reservationCode": {
            "type": "string"
          },
          "bookingStatus": {
            "$ref": "#/components/schemas/BookingStatusCode"
          },
          "totalReservationPrice": {
            "$ref": "#/components/schemas/Price"
          },
          "reservationHeader": {
            "$ref": "#/components/schemas/ReservationHeader"
          },
          "hotelServices": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "$ref": "#/components/schemas/HotelService"
            }
          },
          "transferServices": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "$ref": "#/components/schemas/TransferService"
            }
          },
          "tourServices": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "$ref": "#/components/schemas/TourService"
            }
          },
          "aLaCartServices": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "$ref": "#/components/schemas/ALaCartService"
            }
          },
          "escortedTourPackage": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/EscortedTourPackage"
              }
            ]
          },
          "selfDrivePackage": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/SelfDrivePackage"
              }
            ]
          },
          "warnings": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "type": "string"
            }
          }
        }
      },
      "RetrieveListRQ": {
        "type": "object",
        "properties": {
          "bookingDateFrom": {
            "type": [
              "null",
              "string"
            ],
            "format": "date-time"
          },
          "bookingDateTo": {
            "type": [
              "null",
              "string"
            ],
            "format": "date-time"
          },
          "travelDateFrom": {
            "type": [
              "null",
              "string"
            ],
            "format": "date-time"
          },
          "travelDateTo": {
            "type": [
              "null",
              "string"
            ],
            "format": "date-time"
          }
        },
        "description": "Request to retrieve a list of reservations filtered by booking date range and/or travel date range. At least one date range must be provided."
      },
      "RetrieveListRS": {
        "type": "object",
        "properties": {
          "reservations": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ReservationRS"
            }
          }
        },
        "description": "Response containing a list of reservations matching the search criteria."
      },
      "RetrieveRQ": {
        "type": "object",
        "properties": {
          "reservationCode": {
            "type": [
              "null",
              "string"
            ]
          },
          "partnerUniqueId": {
            "type": [
              "null",
              "string"
            ]
          }
        },
        "description": "Request to retrieve a reservation. Exactly one of ReservationCode, or PartnerUniqueId must be provided"
      },
      "Room": {
        "type": "object",
        "properties": {
          "roomId": {
            "type": "string"
          },
          "roomName": {
            "type": "string"
          }
        }
      },
      "RoomCriteria": {
        "required": [
          "adults"
        ],
        "type": "object",
        "properties": {
          "adults": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "childAges": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "pattern": "^-?(?:0|[1-9]\\d*)$",
              "type": [
                "integer",
                "string"
              ],
              "format": "int32"
            }
          }
        }
      },
      "RoomGuest": {
        "required": [
          "index",
          "firstName",
          "lastName",
          "age",
          "isPrimaryGuest"
        ],
        "type": "object",
        "properties": {
          "index": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "firstName": {
            "type": "string"
          },
          "lastName": {
            "type": "string"
          },
          "age": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "isPrimaryGuest": {
            "type": "boolean"
          }
        }
      },
      "RoomRequest": {
        "required": [
          "hotelId",
          "rateId",
          "roomId",
          "mealId",
          "stayRange",
          "room",
          "expectedPrice",
          "guests"
        ],
        "type": "object",
        "properties": {
          "hotelId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "rateId": {
            "type": "string"
          },
          "roomId": {
            "type": "string"
          },
          "mealId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "stayRange": {
            "$ref": "#/components/schemas/StayRange"
          },
          "room": {
            "$ref": "#/components/schemas/RoomCriteria"
          },
          "expectedPrice": {
            "$ref": "#/components/schemas/Price"
          },
          "guests": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RoomGuest"
            }
          },
          "hotelQuestionAnswers": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "$ref": "#/components/schemas/HotelQuestionAnswer"
            }
          },
          "addonOption": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/AddonOption"
              }
            ]
          },
          "remarks": {
            "type": [
              "null",
              "string"
            ]
          },
          "partnerServiceReference": {
            "type": [
              "null",
              "string"
            ]
          },
          "extensions": {
            "type": [
              "null",
              "object"
            ],
            "additionalProperties": {
              "type": "string"
            }
          }
        }
      },
      "RoutePoint": {
        "type": "object",
        "properties": {
          "routePointId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "type": {
            "$ref": "#/components/schemas/RoutePointType"
          }
        }
      },
      "RoutePointDestinationsRQ": {
        "required": [
          "startingRoutePoint"
        ],
        "type": "object",
        "properties": {
          "startingRoutePoint": {
            "$ref": "#/components/schemas/RoutePoint"
          }
        }
      },
      "RoutePointDestinationsRS": {
        "type": "object",
        "properties": {
          "startingRoutePoint": {
            "$ref": "#/components/schemas/RoutePoint"
          },
          "destinationRoutePoints": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "$ref": "#/components/schemas/RoutePoint"
            }
          }
        }
      },
      "RoutePointType": {
        "enum": [
          "Hotel",
          "Port"
        ],
        "description": "Allowed values:\n- Hotel (0): Route point is a hotel\n- Port (1): Route point is a port"
      },
      "SelfDrivePackage": {
        "type": "object",
        "properties": {
          "packageId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "packageStatus": {
            "$ref": "#/components/schemas/PackageStatusCode"
          }
        }
      },
      "ServiceStatusCode": {
        "enum": [
          "Failed",
          "Confirmed",
          "Cancelled",
          "OnRequest"
        ],
        "description": "Allowed values:\n- Failed (0): Service has failed during the booking and has not been confirmed\n- Confirmed (1): Service is confirmed\n- Cancelled (2): Service is cancelled\n- OnRequest (3): Service is on-request"
      },
      "StayRange": {
        "required": [
          "checkin",
          "checkout"
        ],
        "type": "object",
        "properties": {
          "checkin": {
            "type": "string"
          },
          "checkout": {
            "type": "string"
          }
        }
      },
      "TourAvailabilityRQ": {
        "required": [
          "tourCriteria"
        ],
        "type": "object",
        "properties": {
          "tourCriteria": {
            "$ref": "#/components/schemas/TourCriteria"
          },
          "extensions": {
            "type": [
              "null",
              "object"
            ],
            "additionalProperties": {
              "type": "string"
            }
          }
        }
      },
      "TourAvailabilityRS": {
        "type": "object",
        "properties": {
          "tourCriteria": {
            "$ref": "#/components/schemas/TourCriteria"
          },
          "availableTour": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/AvailableTour"
              }
            ]
          }
        }
      },
      "TourCancelPenalty": {
        "type": "object",
        "properties": {
          "start": {
            "type": "string"
          },
          "end": {
            "type": "string"
          },
          "percentage": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          }
        }
      },
      "TourCancelPolicy": {
        "type": "object",
        "properties": {
          "nonRefundable": {
            "type": "boolean"
          },
          "penalties": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TourCancelPenalty"
            }
          }
        }
      },
      "TourCoordinates": {
        "required": [
          "longitude",
          "latitude",
          "radiusMeters"
        ],
        "type": "object",
        "properties": {
          "longitude": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "latitude": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "number",
              "string"
            ],
            "format": "double"
          },
          "radiusMeters": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          }
        }
      },
      "TourCriteria": {
        "required": [
          "tourId",
          "locationId",
          "tourDate"
        ],
        "type": "object",
        "properties": {
          "tourId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "locationId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "optionId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "optionLanguageId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "tourDate": {
            "type": "string"
          },
          "tourStartTime": {
            "type": [
              "null",
              "string"
            ]
          },
          "adults": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "children": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "infants": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "seniors": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "youths": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          }
        }
      },
      "TourOption": {
        "type": "object",
        "properties": {
          "optionId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "title": {
            "type": "string"
          }
        }
      },
      "TourOptionLanguage": {
        "type": "object",
        "properties": {
          "optionLanguageId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "name": {
            "type": "string"
          }
        }
      },
      "TourParticipant": {
        "required": [
          "index",
          "firstName",
          "lastName",
          "age",
          "isPrimaryParticipant"
        ],
        "type": "object",
        "properties": {
          "index": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "firstName": {
            "type": "string"
          },
          "lastName": {
            "type": "string"
          },
          "age": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "isPrimaryParticipant": {
            "type": "boolean"
          }
        }
      },
      "TourPickupPoint": {
        "type": "object",
        "properties": {
          "pickupPointId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "name": {
            "type": "string"
          }
        }
      },
      "TourQuestion": {
        "type": "object",
        "properties": {
          "questionId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "title": {
            "type": "string"
          },
          "subtitle": {
            "type": "string"
          },
          "message": {
            "type": "string"
          },
          "isMandatory": {
            "type": "boolean"
          },
          "isPerPax": {
            "type": "boolean"
          },
          "isFreeText": {
            "type": "boolean"
          },
          "options": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "$ref": "#/components/schemas/TourQuestionOption"
            }
          },
          "tourQuestionConditionGroup": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/TourQuestionConditionGroup"
              }
            ]
          }
        }
      },
      "TourQuestionAnswer": {
        "required": [
          "questionId",
          "answer"
        ],
        "type": "object",
        "properties": {
          "questionId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "tourParticipantIndex": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "answer": {
            "type": "string"
          },
          "selectedOption": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "TourQuestionCondition": {
        "type": "object",
        "properties": {
          "operator": {
            "$ref": "#/components/schemas/OperatorCode"
          },
          "selectedParentValue": {
            "type": "string"
          },
          "options": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "$ref": "#/components/schemas/TourQuestionOption"
            }
          }
        }
      },
      "TourQuestionConditionGroup": {
        "type": "object",
        "properties": {
          "conditionType": {
            "$ref": "#/components/schemas/ConditionTypeCode"
          },
          "parentQuestionId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "conditions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TourQuestionCondition"
            }
          }
        }
      },
      "TourQuestionOption": {
        "type": "object",
        "properties": {
          "tourQuestionOptionId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "value": {
            "type": "string"
          },
          "isFreeText": {
            "type": "boolean"
          }
        }
      },
      "TourRequest": {
        "required": [
          "tourCriteria",
          "expectedPrice"
        ],
        "type": "object",
        "properties": {
          "rateId": {
            "type": "string"
          },
          "tourCriteria": {
            "$ref": "#/components/schemas/TourCriteria"
          },
          "expectedPrice": {
            "$ref": "#/components/schemas/Price"
          },
          "tourParticipants": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "$ref": "#/components/schemas/TourParticipant"
            }
          },
          "tourQuestionAnswers": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "$ref": "#/components/schemas/TourQuestionAnswer"
            }
          },
          "remarks": {
            "type": [
              "null",
              "string"
            ]
          },
          "partnerServiceReference": {
            "type": [
              "null",
              "string"
            ]
          },
          "extensions": {
            "type": [
              "null",
              "object"
            ],
            "additionalProperties": {
              "type": "string"
            }
          }
        }
      },
      "TourService": {
        "type": "object",
        "properties": {
          "serviceId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "tourId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "serviceStatus": {
            "$ref": "#/components/schemas/ServiceStatusCode"
          },
          "tourName": {
            "type": "string"
          },
          "rateId": {
            "type": "string"
          },
          "tourDate": {
            "type": "string"
          },
          "tourStartTime": {
            "type": [
              "null",
              "string"
            ]
          },
          "adults": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "children": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "infants": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "seniors": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "youths": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "tourOption": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/TourOption"
              }
            ]
          },
          "tourOptionLanguage": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/TourOptionLanguage"
              }
            ]
          },
          "price": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/Price"
              }
            ]
          },
          "cancelPolicy": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/TourCancelPolicy"
              }
            ]
          },
          "onRequest": {
            "type": "boolean"
          },
          "tourParticipants": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "$ref": "#/components/schemas/TourParticipant"
            }
          },
          "tourQuestionAnswers": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "$ref": "#/components/schemas/TourQuestionAnswer"
            }
          },
          "remarks": {
            "type": [
              "null",
              "string"
            ]
          },
          "partnerServiceReference": {
            "type": [
              "null",
              "string"
            ]
          },
          "extensions": {
            "type": [
              "null",
              "object"
            ],
            "additionalProperties": {
              "type": "string"
            }
          }
        }
      },
      "TransferAvailabilityRQ": {
        "type": "object",
        "properties": {
          "transferCriteria": {
            "$ref": "#/components/schemas/TransferCriteria"
          },
          "extensions": {
            "type": [
              "null",
              "object"
            ],
            "additionalProperties": {
              "type": "string"
            }
          }
        }
      },
      "TransferAvailabilityRS": {
        "type": "object",
        "properties": {
          "transferCriteria": {
            "$ref": "#/components/schemas/TransferCriteria"
          },
          "availableTransfers": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "$ref": "#/components/schemas/AvailableTransfer"
            }
          }
        }
      },
      "TransferCancelPenalty": {
        "type": "object",
        "properties": {
          "start": {
            "type": "string"
          },
          "end": {
            "type": "string"
          },
          "percentage": {
            "pattern": "^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$",
            "type": [
              "null",
              "number",
              "string"
            ],
            "format": "double"
          }
        }
      },
      "TransferCancelPolicy": {
        "type": "object",
        "properties": {
          "nonRefundable": {
            "type": "boolean"
          },
          "penalties": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TransferCancelPenalty"
            }
          }
        }
      },
      "TransferCriteria": {
        "required": [
          "startingRoutePoint",
          "destinationRoutePoint",
          "transferDate",
          "transferTime",
          "passengers"
        ],
        "type": "object",
        "properties": {
          "startingRoutePoint": {
            "$ref": "#/components/schemas/RoutePoint"
          },
          "destinationRoutePoint": {
            "$ref": "#/components/schemas/RoutePoint"
          },
          "transferDate": {
            "type": "string"
          },
          "transferTime": {
            "type": "string"
          },
          "passengers": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "luggage": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "childSeats": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/ChildSeat"
              }
            ]
          }
        }
      },
      "TransferFlightDetails": {
        "required": [
          "flightNumber",
          "flightTime"
        ],
        "type": "object",
        "properties": {
          "flightNumber": {
            "type": "string"
          },
          "flightTime": {
            "type": "string"
          }
        },
        "description": "Flight details"
      },
      "TransferPassenger": {
        "required": [
          "index",
          "firstName",
          "lastName",
          "age",
          "isPrimaryPassenger"
        ],
        "type": "object",
        "properties": {
          "index": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "firstName": {
            "type": "string"
          },
          "lastName": {
            "type": "string"
          },
          "age": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "isPrimaryPassenger": {
            "type": "boolean"
          }
        }
      },
      "TransferQuestion": {
        "type": "object",
        "properties": {
          "questionId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "title": {
            "type": "string"
          },
          "subtitle": {
            "type": "string"
          },
          "message": {
            "type": "string"
          },
          "isMandatory": {
            "type": "boolean"
          },
          "isPerPax": {
            "type": "boolean"
          },
          "isFreeText": {
            "type": "boolean"
          },
          "options": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "$ref": "#/components/schemas/TransferQuestionOption"
            }
          }
        }
      },
      "TransferQuestionAnswer": {
        "required": [
          "questionId",
          "answer"
        ],
        "type": "object",
        "properties": {
          "questionId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "transferPassengerIndex": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "null",
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "answer": {
            "type": "string"
          },
          "selectedOption": {
            "type": [
              "null",
              "string"
            ]
          }
        }
      },
      "TransferQuestionOption": {
        "type": "object",
        "properties": {
          "tourQuestionOptionId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "value": {
            "type": "string"
          },
          "isFreeText": {
            "type": "boolean"
          }
        }
      },
      "TransferRequest": {
        "required": [
          "transferCriteria",
          "vehicle",
          "transferFlightDetails",
          "expectedPrice",
          "transferPassengers"
        ],
        "type": "object",
        "properties": {
          "rateId": {
            "type": "string"
          },
          "transferCriteria": {
            "$ref": "#/components/schemas/TransferCriteria"
          },
          "vehicle": {
            "$ref": "#/components/schemas/Vehicle"
          },
          "transferFlightDetails": {
            "$ref": "#/components/schemas/TransferFlightDetails"
          },
          "expectedPrice": {
            "$ref": "#/components/schemas/Price"
          },
          "transferPassengers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TransferPassenger"
            }
          },
          "transferQuestionAnswers": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "$ref": "#/components/schemas/TransferQuestionAnswer"
            }
          },
          "remarks": {
            "type": [
              "null",
              "string"
            ]
          },
          "partnerServiceReference": {
            "type": [
              "null",
              "string"
            ]
          },
          "extensions": {
            "type": [
              "null",
              "object"
            ],
            "additionalProperties": {
              "type": "string"
            }
          }
        },
        "description": "Transfer service request to be included in the reservation."
      },
      "TransferService": {
        "type": "object",
        "properties": {
          "serviceId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "serviceStatus": {
            "$ref": "#/components/schemas/ServiceStatusCode"
          },
          "displayName": {
            "type": "string"
          },
          "rateId": {
            "type": "string"
          },
          "transferCriteria": {
            "$ref": "#/components/schemas/TransferCriteria"
          },
          "vehicle": {
            "$ref": "#/components/schemas/Vehicle"
          },
          "transferFlightDetails": {
            "$ref": "#/components/schemas/TransferFlightDetails"
          },
          "price": {
            "$ref": "#/components/schemas/Price"
          },
          "cancelPolicy": {
            "$ref": "#/components/schemas/TransferCancelPolicy"
          },
          "onRequest": {
            "type": "boolean"
          },
          "transferPassengers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TransferPassenger"
            }
          },
          "transferQuestionAnswers": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "$ref": "#/components/schemas/TransferQuestionAnswer"
            }
          },
          "details": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "type": "string"
            }
          },
          "pickupInstructions": {
            "type": [
              "null",
              "string"
            ]
          },
          "remarks": {
            "type": [
              "null",
              "string"
            ]
          },
          "partnerServiceReference": {
            "type": [
              "null",
              "string"
            ]
          },
          "extensions": {
            "type": [
              "null",
              "object"
            ],
            "additionalProperties": {
              "type": "string"
            }
          }
        }
      },
      "Vehicle": {
        "required": [
          "vehicleTypeId"
        ],
        "type": "object",
        "properties": {
          "vehicleTypeId": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "vehicleName": {
            "type": "string"
          }
        }
      }
    },
    "securitySchemes": {
      "BasicAuth": {
        "type": "http",
        "description": "HTTP Basic authentication. Use your configured username and password.",
        "scheme": "basic"
      }
    }
  },
  "tags": [
    {
      "name": "Connectivity API"
    }
  ]
}