{
  "swagger": "2.0",
  "info": {
    "description": "Expedia Mobile API Documentation. <br><font color=\"blue\"> (Note: In case of authorization exception, just <a href=\"/static/mobile/swaggerui/#!/User/signin-user\">Sign-In</a>)</font>",
    "version": "0.0.1",
    "title": "Flights, Hotels, LX, Cars, Rails, Packages, Trips, User API"
  },
  "schemes": [
    "https"
  ],
  "paths": {
    "/api/flight/search": {
      "get": {
        "tags": [
          "Flights"
        ],
        "summary": "Search",
        "description": "Mobile API Flights",
        "operationId": "flights-search",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "query",
            "name": "departureDate",
            "description": "Date the customer wants to leave for their flight on, in ISO format.",
            "type": "string",
            "required": true,
            "defaultValue": "2015-12-15"
          },
          {
            "in": "query",
            "name": "returnDate",
            "description": "Date the customer wants to return on. If present indicates a round trip search. If not supplied, then it's a one-way search.",
            "type": "string"
          },
          {
            "in": "query",
            "name": "departureAirport",
            "description": "The three letter airport code for where the customer is leaving from.",
            "type": "string",
            "required": true,
            "defaultValue": "SFO"
          },
          {
            "in": "query",
            "name": "arrivalAirport",
            "description": "The three letter airport code to where the customer is going.",
            "type": "string",
            "required": true,
            "defaultValue": "BOS"
          },
          {
            "in": "query",
            "name": "prettyPrint",
            "description": "Controls JSON response formatting. When set to true, its human-readable.",
            "type": "boolean"
          },
          {
            "in": "query",
            "name": "numberOfAdultTravelers",
            "description": "Number of Adult Travelers (Default: 1)",
            "type": "integer"
          },
          {
            "in": "query",
            "name": "childTravelerAge",
            "description": "childTravelerAge represents the age of a single child traveler. You are required to specify the age of all child travelers. That means you must specify this parameter for each child that will be flying. Valid values are 0-17 (0 for an infant under the age of one year).",
            "type": "integer"
          },
          {
            "in": "query",
            "name": "infantSeatingInLap",
            "description": "Set to true if infant(s) are without a reserved seat (in an adult's lap).(Default: false - Infant(s) in a reserved seat)",
            "type": "boolean"
          },
          {
            "in": "query",
            "name": "lccAndMerchantFareCheckoutAllowed",
            "description": "flag to indicate whether lcc and merchant fares should be returned in search response",
            "type": "boolean"
          },
          {
            "in": "query",
            "name": "correlationId",
            "description": "Optional parameter to define a correlation between a hotel search and a flight search",
            "type": "string"
          },
          {
            "in": "query",
            "name": "maxOfferCount",
            "description": "Maximum number of offers to return. (Default: 111, Max: 2000)",
            "type": "integer"
          },
          {
            "in": "query",
            "name": "showRefundableFlight",
            "description": "Set to true to return only refundable(Free cancellation available) flights in the search response .(Default:False)",
            "type": "boolean"
          },
          {
            "in": "query",
            "name": "nonStopFlight",
            "description": "Set to true to return only non stop flights in the search response .(Default:False)",
            "type": "boolean"
          }
        ],
        "responses": {
          "200": {
            "description": "successful operation",
            "schema": {
              "$ref": "#/definitions/flightSearchResponse"
            }
          }
        }
      }
    },
    "/api/flight/trip/create": {
      "post": {
        "tags": [
          "Flights"
        ],
        "summary": "Create A Trip",
        "description": "Mobile API Flights Create Trip Operation",
        "operationId": "flights-create-trip",
        "consumes": [
          "application/x-www-form-urlencoded"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "formData",
            "name": "productKey",
            "description": "The product key, obtained from /api/flight/search, we are going to create a trip for. The productKey or mobileShoppingKey is required.",
            "type": "string",
            "required": true
          },
          {
            "in": "formData",
            "name": "mobileShoppingKey",
            "description": "The mobile shopping key we are going to create a trip for. The productKey or mobileShoppingKey is required.",
            "type": "string"
          },
          {
            "in": "formData",
            "name": "tripTitle",
            "description": "The name of this itinerary as it will appear to customer service and in the itinerary list. Upto 255 characters that must be one of these: .,a-zA-Z0-9'- #",
            "type": "string"
          },
          {
            "in": "formData",
            "name": "withInsurance",
            "description": "Whether to return the available insurance options for this trip. Currently this only works for flights. (Default: false)",
            "type": "boolean"
          },
          {
            "in": "formData",
            "name": "qualifyAirAttach",
            "description": "Whether to return a qualified air attach product for this trip. It will use the same rate plan and room type codes as the productKey sent in the request. But the product key that will be used to get the air attached product will be different.",
            "type": "boolean"
          }
        ],
        "responses": {
          "200": {
            "description": "successful operation",
            "schema": {
              "$ref": "apiCreateTripResponse"
            }
          }
        }
      }
    },
    "/api/flight/trip/cardFee": {
      "post": {
        "tags": [
          "Flights"
        ],
        "summary": "Get the credit card fee for a trip",
        "description": "This api provides an accurate credit card fee that a user would have to pay when booking a trip.",
        "operationId": "flights-trip-fee",
        "consumes": [
          "application/x-www-form-urlencoded"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "formData",
            "name": "tripId",
            "description": "The id of the trip to get the credit card fee for.",
            "type": "string",
            "required": true
          },
          {
            "in": "formData",
            "name": "creditCardId",
            "description": "This is a string that identifies the credit card that will be used to pay for the trip. It can be either the first 6 digits of a credit card number, called the bin prefix. Or it can be the paymentsInstrumentsId of a stored credit card in a user's account. The paymentsInstrumentsId can be found in the list of storedCreditCards from the sign-in response.",
            "type": "string"
          },
          {
            "in": "formData",
            "name": "clientId",
            "description": "Client Id",
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "successful operation",
            "schema": {
              "$ref": "cardFee"
            }
          }
        }
      }
    },

    "/api/flight/details": {
      "get": {
        "tags": [
          "Flights"
        ],
        "summary": "Details",
        "description": "Mobile API Flight Details Operation",
        "operationId": "flights-details",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "query",
            "name": "departureDate",
            "description": "Date the customer wants to leave for their flight on, in ISO format.",
            "type": "string",
            "required": true,
            "defaultValue": "2015-12-15"
          },
          {
            "in": "query",
            "name": "returnDate",
            "description": "Date the customer wants to return on. If present indicates a round trip search. If not supplied, then it's a one-way search.",
            "type": "string"
          },
          {
            "in": "query",
            "name": "productKey",
            "description": "A productKey, obtained from a call to flight search, within the past 20 minutes. Required. If the price has changed since the key was issued, a price change error will be thrown (eventually; not implemented yet). If the key has expired, this will (eventually, not implemented yet) return product key expired.",
            "type": "string",
            "required": true
          },
          {
            "in": "query",
            "name": "departureAirport",
            "description": "The three letter airport code for where the customer is leaving from.",
            "type": "string",
            "required": true,
            "defaultValue": "SFO"
          },
          {
            "in": "query",
            "name": "arrivalAirport",
            "description": "The three letter airport code for where the customer is going.",
            "type": "string",
            "required": true,
            "defaultValue": "BOS"
          },
          {
            "in": "query",
            "name": "numberOfAdultTravelers",
            "description": "Number of Adult Travelers (Default: 1)",
            "type": "string"
          },
          {
            "in": "query",
            "name": "childTravelerAge",
            "description": "childTravelerAge represents the age of a single child traveler. You are required to specify the age of all child travelers. That means you must specify this parameter for each child that will be flying. Valid values are 0-17 (0 for an infant under the age of one year).",
            "type": "string"
          },
          {
            "in": "query",
            "name": "infantSeatingInLap",
            "description": "Set to true if infant(s) are without a reserved seat (in an adult's lap).(Default: false - Infant(s) in a reserved seat)",
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "successful operation",
            "schema": {
              "$ref": "flightDetailJsonResponse"
            }
          }
        }
      }
    },
    "/api/flight/image": {
      "get": {
        "tags": [
          "Flights"
        ],
        "summary": "Flight Image",
        "description": "Mobile API Flight Image Operation",
        "operationId": "flights-image",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "query",
            "name": "destinationCode",
            "description": "The three letter airport code or metro code of the destination. ",
            "type": "string",
            "required": true,
            "defaultValue": "SFO"
          },
          {
            "in": "query",
            "name": "imageWidth",
            "description": "Requested width of the image.",
            "type": "integer",
            "required": true,
            "defaultValue": "640"
          },
          {
            "in": "query",
            "name": "imageHeight",
            "description": "Requested height of the image.",
            "type": "integer",
            "required": true,
            "defaultValue": "960"
          }
        ],
        "responses": {
          "200": {
            "description": "successful operation",
            "schema": {
              "$ref": "imageJsonResponse"
            }
          }
        }
      }
    },
    "/api/mobile/image": {
      "get": {
        "tags": [
          "Flights"
        ],
        "summary": "Mobile Image",
        "description": "Mobile API Flight Mobile Image Operation",
        "operationId": "flights-mobile-image",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "query",
            "name": "imageCode",
            "description": "image primary key, for example CAR:ECONOMY ACTIVITY:DISNEY DESTINATION:JFK DESTINATIONMOBILEWEB:JFK CARMOBILEWEB:MINI",
            "type": "string",
            "required": true,
            "defaultValue": "CAR:ECONOMY"
          },
          {
            "in": "query",
            "name": "imageType",
            "description": "type of image. examples DESTINATION DESTINATIONMOBILEWEB CAR CARMOBILEWEB ACTIVITY",
            "type": "string",
            "required": true,
            "defaultValue": "DESTINATION"
          },
          {
            "in": "query",
            "name": "imageWidth",
            "description": "Requested width of the image.",
            "type": "integer",
            "required": true,
            "defaultValue": "640"
          },
          {
            "in": "query",
            "name": "imageHeight",
            "description": "Requested height of the image.",
            "type": "integer",
            "required": true,
            "defaultValue": "960"
          }
        ],
        "responses": {
          "200": {
            "description": "successful operation",
            "schema": {
              "$ref": "imageJsonResponse"
            }
          }
        }
      }
    },
    "/api/flight/airportDropDown": {
      "get": {
        "tags": [
          "Flights"
        ],
        "summary": "Airport Dropdown",
        "description": "Mobile API Flight Airport Dropdown Operation",
        "operationId": "flights-airport-dropdown",
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "successful operation",
            "schema": {
              "$ref": "airportDropDownDataResponse"
            }
          }
        }
      }
    },
    "/api/flight/checkout": {
      "post": {
        "tags": [
          "Flights"
        ],
        "summary": "Mobile Flight Checkout",
        "description": "Checkout a previously created flight trip, requiring payment fields, the trip id, and the passenger fields",
        "operationId": "flights-checkout",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "formData",
            "name": "tripId",
            "description": "The trip ID of an existing trip, from /api/flight/trip/create.",
            "type": "string",
            "required": true
          },
          {
            "in": "formData",
            "name": "expectedTotalFare",
            "description": "The expected total price of the trip, matching exactly whatever the user last saw. No leading zeros, no thousands separators, and 2 decimal places of precision. This is obtained from /api/flight/trip/create.",
            "type": "string",
            "required": true
          },
          {
            "in": "formData",
            "name": "expectedFareCurrencyCode",
            "description": "Three letter 4217 ISO currency code of the expected total price. This should be whatever was returned by the server. Conversions will not be done. This is obtained from /api/flight/trip/create.",
            "type": "string",
            "required": true
          },
          {
            "in": "formData",
            "name": "expectedCardFee",
            "description": "The expected credit card fee, as returned by the createTrip call in the validFormsOfPayment object for whatever credit card the user is paying with. No leading zeros, no thousands separators, and 2 decimal places of precision.",
            "type": "string"
          },
          {
            "in": "formData",
            "name": "expectedCardFeeCurrencyCode",
            "description": "Three letter 4217 ISO currency code of the expected credit card fee. This should be whatever was returned by the server. Conversions will not be done.",
            "type": "string"
          },
          {
            "in": "formData",
            "name": "doIThinkImSignedIn",
            "description": "As a client I am checking-out with the assumption that I am signed in",
            "type": "boolean"
          },
          {
            "in": "formData",
            "name": "tealeafTransactionId",
            "description": "The unique transaction ID used in TeaLeaf PSR tracking",
            "type": "string"
          },
          {
            "in": "formData",
            "name": "omniturePartnerId",
            "description": "Omniture partner identification string",
            "type": "string"
          },
          {
            "in": "formData",
            "name": "sendEmailConfirmation",
            "description": "Used to check if confirmation email needs to be sent or not.",
            "type": "boolean"
          },
          {
            "in": "formData",
            "name": "mainFlightPassenger[0].phoneCountryCode",
            "description": "Country code of the phone of the main flight passenger",
            "type": "string"
          },
          {
            "in": "formData",
            "name": "mainFlightPassenger[0].phone",
            "description": "Phone number of the main flight passenger",
            "type": "string"
          },
          {
            "in": "formData",
            "name": "mainFlightPassenger[0].email",
            "description": "Email address of the main flight passenger",
            "type": "string"
          },
          {
            "in": "formData",
            "name": "mainFlightPassenger[0].password",
            "description": "Password of the main flight passenger",
            "type": "string"
          },
          {
            "in": "formData",
            "name": "mainFlightPassenger[0].expediaEmailOptIn",
            "description": "If the main flight passenger wishes to opt out for Expedia emails or not",
            "type": "boolean"
          },
          {
            "in": "formData",
            "name": "associatedFlightPassengers[0].title",
            "description": "Title of the associated flight passenger fields.",
            "type": "string"
          },
          {
            "in": "formData",
            "name": "associatedFlightPassengers[0].gender",
            "description": "Gender of the associated flight passenger fields.",
            "type": "string"
          },
          {
            "in": "formData",
            "name": "associatedFlightPassengers[0].birthDate",
            "description": "Birth date of the associated flight passenger fields.",
            "type": "string"
          },
          {
            "in": "formData",
            "name": "associatedFlightPassengers[0].seatPreference",
            "description": "Seat preference of the associated flight passenger fields.",
            "type": "string"
          },
          {
            "in": "formData",
            "name": "associatedFlightPassengers[0].passengerCategory",
            "description": ":Passenger category of the associated flight passenger fields.",
            "type": "string"
          },
          {
            "in": "formData",
            "name": "associatedFlightPassengers[0].passportCountryCode",
            "description": "Passport country code of the associated flight passenger fields.",
            "type": "string"
          },
          {
            "in": "formData",
            "name": "associatedFlightPassengers[0].TSARedressNumber",
            "description": "TSA redress number of the associated flight passenger fields.",
            "type": "string"
          },
          {
            "in": "formData",
            "name": "associatedFlightPassengers[0].knownTravelerNumber",
            "description": "knownTravelerNumber(PreCheckNumber) of the associated flight passenger fields.",
            "type": "integer"
          },
          {
            "in": "formData",
            "name": "associatedFlightPassengers[0].specialAssistanceOption",
            "description": "Special assistance option for the associated flight passenger fields.",
            "type": "string"
          },
          {
            "in": "formData",
            "name": "validateWithChildren",
            "description": "Set this flag to true to enable child validation logic on the server. If you wish to book with child passengers then you must set this flag to true. (default: false)",
            "type": "boolean"
          },
          {
            "in": "formData",
            "name": "phoneCountryCode",
            "description": "Country code of the phone of the main flight passenger",
            "type": "string",
            "required": true,
            "defaultValue": "+1"
          },
          {
            "in": "formData",
            "name": "phone",
            "description": "Phone number of the main flight passenger",
            "type": "string",
            "required": true,
            "defaultValue": "1234567890"
          },
          {
            "in": "formData",
            "name": "email",
            "description": "Email address of the main flight passenger",
            "type": "string",
            "required": true,
            "defaultValue": "test@expedia.com"
          },
          {
            "in": "formData",
            "name": "password",
            "description": "Password of the main flight passenger",
            "type": "string"
          },
          {
            "in": "formData",
            "name": "expediaEmailOptIn",
            "description": "If the main flight passenger wishes to opt out for Expedia emails or not",
            "type": "boolean"
          },
          {
            "in": "formData",
            "name": "title",
            "description": "Title of the associated flight passenger fields.",
            "type": "string"
          },
          {
            "in": "formData",
            "name": "gender",
            "description": "Gender of the associated flight passenger fields.",
            "type": "string",
            "enum": [
              "MALE",
              "FEMALE"
            ],
            "required": true
          },
          {
            "in": "formData",
            "name": "birthDate",
            "description": "Birth date of the associated flight passenger fields.",
            "type": "string",
            "required": true,
            "defaultValue": "1989-12-12"
          },
          {
            "in": "formData",
            "name": "seatPreference",
            "description": "Seat preference of the associated flight passenger fields.",
            "type": "string"
          },
          {
            "in": "formData",
            "name": "passengerCategory",
            "description": ":Passenger category of the associated flight passenger fields.",
            "type": "string"
          },
          {
            "in": "formData",
            "name": "passportCountryCode",
            "description": "Passport country code of the associated flight passenger fields.",
            "type": "string"
          },
          {
            "in": "formData",
            "name": "TSARedressNumber",
            "description": "TSA redress number of the associated flight passenger fields.",
            "type": "string"
          },
          {
            "in": "formData",
            "name": "knownTravelerNumber",
            "description": "knownTravelerNumber(PreCheckNumber) of the associated flight passenger fields.",
            "type": "integer"
          },
          {
            "in": "formData",
            "name": "specialAssistanceOption",
            "description": "Special assistance option for the associated flight passenger fields.",
            "type": "string"
          },
          {
            "in": "formData",
            "name": "firstName",
            "description": "The first name of the traveler",
            "type": "string",
            "required": "true",
            "defaultValue": "Andrew"
          },
          {
            "in": "formData",
            "name": "middleName",
            "description": "The middle name of the traveler. ",
            "type": "string"
          },
          {
            "in": "formData",
            "name": "lastName",
            "description": "The last name of the traveler.",
            "type": "string",
            "required": "true",
            "defaultValue": "Lappin"
          },
          {
            "in": "formData",
            "name": "streetAddress",
            "description": "The street part of the credit card owner's billing address..",
            "type": "string",
            "required": true,
            "defaultValue": "Test Street"
          },
          {
            "in": "formData",
            "name": "streetAddress2",
            "description": "Apartment or suite number of the traveler's billing address.",
            "type": "string"
          },
          {
            "in": "formData",
            "name": "city",
            "description": "The city of the traveler's billing address.",
            "type": "string",
            "required": true,
            "defaultValue": "San Francisco"
          },
          {
            "in": "formData",
            "name": "state",
            "description": "The state (or province) of the traveler's billing address.",
            "type": "string",
            "required": true,
            "defaultValue": "CA"
          },
          {
            "in": "formData",
            "name": "country",
            "description": "The 3 letter country code of the traveler's billing address.",
            "type": "string",
            "required": true,
            "defaultValue": "USA"
          },
          {
            "in": "formData",
            "name": "postalCode",
            "description": "The postal code of the traveler's billing address. Required only postalCode only checkout.",
            "type": "string",
            "required": true,
            "defaultValue": "94111"
          },
          {
            "in": "formData",
            "name": "creditCardNumber",
            "description": "The credit card number used for this booking, if checking out with a new card. This field is required for guest checkout.",
            "type": "string",
            "required": true,
            "defaultValue": "4111111111111111"
          },
          {
            "in": "formData",
            "name": "expirationDateYear",
            "description": "The 4 digit expiration date year of the credit card used for this booking. This field is required for guest checkout.",
            "type": "integer",
            "required": true,
            "defaultValue": "2025"
          },
          {
            "in": "formData",
            "name": "expirationDateMonth",
            "description": "The expiration date month of the credit card used for this booking. This field is required guest for checkout.",
            "type": "integer",
            "required": true,
            "defaultValue": "12"
          },
          {
            "in": "formData",
            "name": "cvv",
            "description": "The CVV of the traveler's credit card used for this booking.",
            "type": "string",
            "required": "true",
            "defaultValue": "111"
          },
          {
            "in": "formData",
            "name": "storedCreditCardId",
            "description": "The GUID for the stored credit card information to be used for payment. The retrieved credit card information should trump the other credit card parameter in this request.",
            "type": "string"
          },
          {
            "in": "formData",
            "name": "storeCreditCardInUserProfile",
            "description": "Indicates whether to save the credit card information as a stored credit card in the user profile. This is ignored if the user is not signed in.",
            "type": "boolean"
          },
          {
            "in": "formData",
            "name": "nameOnCard",
            "description": "The card holder's name",
            "type": "string",
            "required": true,
            "defaultValue": "Andrew Lappin"
          },
          {
            "in": "formData",
            "name": "prettyPrint",
            "description": "If true, return JSON with tabs, spaces and newlines to be human readable",
            "type": "boolean"
          },
          {
            "in": "formData",
            "name": "suppressFinalBooking",
            "description": "If true, do not actually charge for and book the trip, stop after creating the itinerary. Used for testing on the checkout call only. Checkout will return 00000 for the OMS order ID when this is true",
            "type": "boolean"
          }
        ],
        "responses": {
          "200-OK": {
            "description": "successful operation",
            "schema": {
              "$ref": "apiCheckoutResponseFlightOkResponse"
            }
          },
          "200-PriceChange": {
            "description": "successful operation",
            "schema": {
              "$ref": "apiCheckoutResponseFlightPriceChangeResponse"
            }
          }
        }
      }
    },
    "/m/api/flight/trip/V2/create": {
      "post": {
        "tags": [
          "Flights"
        ],
        "summary": "Create a trip for partner",
        "description": "Creates a flight trip, passing a product key and all required fields.",
        "operationId": "flights-checkout",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "formData",
            "name": "productKey",
            "description": "The product key we are going to create a trip for. The productKey or mobileShoppingKey is required.",
            "type": "string"
          },
          {
            "in": "formData",
            "name": "numberOfAdultTravelers",
            "description": "Number of Adult Travelers (Default: 1).",
            "type": "integer"
          },
          {
            "in": "formData",
            "name": "childTravelerAge[0]",
            "description": "childTravelerAge represents the age of a single child traveler. You are required to specify the age of all child travelers. That means you must specify this parameter for each child that will be flying. Valid values are 0-17 (0 for an infant under the age of one year). If you would like to specify 3 child travelers with the ages of 1, 3 and 8 years, then your query string should contain:childTravelerAge=1&amp;childTravelerAge=3&amp;childTravelerAge=8",
            "type": "integer"
          },
          {
            "in": "formData",
            "name": "infantSeatingInLap",
            "description": "Set to true if infant(s) are without a reserved seat (in an adult's lap).(Default: false - Infant(s) in a reserved seat)",
            "type": "boolean",
            "defaultValue": "false"
          },
          {
            "in": "formData",
            "name": "tripTitle",
            "description": "The name of this itinerary as it will appear to customer service and in the itinerary list. Upto 255 characters that must be one of these: .,a-zA-Z0-9'- #",
            "type": "string"
          },
          {
            "in": "formData",
            "name": "withInsurance",
            "description": "Whether to return the available insurance options for this trip. Currently this only works for flights. (Default: false)",
            "type": "boolean",
            "defaultValue": false
          }
        ],
        "responses": {
          "responses": {
            "200": {
              "description": "successful operation",
              "schema": {
                "$ref": "apiCreateTripResponse"
              }
            }
          }
        }
      }
    },
    "/m/api/hotel/search": {
      "get": {
        "tags": [
          "Hotels"
        ],
        "summary": "Search",
        "description": "Mobile API Hotels Search\n\nThere are multiple successful responses for this operation.\nSee the examples below for more information.",
        "operationId": "hotels-search",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "query",
            "name": "tripId",
            "description": "This field is optional and will default to the the POS default PriceType.",
            "type": "string",
            "enum": [
              "BASE_PRICE_ONLY",
              "TOTAL_PRICE",
              "DEFAULT_POS_PRICE_TYPE_WITH_FEES"
            ]
          },
          {
            "in": "query",
            "name": "city",
            "description": "A string to identify the city to search.",
            "type": "string",
            "required": true,
            "defaultValue": "SFO"
          },
          {
            "in": "query",
            "name": "regionId",
            "description": "An Expedia region ID to limit the search to a particular region.",
            "type": "string"
          },
          {
            "in": "query",
            "name": "latitude",
            "description": "Latitude to be used in combination with longitude for a coordinate search.",
            "type": "string"
          },
          {
            "in": "query",
            "name": "longitude",
            "description": "Longitude to be used in combination with latitude for a coordinate search.",
            "type": "string"
          },
          {
            "in": "query",
            "name": "correlationId",
            "description": "Define a correlation between a hotel search and a flight search.",
            "type": "string"
          },
          {
            "in": "query",
            "name": "filterUnavailable",
            "description": "Unavailable hotels will be removed from the response if set to true. The default is false if not specified.",
            "type": "boolean"
          },
          {
            "in": "query",
            "name": "filterHotelName",
            "description": "Hotel name used to filter the search results.",
            "type": "string"
          },
          {
            "in": "query",
            "name": "filterInventoryType",
            "description": "A parameter to filter by inventory type. Only supports MERCHANT right now, all other values are just ignored.",
            "type": "string"
          },
          {
            "in": "query",
            "name": "filterPrice",
            "description": "Used to filter by price, make sure it matches filterPriceBuckets if counts are desired. Must contain 1 or 2 numbers. 1 number means there is no max price, min price must be greater than or equal to 0.",
            "type": "string"
          },
          {
            "in": "query",
            "name": "filterPriceBuckets",
            "description": "Used to define custom price filter buckets. if not provided then the default price filter buckets for the POS will be used. No need to define 0, each value in price bucket is minimum of price range. Note that price range can be decimal format but buckets must be integer. If supplied 4 values are required as input.",
            "type": "string"
          },
          {
            "in": "query",
            "name": "filterStarRatings",
            "description": "Used to filter by star rating. Must be in increments of 5 and separated by commas(minStarRating=0 and maxStarRating=50). Ex. '0,5,10' means 0, 0.5 and 1 star hotels",
            "type": "string"
          },
          {
            "in": "query",
            "name": "filterAmenities",
            "description": "Used to filter by amenities. Must be as a list of amenity ids separated by commas. Please note that there is no way at this time to validate the ids are actually valid.",
            "type": "string"
          },
          {
            "in": "query",
            "name": "sortOrder",
            "description": "Order to sort the list of hotels by Expedia picks, star rating, price and guest rating.",
            "type": "boolean"
          },
          {
            "in": "query",
            "name": "sortOrderFilter",
            "description": "A post process sort order filter used to apply post sort order filtering to the sorted (sortOrder) search results.",
            "type": "string"
          },
          {
            "in": "query",
            "name": "resultsPerPage",
            "description": "The number of hotels to return per page. A value of -1 (negative one) is reserved to mean Return ALL matching hotels. The default value is 25 (twenty five).",
            "type": "integer"
          },
          {
            "in": "query",
            "name": "pageIndex",
            "description": "The zero-based index of the page that you are requesting. The default value is 0 (zero).",
            "type": "integer"
          },
          {
            "in": "query",
            "name": "forceV2Search",
            "description": "A flag to indicate whether the api should do a domain V2 search for the mobile app.",
            "type": "boolean"
          },
          {
            "in": "query",
            "name": "returnOpaqueHotels",
            "description": "Return Opaque hotels if set to true.",
            "type": "boolean"
          },
          {
            "in": "query",
            "name": "hgid",
            "description": "If the hotel group ID parameter (hgid) is present it will take precedence over city, location or lat/long",
            "type": "string"
          },
          {
            "in": "query",
            "name": "airAttachQualificationCode",
            "description": "Qualification code needed to get air attached hotel prices",
            "type": "string"
          },
          {
            "in": "query",
            "name": "enableSponsoredListings",
            "description": "Used to check for sponsoredListing. By default the value would be false",
            "type": "boolean"
          },
          {
            "in": "query",
            "name": "sourceType",
            "description": "Source type for the request",
            "type": "string",
            "enum": [
              "mobileapp",
              "mobileweb"
            ]
          },
          {
            "in": "query",
            "name": "checkInDate",
            "description": "Check in date in ISO format (yyyy-MM-dd)",
            "type": "string",
            "required": true,
            "defaultValue": "2015-12-01"
          },
          {
            "in": "query",
            "name": "checkOutDate",
            "description": "Check out date in ISO format (yyyy-MM-dd)",
            "type": "string",
            "required": true,
            "defaultValue": "2015-12-03"
          },
          {
            "in": "query",
            "name": "room1",
            "description": "[Optional if room field is specified] A Comma Separated Value of #OfAdults, followed by children's ages for all children that are 18 and under. If the child is under 1 then specify as 0. For example 2,12,2,3,0. If it's just adults an example would be 2.",
            "type": "string",
            "defaultValue": "2"
          },
          {
            "in": "query",
            "name": "room",
            "description": "[Optional if room1 field is specified] A Comma Separated Value of #OfAdults, followed by children's ages for all children that are 18 and under. If the child is under 1 then specify as 0. For example 2,12,2,3,0. If it's just adults an example would be 2.",
            "type": "string"
          }
        ],
        "responses": {
          "200-OK": {
            "schema": {
              "$ref": "#/definitions/hotelSearchResponse"
            }
          },
          "200-Ambiguous": {
            "schema": {
              "$ref": "#/definitions/hotelAmbiguousResponse"
            }
          }
        }
      }
    },
    "/m/api/hotel/offers": {
      "get": {
        "tags": [
          "Hotels"
        ],
        "summary": "Get Offers",
        "description": "Mobile API Hotels Offers",
        "operationId": "hotels-offers",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "query",
            "name": "hotelId",
            "description": "a 32-bit integer, currently between 1 through 7 digit number",
            "type": "string",
            "required": true
          },
          {
            "in": "query",
            "name": "priceType",
            "description": "Price Type, can only be TOTAL_PRICE or BASE_PRICE_ONLY",
            "type": "string",
            "enum": [
              "TOTAL_PRICE",
              "BASE_PRICE_ONLY"
            ]
          },
          {
            "in": "query",
            "name": "useCacheForAirAttach",
            "description": "[Optional] If this flag is set then the hotel offers (on a successful offers call) and the search fields will be cached. There is a possiblilty that theywill be used later in the create trip calls",
            "type": "boolean"
          },
          {
            "in": "query",
            "name": "sourceType",
            "description": "Source Type, for example mobilweb or mobileapp",
            "type": "string"
          },
          {
            "in": "query",
            "name": "checkInDate",
            "description": "Checkin Date",
            "type": "string",
            "required": true,
            "defaultValue": "2015-12-01"
          },
          {
            "in": "query",
            "name": "checkOutDate",
            "description": "Checkout Date",
            "type": "string",
            "required": true,
            "defaultValue": "2015-12-03"
          },
          {
            "in": "query",
            "name": "room1",
            "description": "[Optional if room field is specified] A Comma Separated Value of #OfAdults, followed by children's ages for all children that are 18 and under. If the child is under 1 then specify as 0. For example 2,12,2,3,0. If it's just adults an example would be 2.",
            "type": "string",
            "defaultValue": "2"
          },
          {
            "in": "query",
            "name": "room",
            "description": "[Optional if room1 field is specified] A Comma Separated Value of #OfAdults, followed by children's ages for all children that are 18 and under. If the child is under 1 then specify as 0. For example 2,12,2,3,0. If it's just adults an example would be 2.",
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation",
            "schema": {
              "$ref": "jsonGetOfferResponse"
            }
          }
        }
      }
    },
    "/m/api/hotel/trip/create": {
      "post": {
        "tags": [
          "Hotels"
        ],
        "summary": "Create A Trip",
        "description": "Mobile API Hotels Create Trip",
        "operationId": "hotels-create-trip",
        "consumes": [
          "application/x-www-form-urlencoded"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "formData",
            "name": "productKey",
            "description": "The product key, obtained by calling /m/api/hotel/offers,  we are going to create a trip for.",
            "type": "string",
            "required": true
          },
          {
            "in": "formData",
            "name": "tripTitle",
            "description": "[Optional] The name of this itinerary as it will appear to customer service and in the itinerary list. Upto 255 characters that must be one of these: .,a-zA-Z0-9'- #",
            "type": "string"
          },
          {
            "in": "formData",
            "name": "withInsurance",
            "description": "[Optional] Whether to return the available insurance options for this trip. Currently this only works for flights. (Default: false)",
            "type": "boolean"
          },
          {
            "in": "formData",
            "name": "qualifyAirAttach",
            "description": "[Optional] Whether to return a qualified air attach product for this trip. It will use the same rate plan and room type codes as the productKey sent in the request. But the product key that will be used to get the air attached product will be different",
            "type": "boolean"
          },
          {
            "in": "formData",
            "name": "roomInfoFields[0].room",
            "description": "A Comma Separated Value of #OfAdults, followed by children's ages for all children that are 18 and under. If the child is under 1 then specify as 0. For example 2,12,2,3,0. If it's just adults an example would be 2.",
            "type": "array",
            "items": {
              "type": "string"
            },
            "required": true,
            "defaultValue": "2"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation",
            "schema": {
              "$ref": "jsonCreateTripResponse"
            }
          }
        }
      }
    },
    "/m/api/hotel/trip/checkout": {
      "post": {
        "tags": [
          "Hotels"
        ],
        "summary": "Checkout",
        "description": "Mobile API Hotels Checkout",
        "operationId": "hotels-checkout",
        "consumes": [
          "application/x-www-form-urlencoded"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "formData",
            "name": "tripId",
            "description": "The trip ID of an existing trip, from /m/api/hotel/trip/create.",
            "type": "string",
            "required": true
          },
          {
            "in": "formData",
            "name": "checkInDate",
            "description": "Check in date in ISO format (yyyy-MM-dd)",
            "type": "string",
            "required": true,
            "defaultValue": "2015-12-12"
          },
          {
            "in": "formData",
            "name": "checkOutDate",
            "description": "Check out date in ISO format (yyyy-MM-DD)",
            "type": "string",
            "required": true,
            "defaultValue": "2015-12-14"
          },
          {
            "in": "formData",
            "name": "rooms",
            "description": "A list of room preferences to be applied to the rooms being booked.",
            "type": "string"
          },
          {
            "in": "formData",
            "name": "sendEmailConfirmation",
            "description": "Used to check if confirmation email needs to be sent or not.",
            "type": "boolean"
          },
          {
            "in": "formData",
            "name": "bedTypeId",
            "description": "Parameter that indicates the selected bed Type. Defaults to the first available bed type of the hotel offer. [Deprecated]. Pass bedTypeId for each room.",
            "type": "integer"
          },
          {
            "in": "formData",
            "name": "phoneCountryCode",
            "description": "The country code of the phone number of the traveler. Only the numeric values in this field are used. +44 results in 44",
            "type": "integer",
            "required": true,
            "defaultValue": "+1"
          },
          {
            "in": "formData",
            "name": "phone",
            "description": "The phone number of the traveler. Only the numeric values in this field are used. ",
            "type": "integer",
            "required": true,
            "defaultValue": "123457890"
          },
          {
            "in": "formData",
            "name": "email",
            "description": "This passenger's email address. Required, although ignored for logged in users, as it will use their email on file instead.",
            "type": "string",
            "required": true,
            "defaultValue": "test@expedia.com"
          },
          {
            "in": "formData",
            "name": "password",
            "description": "The password provided by the expedia user. This would imply that a user needs to be created with the above email id and this password. To be done only if this is a guest request.",
            "type": "string"
          },
          {
            "in": "formData",
            "name": "expediaEmailOptIn",
            "description": "Whether to opt-in the user's email to travel deals",
            "type": "string"
          },
          {
            "in": "formData",
            "name": "firstName",
            "description": "The first name of the traveler",
            "type": "string",
            "required": true,
            "defaultValue": "Andrew"
          },
          {
            "in": "formData",
            "name": "middleName",
            "description": "The middle name of the traveler. ",
            "type": "string"
          },
          {
            "in": "formData",
            "name": "lastName",
            "description": "The last name of the traveler.",
            "type": "string",
            "required": true,
            "defaultValue": "Lappin"
          },
          {
            "in": "formData",
            "name": "expectedTotalFare",
            "description": "The expected total price of the trip, matching exactly whatever the user last saw. No leading zeros, no thousands separators, and 2 decimal places of precision. This is obtained from /m/api/hotel/trip/create.",
            "type": "string",
            "required": true
          },
          {
            "in": "formData",
            "name": "expectedFareCurrencyCode",
            "description": "Three letter 4217 ISO currency code of the expected credit card fee. This should be whatever was returned by the server. Conversions will not be done.This is obtained from /m/api/hotel/trip/create.",
            "type": "string",
            "required": true
          },
          {
            "in": "formData",
            "name": "expectedCardFee",
            "description": "The expected credit card fee, as returned by the createTrip call in the validFormsOfPayment object for whatever credit card the user is paying with. No leading zeros, no thousands separators, and 2 decimal places of precision.",
            "type": "string"
          },
          {
            "in": "formData",
            "name": "expectedCardFeeCurrencyCode",
            "description": "Three letter 4217 ISO currency code of the expected total price. This should be whatever was returned by the server. Conversions will not be done.",
            "type": "string"
          },
          {
            "in": "formData",
            "name": "doIThinkImSignedIn",
            "description": "As a client I am checking-out with the assumption that I am signed in",
            "type": "boolean"
          },
          {
            "in": "formData",
            "name": "tealeafTransactionId",
            "description": "The unique transaction ID used in TeaLeaf PSR tracking",
            "type": "string"
          },
          {
            "in": "formData",
            "name": "omniturePartnerId",
            "description": "Omniture partner identification string",
            "type": "string"
          },
          {
            "in": "formData",
            "name": "streetAddress",
            "description": "The street part of the credit card owner's billing address.",
            "type": "string",
            "defaultValue": "Test Street"
          },
          {
            "in": "formData",
            "name": "streetAddress2",
            "description": "Apartment or suite number of the traveler's billing address.",
            "type": "string"
          },
          {
            "in": "formData",
            "name": "city",
            "description": "The city of the traveler's billing address.",
            "type": "string",
            "defaultValue": "San Francisco"
          },
          {
            "in": "formData",
            "name": "state",
            "description": "The state (or province) of the traveler's billing address.",
            "type": "string",
            "defaultValue": "CA"
          },
          {
            "in": "formData",
            "name": "country",
            "description": "The 3 letter country code of the traveler's billing address.",
            "type": "string",
            "defaultValue": "USA"
          },
          {
            "in": "formData",
            "name": "postalCode",
            "description": "The postal code of the traveler's billing address. Required only postalCode only checkout.",
            "type": "string",
            "required": true,
            "defaultValue": "94111"
          },
          {
            "in": "formData",
            "name": "creditCardNumber",
            "description": "The credit card number used for this booking, if checking out with a new card. This field is required for guest checkout.",
            "type": "string",
            "required": true,
            "defaultValue": "4111111111111111"
          },
          {
            "in": "formData",
            "name": "expirationDateYear",
            "description": "The 4 digit expiration date year of the credit card used for this booking. This field is required for guest checkout.",
            "type": "integer",
            "required": true,
            "defaultValue": "2025"
          },
          {
            "in": "formData",
            "name": "expirationDateMonth",
            "description": "The expiration date month of the credit card used for this booking. This field is required guest for checkout.",
            "type": "integer",
            "required": true,
            "defaultValue": "12"
          },
          {
            "in": "formData",
            "name": "cvv",
            "description": "The CVV of the traveler's credit card used for this booking.",
            "type": "string",
            "required": true,
            "defaultValue": "111"
          },
          {
            "in": "formData",
            "name": "storedCreditCardId",
            "description": "The GUID for the stored credit card information to be used for payment. The retrieved credit card information should trump the other credit card parameter in this request.",
            "type": "string"
          },
          {
            "in": "formData",
            "name": "storeCreditCardInUserProfile",
            "description": "Indicates whether to save the credit card information as a stored credit card in the user profile. This is ignored if the user is not signed in.",
            "type": "boolean"
          },
          {
            "in": "formData",
            "name": "nameOnCard",
            "description": "The card holder's name",
            "type": "string",
            "required": true,
            "defaultValue": "Andrew Lappin"
          },
          {
            "in": "formData",
            "name": "prettyPrint",
            "description": "If true, return JSON with tabs, spaces and newlines to be human readable",
            "type": "boolean"
          },
          {
            "in": "formData",
            "name": "suppressFinalBooking",
            "description": "If true, do not actually charge for and book the trip, stop after creating the itinerary. Used for testing on the checkout call only. Checkout will return 00000 for the OMS order ID when this is true",
            "type": "boolean"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation",
            "schema": {
              "$ref": "apiCheckoutResponseHotelResponse"
            }
          }
        }
      }
    },
    "/m/api/hotel/trip/V2/checkout": {
      "post": {
        "tags": [
          "Hotels"
        ],
        "summary": "Hotel Checkout With JSON Request Body",
        "description": "Mobile API Hotel Checkout V2",
        "operationId": "checkoutV2",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "body",
            "name": "body",
            "description": "JSON body with all the fields required for a Hotel checkout",
            "type": "body",
            "required": "true",
            "schema": {
              "type": "string",
              "$ref": "hotelCheckoutV2"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "successful operation",
            "schema": {
              "$ref": "apiCheckoutResponseHotelResponse"
            }
          }
        }
      }
    },
    "/m/api/hotel/trip/checkoutfields": {
      "get": {
        "tags": [
          "Hotels"
        ],
        "summary": "Get Required Checkout Fields",
        "description": "Service that returns the fields that are required or optional for a given point of sale.",
        "operationId": "hotels-checkout-fields",
        "produces": [
          "application/json"
        ],
        "responses": {
          "200": {
            "description": "successful operation",
            "schema": {
              "$ref": "apiFieldsResponse"
            }
          }
        }
      }
    },
    "/m/api/hotel/trip/cancelEnquiry": {
      "get": {
        "tags": [
          "Hotels"
        ],
        "summary": "Cancel Enquiry",
        "description": "Cancel Enquiry for hotel, pass in itinerary id, email address of trip owner.",
        "operationId": "hotels-cancel-enquiry",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "query",
            "name": "itineraryId",
            "description": "Itinerary containing trip to cancel. It is obtained by calling /m/api/hotel/trip/checkout.",
            "type": "integer",
            "required": true
          },
          {
            "in": "query",
            "name": "emailAddress",
            "description": "Email address of the traveler.",
            "type": "string",
            "required": true,
            "defaultValue": "test@expedia.com"
          }
        ],
        "responses": {
          "200": {
            "description": "successful operation",
            "schema": {
              "$ref": "hotelCancelEnquiryResponse"
            }
          }
        }
      }
    },
    "/m/api/hotel/trip/V2/cancelEnquiry": {
      "get": {
        "tags": [
          "Hotels"
        ],
        "summary": "Cancel Enquiry",
        "description": "Cancel Enquiry for hotel, pass in itinerary id, email address of trip owner.",
        "operationId": "hotels-cancel-enquiry",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "query",
            "name": "orderLineGUIDs",
            "description": "Comma separated order line guids. If provided only details regarding the provided guids are returned.",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "itineraryId",
            "description": "Itinerary containing trip to cancel. It is obtained by calling /m/api/hotel/trip/checkout",
            "type": "integer",
            "required": true
          },
          {
            "in": "query",
            "name": "emailAddress",
            "description": "Email address of the traveler.",
            "type": "string",
            "required": true,
            "defaultValue": "test@expedia.com"
          }
        ],
        "responses": {
          "200": {
            "description": "successful operation",
            "schema": {
              "$ref": "hotelCancelEnquiryV2Response"
            }
          }
        }
      }
    },
    "/m/api/hotel/product": {
      "get": {
        "tags": [
          "Hotels"
        ],
        "summary": "Product",
        "description": "Hotel Product",
        "operationId": "hotels-product",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "query",
            "name": "sourceType",
            "description": "Source type for the request. mobileapp OR mobileweb. Leave blank for others.",
            "type": "string"
          },
          {
            "in": "query",
            "name": "productKey",
            "description": "The product key of the offer, obtained by calling /m/api/hotel/offers",
            "type": "string",
            "required": true
          },
          {
            "in": "query",
            "name": "roomOccupants[0].numberOfAdultGuests",
            "description": "Number of adults staying in this room (default: 1)",
            "type": "integer"
          },
          {
            "in": "query",
            "name": "roomOccupants[0].childGuestAge",
            "description": "represents the age of a single child guest staying in this room. You should specify the age of all children staying in this room. Valid values are 0-17 (0 for an infant under the age of one year). For a single room with 1 adult and 3 child guests the ages of 1, 3 and 8 years",
            "type": "integer",
            "items": {
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "opaqueProduct",
            "description": "Set to true if the product key is an opaque hotel product key.",
            "type": "boolean"
          }
        ],
        "responses": {
          "200-OK": {
            "description": "successful operation",
            "schema": {
              "$ref": "jsonGetProductResponse"
            }
          },
          "200-Opaque": {
            "description": "successful operation",
            "schema": {
              "$ref": "jsonOpaqueGetProductResponse"
            }
          }
        }
      }
    },
    "/m/api/hotel/info": {
      "get": {
        "tags": [
          "Hotels"
        ],
        "summary": "Info",
        "description": "Hotel Information",
        "operationId": "hotels-info",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "query",
            "name": "hotelId",
            "description": "Hotel Id usually 5 digits. It is obtained by calling /m/api/hotel/search",
            "type": "string",
            "required": true,
            "defaultValue": "15490"
          }
        ],
        "responses": {
          "200": {
            "description": "successful operation",
            "schema": {
              "$ref": "jsonHotelInformationResponse"
            }
          }
        }
      }
    },
    "/m/api/hotel/trip/cancel": {
      "post": {
        "tags": [
          "Hotels"
        ],
        "summary": "Cancel Trip",
        "description": "Hotel Trip Cancellation",
        "operationId": "hotels-trip-cancel",
        "consumes": [
          "application/x-www-form-urlencoded"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "formData",
            "name": "itineraryId",
            "description": "Itinerary id of the trip to cancel. It is obtained by calling /m/api/hotel/trip/checkout",
            "type": "integer",
            "required": true
          },
          {
            "in": "formData",
            "name": "emailAddress",
            "description": "Email address of the traveler.",
            "type": "string",
            "required": true,
            "defaultValue": "test@expedia.com"
          },
          {
            "in": "formData",
            "name": "sendConfirmationEmail",
            "description": "Email the traveler after cancellation or not.",
            "type": "boolean",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "successful operation",
            "schema": {
              "$ref": "hotelConfirmCancelResponse"
            }
          }
        }
      }
    },
    "/m/api/hotel/rooms/cancel": {
      "post": {
        "tags": [
          "Hotels"
        ],
        "summary": "Cancel Room",
        "description": "Hotel Room Cancellation",
        "operationId": "hotels-room-cancel",
        "consumes": [
          "application/x-www-form-urlencoded"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "formData",
            "name": "orderLineGUIDs",
            "description": "The list of order line guids. Each corresponding to a room number",
            "type": "array",
            "items": {
              "type": "string"
            },
            "required": true
          },
          {
            "in": "formData",
            "name": "orderNumber",
            "description": "The order number ( returned by OMS ) associated with the trip",
            "type": "string",
            "required": true
          },
          {
            "in": "formData",
            "name": "tripId",
            "description": "The trip ID ( returned while checkout ) associated with the trip. [ Note: Confirmation mail is sent only if this field is provided with valid tripId. ]",
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "successful operation",
            "schema": {
              "$ref": "jsonCancellationResponse"
            }
          }
        }
      }
    },
    "/m/api/trip/calculatePoints": {
      "post": {
        "tags": [
          "Hotels"
        ],
        "summary": "Points Conversion",
        "description": "Converts from a given currency amount to the equivalent in rewards points.\n[Note: Works only if the User is signed-in and is the owner of the trip.]",
        "operationId": "hotels-trip-calculate",
        "consumes": [
          "application/x-www-form-urlencoded"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "formData",
            "name": "tripId",
            "description": "The trip ID of an existing trip, from /api/packages/createTrip.",
            "type": "string",
            "required": true
          },
          {
            "in": "formData",
            "name": "programName",
            "description": "The Rewards program name.",
            "type": "string",
            "required": true,
            "defaultValue": "ExpediaRewards"
          },
          {
            "in": "formData",
            "name": "amount",
            "description": "The amount the user would want to convert to points. No leading zeros, no thousands separators, and 2 decimal places of precision.",
            "type": "integer",
            "required": true
          },
          {
            "in": "formData",
            "name": "rateId",
            "description": "The rate id to use for this conversion.",
            "type": "string",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "successful operation",
            "schema": {
              "$ref": "calculatePointsResponse"
            }
          }
        }
      }
    },
    "/getpackages/v1": {
      "get": {
        "tags": [
          "Packages"
        ],
        "summary": "Get Packages",
        "description": "Gets packages and supports changed flights and hotels for flexible shopping.",
        "operationId": "get-packages",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "query",
            "name": "packageType",
            "description": "Supports different views of F+H package.",
            "required": true,
            "defaultValue": "fh",
            "type": "string"
          },
          {
            "in": "query",
            "name": "origin",
            "description": "The user's search string.",
            "required": true,
            "defaultValue": "Seattle",
            "type": "string"
          },
          {
            "in": "query",
            "name": "destination",
            "description": "The users's search string",
            "required": true,
            "defaultValue": "Las",
            "type": "string"
          },
          {
            "in": "query",
            "name": "fromDate",
            "description": "The date the customer wants to leave the origin. If not specified, we will make up some dates to support the \"dateless\" scenario. If specified, then toDate must also be specified.",
            "required": true,
            "defaultValue": "2015-12-10",
            "type": "string"
          },
          {
            "in": "query",
            "name": "toDate",
            "description": "The date the customer wants to leave the destination. Specified in either ISO format of the locale format for the POS.",
            "required": true,
            "defaultValue": "2015-12-15",
            "type": "string"
          },
          {
            "in": "query",
            "name": "numberOfRooms",
            "defaultValue": "1",
            "description": "How many hotel rooms you want. If not specified, will default to 1 room with 2 adults. Required if you want anything else.",
            "type": "string"
          },
          {
            "in": "query",
            "name": "adultsPerRoom[1]",
            "defaultValue": "2",
            "description": "How many adults will stay in the given room. Room numbers are 1-based. Specify separately for every room requested. Each room requires at least 1 adult or senior. Max total travelers across all rooms: 6",
            "type": "string"
          },
          {
            "in": "query",
            "name": "originId",
            "defaultValue": "178307",
            "required": true,
            "description": "Region ID of the origin or destination. For the destination, it's used to decide which hotels to show.",
            "type": "string"
          },
          {
            "in": "query",
            "name": "destinationId",
            "defaultValue": "178276",
            "required": true,
            "description": "Region ID of the origin or destination. For the destination, it's used to decide which hotels to show.",
            "type": "string"
          },
          {
            "in": "query",
            "name": "ftla",
            "description": "TLA (airport code or metrocode) for the origin (ftla) or destination (ttla). Used to disambiguate which airport to use for the region IDs provided above. If the provided TLAs are not returned by ESS for the region IDs above, they are ignored.",
            "required": true,
            "defaultValue": "SEA",
            "type": "string"
          },
          {
            "in": "query",
            "name": "ttla",
            "description": "TLA (airport code or metrocode) for the origin (ftla) or destination (ttla). Used to disambiguate which airport to use for the region IDs provided above. If the provided TLAs are not returned by ESS for the region IDs above, they are ignored.",
            "required": true,
            "defaultValue": "LAS",
            "type": "string"
          },
          {
            "in": "query",
            "name": "packagePIID",
            "description": "Taken from a previous package response.",
            "type": "string"
          },
          {
            "in": "query",
            "name": "pageType",
            "description": "Only for change hotel",
            "type": "string"
          },
          {
            "in": "query",
            "name": "searchProduct",
            "description": "i.e. flight",
            "type": "string"
          },
          {
            "in": "query",
            "name": "packageTripType",
            "description": "i.e. 0: Complete Round Trip 1: Best Trip 2: BYOT",
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "successful operation"
          }
        }
      }
    },
    "/api/packages/hotelOffers": {
      "get": {
        "tags": [
          "Packages"
        ],
        "summary": "Get Package Offers",
        "description": "Mobile API Packages",
        "operationId": "packages-offers",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "query",
            "name": "productKey",
            "description": "The product ID (piid) of the package you would like to get hotel offers for.",
            "type": "string",
            "required": true
          },
          {
            "in": "query",
            "name": "checkInDate",
            "description": "Date the traveler will be checking in to their hotel",
            "type": "string",
            "required": true,
            "defaultValue": "2015-12-12"
          },
          {
            "in": "query",
            "name": "checkOutDate",
            "description": "Date the traveler will be checking out of their hotel",
            "type": "string",
            "required": true,
            "defaultValue": "2015-12-14"
          },
          {
            "in": "query",
            "name": "numberOfAdultTravelers",
            "description": "Number of Adult Travelers (Default: 1)",
            "type": "string"
          },
          {
            "in": "query",
            "name": "childTravelerAge",
            "description": "childTravelerAge represents the age of a single child traveler. You are required to specify the age of all child travelers. That means you must specify this parameter for each child that will be traveling. Valid values are 0-17 (0 for an infant under the age of one year).",
            "type": "string"
          },
          {
            "in": "query",
            "name": "infantSeatingInLap",
            "description": "Set to true if infant(s) are without a reserved seat (in an adult's lap).(Default: false - Infant(s) in a reserved seat)",
            "type": "boolean"
          },
          {
            "in": "query",
            "name": "roomTypeCode",
            "description": "Room Type Code of the selected hotel offer.",
            "type": "string"
          },
          {
            "in": "query",
            "name": "ratePlanCode",
            "description": "Rate Plan Code of the selected hotel offer.",
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "successful operation",
            "schema": {
              "$ref": "packageHotelOfferResponse"
            }
          }
        }
      }
    },
    "/api/packages/createTrip": {
      "post": {
        "tags": [
          "Packages"
        ],
        "summary": "Create A Trip",
        "description": "Mobile API Packages Create Trip operation",
        "operationId": "packages-create-trip",
        "consumes": [
          "application/x-www-form-urlencoded"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "formData",
            "name": "productKey",
            "description": "The product ID (piid) of the package you would like to get hotel offers for. It is obtained by calling /api/packages/hotelOffers",
            "type": "string",
            "required": true
          },
          {
            "in": "formData",
            "name": "destinationId",
            "description": "stubbed",
            "type": "string",
            "required": true
          },
          {
            "in": "formData",
            "name": "tripName",
            "description": "stubbed",
            "type": "string"
          },
          {
            "in": "formData",
            "name": "roomOccupants[0].seniorCount",
            "description": "Number of seniors staying in this room (default: 0)",
            "type": "integer"
          },
          {
            "in": "formData",
            "name": "roomOccupants[0].numberOfAdultGuests",
            "description": "Number of adults staying in this room (default: 1)",
            "type": "integer",
            "required": true
          },
          {
            "in": "formData",
            "name": "roomOccupants[0].infantsInSeat",
            "description": "Any infants in seat.",
            "type": "boolean"
          },
          {
            "in": "formData",
            "name": "roomOccupants[0].childGuestAge",
            "description": "represents the age of a single child guest staying in this room. You should specify the age of all children staying in this room. Valid values are 0-17 (0 for an infant under the age of one year). For a single room with 1 adult and 3 child guests the ages of 1, 3 and 8 years",
            "type": "integer",
            "items": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "successful operation",
            "schema": {
              "$ref": "packageCreateTripResponse"
            }
          }
        }
      }
    },
    "/api/packages/checkout": {
      "post": {
        "tags": [
          "Packages"
        ],
        "summary": "Checkout",
        "description": "Mobile API Packages Checkout",
        "operationId": "packages-checkout",
        "consumes": [
          "application/x-www-form-urlencoded"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "formData",
            "name": "hotel[0].primaryContactFullName",
            "description": "Full name of the person who will be checking in. This person must be 21 or older.",
            "type": "string"
          },
          {
            "in": "formData",
            "name": "hotel[0].bedTypeId",
            "description": "Indicates the selected bed Type. Defaults to the first available bed type of the hotel offer.",
            "type": "string"
          },
          {
            "in": "formData",
            "name": "flight[0].mainFlightPassenger[0].phoneCountryCode",
            "description": "Country code of the phone of the main flight passenger",
            "type": "string"
          },
          {
            "in": "formData",
            "name": "flight[0].mainFlightPassenger[0].phone",
            "description": "Phone number of the main flight passenger",
            "type": "string"
          },
          {
            "in": "formData",
            "name": "flight[0].mainFlightPassenger[0].email",
            "description": "Email address of the main flight passenger",
            "type": "string"
          },
          {
            "in": "formData",
            "name": "flight[0].mainFlightPassenger[0].password",
            "description": "Password of the main flight passenger",
            "type": "string"
          },
          {
            "in": "formData",
            "name": "flight[0].mainFlightPassenger[0].expediaEmailOptIn",
            "description": "If the main flight passenger wishes to opt out for Expedia emails or not",
            "type": "boolean"
          },
          {
            "in": "formData",
            "name": "flight[0].associatedFlightPassengers[0].title",
            "description": "Title of the associated flight passenger fields.",
            "type": "string"
          },
          {
            "in": "formData",
            "name": "flight[0].associatedFlightPassengers[0].gender",
            "description": "Gender of the associated flight passenger fields.",
            "type": "string"
          },
          {
            "in": "formData",
            "name": "flight[0].associatedFlightPassengers[0].birthDate",
            "description": "Birth date of the associated flight passenger fields.",
            "type": "string"
          },
          {
            "in": "formData",
            "name": "flight[0].associatedFlightPassengers[0].seatPreference",
            "description": "Seat preference of the associated flight passenger fields.",
            "type": "string"
          },
          {
            "in": "formData",
            "name": "flight[0].associatedFlightPassengers[0].passengerCategory",
            "description": ":Passenger category of the associated flight passenger fields.",
            "type": "string"
          },
          {
            "in": "formData",
            "name": "flight[0].associatedFlightPassengers[0].passportCountryCode",
            "description": "Passport country code of the associated flight passenger fields.",
            "type": "string"
          },
          {
            "in": "formData",
            "name": "flight[0].associatedFlightPassengers[0].TSARedressNumber",
            "description": "TSA redress number of the associated flight passenger fields.",
            "type": "string"
          },
          {
            "in": "formData",
            "name": "flight[0].associatedFlightPassengers[0].knownTravelerNumber",
            "description": "knownTravelerNumber(PreCheckNumber) of the associated flight passenger fields.",
            "type": "integer"
          },
          {
            "in": "formData",
            "name": "flight[0].associatedFlightPassengers[0].specialAssistanceOption",
            "description": "Special assistance option for the associated flight passenger fields.",
            "type": "string"
          },
          {
            "in": "formData",
            "name": "tripId",
            "description": "The trip ID of an existing trip, from /api/packages/createTrip.",
            "type": "string",
            "required": true
          },
          {
            "in": "formData",
            "name": "expectedTotalFare",
            "description": "The expected total price of the trip, matching exactly whatever the user last saw. No leading zeros, no thousands separators, and 2 decimal places of precision. This is obtained from /api/packages/createTrip.",
            "type": "string",
            "required": true
          },
          {
            "in": "formData",
            "name": "expectedFareCurrencyCode",
            "description": "Three letter 4217 ISO currency code of the expected credit card fee. This should be whatever was returned by the server. Conversions will not be done. This is obtained from /api/packages/createTrip.",
            "type": "string",
            "required": true
          },
          {
            "in": "formData",
            "name": "expectedCardFee",
            "description": "The expected credit card fee, as returned by the createTrip call in the validFormsOfPayment object for whatever credit card the user is paying with. No leading zeros, no thousands separators, and 2 decimal places of precision.",
            "type": "string"
          },
          {
            "in": "formData",
            "name": "expectedCardFeeCurrencyCode",
            "description": "Three letter 4217 ISO currency code of the expected total price. This should be whatever was returned by the server. Conversions will not be done.",
            "type": "string"
          },
          {
            "in": "formData",
            "name": "sendEmailConfirmation",
            "description": "Used to check if confirmation email needs to be sent or not.",
            "type": "boolean"
          },
          {
            "in": "formData",
            "name": "doIThinkImSignedIn",
            "description": "As a client I am checking-out with the assumption that I am signed in",
            "type": "boolean"
          },
          {
            "in": "formData",
            "name": "tealeafTransactionId",
            "description": "The unique transaction ID used in TeaLeaf PSR tracking",
            "type": "string"
          },
          {
            "in": "formData",
            "name": "omniturePartnerId",
            "description": "Omniture partner identification string",
            "type": "string"
          },
          {
            "in": "formData",
            "name": "nameOnCard",
            "description": "The card holder's name",
            "type": "string",
            "defaultValue": "Andrew Lappin"
          },
          {
            "in": "formData",
            "name": "streetAddress",
            "description": "The street part of the credit card owner's billing address.",
            "type": "string"
          },
          {
            "in": "formData",
            "name": "streetAddress2",
            "description": "Apartment or suite number of the traveler's billing address.",
            "type": "string"
          },
          {
            "in": "formData",
            "name": "city",
            "description": "The city of the traveler's billing address.",
            "type": "string"
          },
          {
            "in": "formData",
            "name": "state",
            "description": "The state (or province) of the traveler's billing address.",
            "type": "string"
          },
          {
            "in": "formData",
            "name": "country",
            "description": "The 3 letter country code of the traveler's billing address.",
            "type": "string"
          },
          {
            "in": "formData",
            "name": "postalCode",
            "description": "The postal code of the traveler's billing address. Required only postalCode only checkout.",
            "type": "string",
            "defaultValue": "94111"
          },
          {
            "in": "formData",
            "name": "creditCardNumber",
            "description": "The credit card number used for this booking, if checking out with a new card. This field is required for guest checkout.",
            "type": "string",
            "defaultValue": "4111111111111111"
          },
          {
            "in": "formData",
            "name": "expirationDateYear",
            "description": "The 4 digit expiration date year of the credit card used for this booking. This field is required for guest checkout.",
            "type": "integer",
            "defaultValue": "2025"
          },
          {
            "in": "formData",
            "name": "expirationDateMonth",
            "description": "The expiration date month of the credit card used for this booking. This field is required guest for checkout.",
            "type": "integer",
            "defaultValue": "12"
          },
          {
            "in": "formData",
            "name": "cvv",
            "description": "The CVV of the traveler's credit card used for this booking.",
            "type": "string",
            "required": true,
            "defaultValue": "111"
          },
          {
            "in": "formData",
            "name": "storedCreditCardId",
            "description": "The GUID for the stored credit card information to be used for payment. The retrieved credit card information should trump the other credit card parameter in this request.",
            "type": "string"
          },
          {
            "in": "formData",
            "name": "storeCreditCardInUserProfile",
            "description": "Indicates whether to save the credit card information as a stored credit card in the user profile. This is ignored if the user is not signed in.",
            "type": "boolean"
          }
        ],
        "responses": {
          "200-Api": {
            "description": "successful operation",
            "schema": {
              "$ref": "apiCheckoutResponsePackageResponse"
            }
          },
          "200-Package": {
            "description": "successful operation",
            "schema": {
              "$ref": "packageCreateTripResponse"
            }
          },
          "200-Error": {
            "description": "successful operation",
            "schema": {
              "$ref": "apiErrorJsonResponse"
            }
          }
        }
      }
    },
    "/api/m/trip/coupon": {
      "post": {
        "tags": [
          "Packages",
          "Hotels",
          "Flights"
        ],
        "summary": "Apply Coupon",
        "description": "Mobile API Packages Apply Coupon",
        "operationId": "packages-apply-coupon",
        "consumes": [
          "application/x-www-form-urlencoded"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "formData",
            "name": "tripId",
            "description": "The tripId we are going to apply the coupon to.",
            "type": "string"
          },
          {
            "in": "formData",
            "name": "coupon.name",
            "description": "Coupon Name",
            "type": "string"
          },
          {
            "in": "formData",
            "name": "coupon.code",
            "description": "Coupon Code",
            "type": "string"
          }
        ],
        "responses": {
          "200-OK": {
            "description": "successful operation",
            "schema": {
              "$ref": "jsonCreateTripResponse"
            }
          },
          "200-Api": {
            "description": "successful operation",
            "schema": {
              "$ref": "apiCreateTripResponse"
            }
          },
          "200-Package": {
            "description": "successful operation",
            "schema": {
              "$ref": "packageCreateTripResponse"
            }
          }
        }
      }
    },
    "/api/m/trip/remove/coupon": {
      "post": {
        "tags": [
          "Packages",
          "Hotels",
          "Flights"
        ],
        "summary": "Remove Coupon",
        "description": "Mobile API Packages Remove Coupon",
        "operationId": "packages-remove-coupon",
        "consumes": [
          "application/x-www-form-urlencoded"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "formData",
            "name": "tripId",
            "description": "The tripId we are going to apply the coupon to.",
            "type": "string"
          }
        ],
        "responses": {
          "200-OK": {
            "description": "successful operation",
            "schema": {
              "$ref": "jsonCreateTripResponse"
            }
          },
          "200-Api": {
            "description": "successful operation",
            "schema": {
              "$ref": "apiCreateTripResponse"
            }
          },
          "200-Package": {
            "description": "successful operation",
            "schema": {
              "$ref": "packageCreateTripResponse"
            }
          }
        }
      }
    },
    "/api/trips": {
      "get": {
        "tags": [
          "Trips"
        ],
        "summary": "Get Trips",
        "description": "Mobile API Trips",
        "operationId": "trips-search",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "query",
            "name": "filterBookingStatus",
            "description": "An optional parameter to filter by booking status. Note: You can specify this parameter more than once.",
            "type": "string",
            "enum": [
              "SAVED",
              "PENDING",
              "BOOKED",
              "CANCELLED"
            ]
          },
          {
            "in": "query",
            "name": "filterTimePeriod",
            "description": "An optional parameter to filter by time period. Note: You can specify this parameter more than once.",
            "type": "string",
            "enum": [
              "UPCOMING",
              "INPROGRESS",
              "COMPLETED",
              "RECENTLY_COMPLETED"
            ]
          },
          {
            "in": "query",
            "name": "filterLineOfBusiness",
            "description": "An optional parameters to filter by line of business. Note: You can specify this parameter more than once.",
            "type": "string",
            "enum": [
              "AIR",
              "HOTEL",
              "CAR",
              "PACKAGE",
              "TRAIN",
              "ACTIVITY",
              "INSURANCE",
              "CRUISE"
            ]
          },
          {
            "in": "query",
            "name": "sort",
            "description": "An optional parameter to sort by date.",
            "type": "string",
            "enum": [
              "SORT_STARTDATE_ASCENDING",
              "SORT_STARTDATE_DESCENDING",
              "SORT_ENDDATE_ASCENDING",
              "SORT_ENDDATE_DESCENDING"
            ]
          },
          {
            "in": "query",
            "name": "getCachedDetails",
            "description": "Optionally get full details for the first N trips.",
            "type": "integer",
            "minimum": 0,
            "maximum": 10
          }
        ],
        "responses": {
          "200": {
            "description": "successful operation",
            "schema": {
              "$ref": "tripResponse"
            }
          }
        }
      }
    },
    "/api/trips/{tripId}": {
      "get": {
        "tags": [
          "Trips"
        ],
        "summary": "Trips by tripId",
        "description": "Mobile API Trips",
        "operationId": "trips-search-id",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "tripId",
            "description": "The trip ID",
            "type": "string",
            "required": true
          },
          {
            "in": "query",
            "name": "email",
            "description": "To pull a guest itinerary specify the email address associated with the trip.",
            "type": "string"
          },
          {
            "in": "query",
            "name": "decorator",
            "description": "Nullifies complex elements of a Trip with exception of Price related elements and their parents. This is an expensive approach because data is stripped after it has been retrieved or calculated.",
            "type": "string"
          },
          {
            "in": "query",
            "name": "useCache",
            "description": "An optional flag to make a cached read trip call.",
            "type": "boolean"
          },
          {
            "in": "query",
            "name": "currencyCode",
            "description": "Currency parameter",
            "type": "string"
          },
          {
            "in": "query",
            "name": "expectedAmount",
            "description": "Expected Amount during car cancellation.",
            "type": "string"
          },
          {
            "in": "query",
            "name": "decimalPlaceCount",
            "description": "Decimal place count for the expected amount.",
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "successful operation",
            "schema": {
              "$ref": "tripResponse"
            }
          }
        }
      }
    },
    "/api/trips/{tripId}/updateTripNameDescription": {
      "post": {
        "tags": [
          "Trips"
        ],
        "summary": "Update Trip Name and Description",
        "description": "Mobile API Trips update trip name and description operation",
        "operationId": "trips-update-trip",
        "consumes": [
          "application/x-www-form-urlencoded"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "tripId",
            "description": "Trip ID",
            "type": "string",
            "required": true
          },
          {
            "in": "formData",
            "name": "tripname",
            "description": "The name of the trip",
            "type": "string"
          },
          {
            "in": "formData",
            "name": "tripnote",
            "description": "The comments of the trip",
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "successful operation",
            "schema": {
              "$ref": "tripTitleDescriptionUpdateResponse"
            }
          }
        }
      }
    },
    "/api/users/{userId}/trips/{tripId}": {
      "get": {
        "tags": [
          "Trips"
        ],
        "summary": "(Internal Only)",
        "description": "(Internal Only) Retrieve trip (tripId) for given customer (userId)",
        "operationId": "trips-user-trips",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "tripId",
            "description": "Trip ID",
            "type": "string",
            "required": true
          },
          {
            "in": "path",
            "name": "userId",
            "description": "User ID",
            "type": "string",
            "required": true
          },
          {
            "in": "query",
            "name": "email",
            "description": "To pull a guest itinerary specify the email address associated with the trip.",
            "type": "string"
          },
          {
            "in": "query",
            "name": "decorator",
            "description": "Nullifies complex elements of a Trip with exception of Price related elements and their parents. This is an expensive approach because data is stripped after it has been retrieved or calculated",
            "type": "string"
          },
          {
            "in": "query",
            "name": "useCache",
            "description": "An optional flag to make a cached read trip call.",
            "type": "boolean"
          },
          {
            "in": "query",
            "name": "currencyCode",
            "description": "currency paramater",
            "type": "string"
          },
          {
            "in": "query",
            "name": "expectedAmount",
            "description": "Expected Amount during car cancellation",
            "type": "string"
          },
          {
            "in": "query",
            "name": "decimalPlaceCount",
            "description": "Decimal place count for the expected amount",
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "successful operation",
            "schema": {
              "$ref": "tripResponse"
            }
          }
        }
      }
    },
    "/api/users/{userId}/trips": {
      "get": {
        "tags": [
          "Trips"
        ],
        "summary": "(Internal Only)",
        "description": "(Internal Only) Returns array of trips for passed userId",
        "operationId": "trips-by-user-id",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "userId",
            "description": "User ID",
            "type": "string",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "successful operation",
            "schema": {
              "$ref": "tripResponse"
            }
          }
        }
      }
    },
    "/m/api/rails/trip/create": {
      "post": {
        "tags": [
          "Rails"
        ],
        "summary": "Create A Trip",
        "description": "Mobile API Rails Create Trip Operation",
        "operationId": "rails-create-trip",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "query",
            "name": "offerToken",
            "description": "Offer Token",
            "type": "string",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "successful operation",
            "schema": {
              "$ref": "railsTripResponse"
            }
          }
        }
      }
    },
    "/m/api/rails/trip/checkout": {
      "post": {
        "tags": [
          "Rails"
        ],
        "summary": "Rails Checkout With JSON Request Body",
        "description": "Mobile API Rails Checkout",
        "operationId": "rails-cko",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "body",
            "name": "body",
            "description": "JSON body with all the fields required for a Rails checkout",
            "type": "body",
            "required": "true",
            "schema": {
              "type": "string",
              "$ref": "railsCheckout"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "successful operation",
            "schema": {
              "$ref": "apiCheckoutResponseHotelResponse"
            }
          }
        }
      }
    },
    "/api/user/sign-in": {
      "post": {
        "tags": [
          "User"
        ],
        "summary": "User Sign-In",
        "description": "Mobile API User Sign-In",
        "operationId": "signin-user",
        "consumes": [
          "application/x-www-form-urlencoded"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "formData",
            "name": "email",
            "description": "Email Address. Used at the time of User creation in /api/user/create",
            "required": true,
            "type": "string"
          },
          {
            "in": "formData",
            "name": "password",
            "description": "User Password. Used at the time of User creation in /api/user/create",
            "required": true,
            "type": "string"
          },
          {
            "in": "formData",
            "name": "staySignedIn",
            "description": "Sign Me In checkbox",
            "type": "boolean"
          },
          {
            "in": "formData",
            "name": "profileOnly",
            "description": "If true, don't provide username/password fields and just re-retrieve the currently signed on user's profile. If this is false or not provided, force re-authentication of the user.",
            "type": "boolean"
          },
          {
            "in": "formData",
            "name": "includeFullPaymentProfile",
            "description": "",
            "type": "boolean"
          },
          {
            "in": "formData",
            "name": "itinNumber",
            "description": "The Itinerary Number can be used instead of a password to authenticate the user.",
            "type": "string"
          },
          {
            "in": "formData",
            "name": "guestLoginWithItin",
            "description": "When logging in with an Itin Number and Email set this field to True. Default value is false.",
            "type": "boolean"
          },
          {
            "in": "formData",
            "name": "profileTypes",
            "description": "This is a comma-separated list of profile types to retrieve when the login is processed. E.g., profileType=HOTEL,FLIGHT. Options are currently HOTEL, FLIGHT, or NONE. If NONE is the type, it should be the only one in the list.",
            "type": "string"
          },
          {
            "in": "formData",
            "name": "retrieveCoupons",
            "description": "Whether to include user coupons in the response.",
            "type": "boolean"
          },
          {
            "in": "formData",
            "name": "firstTimeSigin",
            "description": "Boolean to indicate if this is a first time sign-in.",
            "type": "boolean"
          }
        ],
        "responses": {
          "200": {
            "description": "successful operation",
            "schema": {
              "$ref": "#/definitions/signInResponse"
            }
          }
        }
      }
    },
    "/api/user/profile": {
      "get": {
        "tags": [
          "User"
        ],
        "summary": "Profile",
        "description": "Mobile API User Profile",
        "operationId": "profile-user",
        "consumes": [
          "application/x-www-form-urlencoded"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "query",
            "name": "tuid",
            "description": "The tuid of the user/account whose profile you would like.",
            "required": true,
            "type": "integer"
          },
          {
            "in": "query",
            "name": "profileTypes",
            "description": "This is a comma-separated list of profile types to retrieve when the login is processed. E.g., profileType=HOTEL,FLIGHT. Options are currently HOTEL or FLIGHT.",
            "required": true,
            "type": "string",
            "defaultValue": "HOTEL,FLIGHT"
          },
          {
            "in": "query",
            "name": "retrieveCoupons",
            "description": "Whether to include user coupons in the response.",
            "type": "boolean"
          }
        ],
        "responses": {
          "200": {
            "description": "successful operation",
            "schema": {
              "$ref": "#/definitions/signInResponse"
            }
          }
        }
      }
    },
    "/api/user/create": {
      "post": {
        "tags": [
          "User"
        ],
        "summary": "Create User",
        "description": "Mobile API User Create",
        "operationId": "create-user",
        "consumes": [
          "application/x-www-form-urlencoded"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "formData",
            "name": "email",
            "description": "Users email address",
            "required": true,
            "type": "string"
          },
          {
            "in": "formData",
            "name": "password",
            "description": "Users password",
            "required": true,
            "type": "string"
          },
          {
            "in": "formData",
            "name": "firstName",
            "description": "Users first name",
            "type": "string"
          },
          {
            "in": "formData",
            "name": "middleName",
            "description": "Users middle name",
            "type": "string"
          },
          {
            "in": "formData",
            "name": "lastName",
            "description": "Users last name",
            "type": "string"
          },
          {
            "in": "formData",
            "name": "expediaEmailOptIn",
            "description": "Whether to opt-in the user's email to travel deals",
            "type": "boolean",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "successful operation",
            "schema": {
              "$ref": "#/definitions/createUserResponse"
            }
          }
        }
      }
    },
    "/api/user/update-traveler": {
      "post": {
        "tags": [
          "User"
        ],
        "summary": "Update",
        "description": "Mobile API User Update Traveler",
        "operationId": "update-traveler",
        "consumes": [
          "application/x-www-form-urlencoded"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "formData",
            "name": "title",
            "description": "Title of passenger",
            "type": "string"
          },
          {
            "in": "formData",
            "name": "firstName",
            "description": "The first name of the traveler. 2 character min.",
            "type": "string"
          },
          {
            "in": "formData",
            "name": "middleName",
            "description": "The middle name of the traveler.",
            "type": "string"
          },
          {
            "in": "formData",
            "name": "lastName",
            "description": "The last name of the traveler.",
            "type": "string"
          },
          {
            "in": "formData",
            "name": "phoneCountryCode",
            "description": "The country code of the phone number of the traveler. Only the numeric values in this field are used. E.g., +44 is treated internally as 44.",
            "type": "integer"
          },
          {
            "in": "formData",
            "name": "phone",
            "description": "The phone number of the traveler. Only the numeric values in this field are used. E.g., 555-1234 is treated internally as 5551234.",
            "type": "integer"
          },
          {
            "in": "formData",
            "name": "email",
            "description": "This passenger's email address. Required, although ignored for logged in users, as it will use their email on file instead.",
            "type": "string",
            "required": true
          },
          {
            "in": "formData",
            "name": "gender",
            "description": "TSA required field, MALE or FEMALE.",
            "type": "string",
            "enum": [
              "MALE",
              "FEMALE"
            ]
          },
          {
            "in": "formData",
            "name": "birthDate",
            "description": "TSA required field; passenger's birth date.",
            "type": "date"
          },
          {
            "in": "formData",
            "name": "seatPreference",
            "description": "Passenger's seat preference. Options are WINDOW, AISLE, or UNASSIGNED (default)",
            "type": "string",
            "enum": [
              "UNASSIGNED",
              "AISLE",
              "WINDOW"
            ]
          },
          {
            "in": "formData",
            "name": "passengerCategory",
            "description": "The passenger's category. (Default ADULT)",
            "type": "string",
            "enum": [
              "ADULT",
              "SENIOR",
              "CHILD",
              "ADULT_CHILD",
              "INFANT_IN_LAP",
              "INFANT_IN_SEAT"
            ]
          },
          {
            "in": "formData",
            "name": "passportCountryCode",
            "description": "Passport country, UPPERCASE three letter country code. Only required for international travel.",
            "type": "string"
          },
          {
            "in": "formData",
            "name": "TSARedressNumber",
            "description": "Passenger's TSA redress number, which is, in theory a 7 digit number.",
            "type": "string"
          },
          {
            "in": "formData",
            "name": "knownTravelerNumber",
            "description": "Passenger's knownTravelerNumber(PreCheckNumber), a 9 digit number.",
            "type": "integer"
          },
          {
            "in": "formData",
            "name": "specialAssistanceOption",
            "description": "Special assistance choice. This is one value, the same string returned from the profile call. Defaults to NONE if not provided.",
            "type": "string",
            "enum": [
              "NONE",
              "BLIND_WITH_SEEING_EYE_DOG",
              "DEAF_WITH_HEARING_DOG",
              "WHEELCHAIR_CAN_CLIMB_STAIRS",
              "WHEELCHAIR_CANNOT_CLIMB_STAIRS",
              "WHEELCHAIR_IMMOBILE",
              "BLINDWITHSEEINGEYEDOG",
              "DEAFWITHHEARINGDOG",
              "WHEELCHAIRCANCLIMBSTAIRS",
              "WHEELCHAIRCANNOTCLIMBSTAIRS",
              "WHEELCHAIRIMMOBILE"
            ]
          },
          {
            "in": "formData",
            "name": "password",
            "description": "The password provided by the Expedia user. This would imply that a user needs to be created with the above email id and this password. To be done only if this is a guest request.",
            "type": "string"
          },
          {
            "in": "formData",
            "name": "expediaEmailOptIn",
            "description": "Whether to opt-in the user's email to travel deals.",
            "type": "boolean"
          }
        ],
        "responses": {
          "200": {
            "description": "successful operation",
            "schema": {
              "$ref": "#/definitions/updateTravelerResponse"
            }
          }
        }
      }
    },
    "/api/user/associateUserToTrip": {
      "post": {
        "tags": [
          "User"
        ],
        "summary": "Associate User To Trip",
        "description": "Mobile API User Associate To Trip",
        "operationId": "user-associate-to-trip",
        "consumes": [
          "application/x-www-form-urlencoded"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "formData",
            "name": "foo",
            "description": "stubbed",
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "successful operation",
            "schema": {
              "$ref": "#/definitions/associateUserToTripResponse"
            }
          }
        }
      }
    },
    "/m/api/cars/search/airport": {
      "get": {
        "tags": [
          "Cars"
        ],
        "summary": "Search",
        "description": "Mobile API Cars",
        "operationId": "cars-search",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "query",
            "name": "airportCode",
            "description": "3 letter airport code where you will be picking up and dropping off your rental car.",
            "type": "string",
            "required": true,
            "defaultValue": "SFO"
          },
          {
            "in": "query",
            "name": "pickupTime",
            "description": "When you will pick up the car. This is a timezone naive local datetime in ISO 8601 combined date and time format. ",
            "type": "string",
            "required": true,
            "defaultValue": "2015-12-22T12:30:00"
          },
          {
            "in": "query",
            "name": "dropOffTime",
            "description": "When you will pick up the car. This is a timezone naive local datetime in ISO 8601 combined date and time format. ",
            "type": "string",
            "required": true,
            "defaultValue": "2015-12-22T17:30:00"
          },
          {
            "in": "query",
            "name": "vendorCode",
            "description": "The vendor code to filter/limit search results",
            "type": "string",
            "required": false
          }
        ],
        "responses": {
          "200": {
            "description": "successful operation",
            "schema": {
              "$ref": "#/definitions/carSearchResponse"
            }
          }
        }
      }
    },
    "/m/api/cars/search/location": {
      "get": {
        "tags": [
          "Cars"
        ],
        "summary": "Search",
        "description": "Mobile API Cars",
        "operationId": "cars-search",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "query",
            "name": "pickupLocation.lat",
            "description": "The location (latitude) to search near.",
            "type": "double",
            "required": true,
            "defaultValue": "37.791431"
          },
          {
            "in": "query",
            "name": "pickupLocation.lon",
            "description": "The location (longitude) to search near.",
            "type": "double",
            "required": true,
            "defaultValue": "-122.4008081"
          },
          {
            "in": "query",
            "name": "pickupTime",
            "description": "When you will pick up the car. This is a timezone naive local datetime in ISO 8601 combined date and time format. ",
            "type": "string",
            "required": true,
            "defaultValue": "2015-12-22T12:30:00"
          },
          {
            "in": "query",
            "name": "dropOffTime",
            "description": "When you will pick up the car. This is a timezone naive local datetime in ISO 8601 combined date and time format. ",
            "type": "string",
            "required": true,
            "defaultValue": "2015-12-22T17:30:00"
          },
          {
            "in": "query",
            "name": "searchRadius",
            "description": "The max distance around the location to search in. The distance unit is selected based on the current POS (km or mi). ",
            "type": "integer",
            "required": false,
            "defaultValue": "10"
          },
          {
            "in": "query",
            "name": "vendorCode",
            "description": "The vendor code to filter/limit search results",
            "type": "string",
            "required": false
          }
        ],
        "responses": {
          "200": {
            "description": "successful operation",
            "schema": {
              "$ref": "#/definitions/carSearchResponse"
            }
          }
        }
      }
    },
    "/m/api/cars/search": {
      "get": {
        "tags": [
          "Cars"
        ],
        "summary": "Search",
        "description": "Mobile API Cars",
        "operationId": "cars-search",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "query",
            "name": "pickupLocation.lat",
            "description": "The location (latitude) to search near. For eg. 37.791431",
            "type": "double"
          },
          {
            "in": "query",
            "name": "pickupLocation.lon",
            "description": "The location (longitude) to search near. For eg. -122.4008081",
            "type": "double"
          },
          {
            "in": "query",
            "name": "dropOffLocation.lat",
            "description": "The location (latitude) for drop off. For eg. 37.791431",
            "type": "double"
          },
          {
            "in": "query",
            "name": "dropOffLocation.lon",
            "description": "The location (longitude) for drop off. For eg. -122.4008081",
            "type": "double"
          },
          {
            "in": "query",
            "name": "originAirportCode",
            "description": "3 letter airport code where you will be picking up your rental car. For eg. SFO",
            "type": "string"
          },
          {
            "in": "query",
            "name": "destinationAirportCode",
            "description": "3 letter airport code where you will dropping off your rental car. For eg. SFO",
            "type": "string"
          },
          {
            "in": "query",
            "name": "pickupTime",
            "description": "When you will pick up the car. This is a timezone naive local datetime in ISO 8601 combined date and time format. ",
            "type": "string",
            "required": true,
            "defaultValue": "2015-12-22T12:30:00"
          },
          {
            "in": "query",
            "name": "dropOffTime",
            "description": "When you will pick up the car. This is a timezone naive local datetime in ISO 8601 combined date and time format. ",
            "type": "string",
            "required": true,
            "defaultValue": "2015-12-22T17:30:00"
          },
          {
            "in": "query",
            "name": "searchRadius",
            "description": "The max distance around the location to search in. The distance unit is selected based on the current POS (km or mi). ",
            "type": "integer",
            "required": false
          },
          {
            "in": "query",
            "name": "vendorCode",
            "description": "The vendor code to filter/limit search results",
            "type": "string",
            "required": false
          }
        ],
        "responses": {
          "200": {
            "description": "successful operation",
            "schema": {
              "$ref": "#/definitions/carSearchResponse"
            }
          }
        }
      }
    },
    "/m/api/cars/trip/create": {
      "post": {
        "tags": [
          "Cars"
        ],
        "summary": "Create A Trip",
        "description": "Mobile API Cars Create Trip",
        "operationId": "cars-create-trip",
        "consumes": [
          "application/x-www-form-urlencoded"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "formData",
            "name": "productKey",
            "description": "The product ID (piid) you would like to create a trip.",
            "type": "string",
            "required": true
          },
          {
            "in": "formData",
            "name": "expectedTotalFare",
            "description": "The expected total price of the trip, matching exactly whatever the user last saw. No leading zeros,no thousands separators, and 2 decimal places of precision.",
            "type": "string",
            "required": true
          },
          {
            "in": "formData",
            "name": "tripName",
            "description": "Name of this trip. ",
            "type": "string"
          },
          {
            "in": "formData",
            "name": "showVendorRulesAndRestrictionsText",
            "description": "Show the rules and restrictions text set by vendor. ",
            "type": "boolean"
          }
        ],
        "responses": {
          "200": {
            "description": "successful operation",
            "schema": {
              "$ref": "#/definitions/carCreateTripResponse"
            }
          }
        }
      }
    },
    "/m/api/cars/trip/checkout": {
      "post": {
        "tags": [
          "Cars"
        ],
        "summary": "Checkout",
        "description": "Mobile API Cars Checkout",
        "operationId": "cars-checkout",
        "consumes": [
          "application/x-www-form-urlencoded"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "formData",
            "name": "tripId",
            "description": "The trip ID of an existing trip, from /api/flight/trip/create.",
            "type": "string",
            "required": true
          },
          {
            "in": "formData",
            "name": "expectedTotalFare",
            "description": "The expected total price of the trip, matching exactly whatever the user last saw. No leading zeros, no thousands separators, and 2 decimal places of precision. This is obtained from /api/flight/trip/create.",
            "type": "string",
            "required": true
          },
          {
            "in": "formData",
            "name": "expectedFareCurrencyCode",
            "description": "Three letter 4217 ISO currency code of the expected total price. This should be whatever was returned by the server. Conversions will not be done. This is obtained from /api/flight/trip/create.",
            "type": "string",
            "required": true
          },
          {
            "in": "formData",
            "name": "expectedCardFee",
            "description": "The expected credit card fee, as returned by the createTrip call in the validFormsOfPayment object for whatever credit card the user is paying with. No leading zeros, no thousands separators, and 2 decimal places of precision.",
            "type": "string"
          },
          {
            "in": "formData",
            "name": "expectedCardFeeCurrencyCode",
            "description": "Three letter 4217 ISO currency code of the expected credit card fee. This should be whatever was returned by the server. Conversions will not be done.",
            "type": "string"
          },
          {
            "in": "formData",
            "name": "doIThinkImSignedIn",
            "description": "As a client I am checking-out with the assumption that I am signed in",
            "type": "boolean"
          },
          {
            "in": "formData",
            "name": "tealeafTransactionId",
            "description": "The unique transaction ID used in TeaLeaf PSR tracking",
            "type": "string"
          },
          {
            "in": "formData",
            "name": "omniturePartnerId",
            "description": "Omniture partner identification string",
            "type": "string"
          },
          {
            "in": "formData",
            "name": "mainMobileTraveler.phoneCountryCode",
            "description": "The country code of the phone number of the traveler. Only the numeric values in this field are used.  E.g., \"+44\" is treated internally as \"44\".",
            "type": "string",
            "required": true,
            "defaultValue": "+1"
          },
          {
            "in": "formData",
            "name": "mainMobileTraveler.phone",
            "description": "The phone number of the traveler.Only the numeric values in this field are used.  E.g., \"555-1234\" is treated internally as \"5551234\".",
            "type": "string",
            "required": true,
            "defaultValue": "1234567890"
          },
          {
            "in": "formData",
            "name": "mainMobileTraveler.email",
            "description": "This passenger's email address. Required, although ignored for logged in users, as it will use their email on file instead.",
            "type": "string",
            "required": true,
            "defaultValue": "test@expedia.com"
          },
          {
            "in": "formData",
            "name": "mainMobileTraveler.password",
            "description": "The password provided by the expedia user. This would imply that a user needs to be created with the above email id and this password. To be done only if this is a guest request.",
            "type": "string"
          },
          {
            "in": "formData",
            "name": "mainMobileTraveler.expediaEmailOptIn",
            "description": "Whether to opt-in the user's email to travel deals",
            "type": "boolean"
          },
          {
            "in": "formData",
            "name": "mainMobileTraveler.firstName",
            "description": "The first name of the traveler",
            "type": "string",
            "required": "true",
            "defaultValue": "Andrew"
          },
          {
            "in": "formData",
            "name": "mainMobileTraveler.middleName",
            "description": "The middle name of the traveler. ",
            "type": "string"
          },
          {
            "in": "formData",
            "name": "mainMobileTraveler.lastName",
            "description": "The last name of the traveler.",
            "type": "string",
            "required": "true",
            "defaultValue": "Lappin"
          },
          {
            "in": "formData",
            "name": "streetAddress",
            "description": "The street part of the credit card owner's billing address..",
            "type": "string",
            "required": true,
            "defaultValue": "Test Street"
          },
          {
            "in": "formData",
            "name": "streetAddress2",
            "description": "Apartment or suite number of the traveler's billing address.",
            "type": "string"
          },
          {
            "in": "formData",
            "name": "city",
            "description": "The city of the traveler's billing address.",
            "type": "string",
            "required": true,
            "defaultValue": "San Francisco"
          },
          {
            "in": "formData",
            "name": "state",
            "description": "The state (or province) of the traveler's billing address.",
            "type": "string",
            "required": true,
            "defaultValue": "CA"
          },
          {
            "in": "formData",
            "name": "country",
            "description": "The 3 letter country code of the traveler's billing address.",
            "type": "string",
            "required": true,
            "defaultValue": "USA"
          },
          {
            "in": "formData",
            "name": "postalCode",
            "description": "The postal code of the traveler's billing address. Required only postalCode only checkout.",
            "type": "string",
            "required": true,
            "defaultValue": "94111"
          },
          {
            "in": "formData",
            "name": "creditCardNumber",
            "description": "The credit card number used for this booking, if checking out with a new card. This field is required for guest checkout.",
            "type": "string",
            "required": true,
            "defaultValue": "4111111111111111"
          },
          {
            "in": "formData",
            "name": "expirationDateYear",
            "description": "The 4 digit expiration date year of the credit card used for this booking. This field is required for guest checkout.",
            "type": "integer",
            "required": true,
            "defaultValue": "2025"
          },
          {
            "in": "formData",
            "name": "expirationDateMonth",
            "description": "The expiration date month of the credit card used for this booking. This field is required guest for checkout.",
            "type": "integer",
            "required": true,
            "defaultValue": "12"
          },
          {
            "in": "formData",
            "name": "cvv",
            "description": "The CVV of the traveler's credit card used for this booking.",
            "type": "string",
            "required": "true",
            "defaultValue": "111"
          },
          {
            "in": "formData",
            "name": "storedCreditCardId",
            "description": "The GUID for the stored credit card information to be used for payment. The retrieved credit card information should trump the other credit card parameter in this request.",
            "type": "string"
          },
          {
            "in": "formData",
            "name": "storeCreditCardInUserProfile",
            "description": "Indicates whether to save the credit card information as a stored credit card in the user profile. This is ignored if the user is not signed in.",
            "type": "boolean"
          },
          {
            "in": "formData",
            "name": "nameOnCard",
            "description": "The card holder's name",
            "type": "string",
            "required": true,
            "defaultValue": "Andrew Lappin"
          },
          {
            "in": "formData",
            "name": "prettyPrint",
            "description": "If true, return JSON with tabs, spaces and newlines to be human readable",
            "type": "boolean"
          },
          {
            "in": "formData",
            "name": "suppressFinalBooking",
            "description": "If true, do not actually charge for and book the trip, stop after creating the itinerary. Used for testing on the checkout call only. Checkout will return 00000 for the OMS order ID when this is true",
            "type": "boolean"
          },
          {
            "in": "formData",
            "name": "showVendorRulesAndRestrictionsText",
            "description": "Show the rules and restrictions set by vendor. ",
            "type": "boolean"
          }
        ],
        "responses": {
          "200": {
            "description": "successful operation",
            "schema": {
              "$ref": "#/definitions/apiCheckoutResponseCarsResponse"
            }
          }
        }
      }
    },
    "/lx/api/search": {
      "get": {
        "tags": [
          "Lx"
        ],
        "summary": "Search",
        "description": "LX Shop Search",
        "operationId": "lx-search",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "query",
            "name": "location",
            "description": "This represents the location in POS configuration language, the term is more accurate if it is closer to ESS representation of region. (e.g. Rome (and vicinity), Italy)",
            "type": "string",
            "required": true,
            "defaultValue": "rome"
          },
          {
            "in": "query",
            "name": "startDate",
            "description": "(optional) dates in YYY-MM-DD format (preferred) or POS configuration format (e.g. MM/dd/yyyy for US) that you see in home page wizard. If not defined startDate default to today and endDate defaults to startDate + 14.",
            "type": "string",
            "defaultValue": "2015-12-02"
          },
          {
            "in": "query",
            "name": "endDate",
            "description": "(optional) dates in YYY-MM-DD format (preferred) or POS configuration format (e.g. MM/dd/yyyy for US) that you see in home page wizard. If not defined startDate default to today and endDate defaults to startDate + 14.",
            "type": "string",
            "defaultValue": "2015-12-05"
          },
          {
            "in": "query",
            "name": "langid",
            "description": "Use langid as defined for a POS secondary language",
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "successful operation"
          }
        }
      }
    },
    "/lx/api/activity": {
      "get": {
        "tags": [
          "Lx"
        ],
        "summary": "Infosite/Details",
        "description": "Lx Details Search",
        "operationId": "lx-details",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "query",
            "name": "activityId",
            "description": "This represents the location in POS configuration language, the term is more accurate if it is closer to ESS representation of region. (e.g. Rome (and vicinity), Italy)",
            "type": "string",
            "required": true,
            "defaultValue": "166365"
          },
          {
            "in": "query",
            "name": "startDate",
            "description": "(optional) dates in YYY-MM-DD format (preferred) or POS configuration format (e.g. MM/dd/yyyy for US) that you see in home page wizard. If not defined startDate default to today and endDate defaults to startDate + 14.",
            "type": "string",
            "defaultValue": "2015-12-02"
          },
          {
            "in": "query",
            "name": "endDate",
            "description": "(optional) dates in YYY-MM-DD format (preferred) or POS configuration format (e.g. MM/dd/yyyy for US) that you see in home page wizard. If not defined startDate default to today and endDate defaults to startDate + 14.",
            "type": "string",
            "defaultValue": "2015-12-05"
          },
          {
            "in": "query",
            "name": "langid",
            "description": "Use langid as defined for a POS secondary language",
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "successful operation"
          }
        }
      }
    },
    "/m/api/lx/trip/create": {
      "post": {
        "tags": [
          "Lx"
        ],
        "summary": "Create A Trip",
        "description": "Mobile API Lx Create Trip",
        "operationId": "lx-create-trip",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "body",
            "name": "body",
            "description": "Lx Trip consisting of chosen item information and trip name.",
            "type": "body",
            "required": "true",
            "schema": {
              "type": "string",
              "$ref": "lxTrip"
            },
            "defaultValue": "{\"items\": [{\"activityId\": \"166365\",\"activityItemId\": \"166367\",\"amount\": \"152\",\"activityDate\": \"2015-12-02T08:30:00\",\"allDayActivity\": false,\"regionId\": \"179899\",\"tickets\": [{\"count\":2,\"code\":\"Adult\",\"ticketId\":\"76684\"}]}],\"tripName\": \"My Lx Trip\"}"
          }
        ],
        "responses": {
          "200": {
            "description": "successful operation",
            "schema": {
              "$ref": "lxCreateTripResponse"
            }
          }
        }
      }
    },
    "/m/api/lx/trip/checkout": {
      "post": {
        "tags": [
          "Lx"
        ],
        "summary": "Checkout",
        "description": "Mobile API Lx Checkout",
        "operationId": "lx-checkout",
        "consumes": [
          "application/x-www-form-urlencoded"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "formData",
            "name": "tripId",
            "description": "The trip ID of an existing trip, from /api/flight/trip/create.",
            "type": "string",
            "required": true
          },
          {
            "in": "formData",
            "name": "expectedTotalFare",
            "description": "The expected total price of the trip, matching exactly whatever the user last saw. No leading zeros, no thousands separators, and 2 decimal places of precision. This is obtained from /api/flight/trip/create.",
            "type": "string",
            "required": true
          },
          {
            "in": "formData",
            "name": "expectedFareCurrencyCode",
            "description": "Three letter 4217 ISO currency code of the expected total price. This should be whatever was returned by the server. Conversions will not be done. This is obtained from /api/flight/trip/create.",
            "type": "string",
            "required": true
          },
          {
            "in": "formData",
            "name": "expectedCardFee",
            "description": "The expected credit card fee, as returned by the createTrip call in the validFormsOfPayment object for whatever credit card the user is paying with. No leading zeros, no thousands separators, and 2 decimal places of precision.",
            "type": "string"
          },
          {
            "in": "formData",
            "name": "expectedCardFeeCurrencyCode",
            "description": "Three letter 4217 ISO currency code of the expected credit card fee. This should be whatever was returned by the server. Conversions will not be done.",
            "type": "string"
          },
          {
            "in": "formData",
            "name": "doIThinkImSignedIn",
            "description": "As a client I am checking-out with the assumption that I am signed in",
            "type": "boolean"
          },
          {
            "in": "formData",
            "name": "tealeafTransactionId",
            "description": "The unique transaction ID used in TeaLeaf PSR tracking",
            "type": "string"
          },
          {
            "in": "formData",
            "name": "omniturePartnerId",
            "description": "Omniture partner identification string",
            "type": "string"
          },
          {
            "in": "formData",
            "name": "phoneCountryCode",
            "description": "The country code of the phone number of the traveler. Only the numeric values in this field are used.  E.g., \"+44\" is treated internally as \"44\".",
            "type": "string",
            "required": true,
            "defaultValue": "+1"
          },
          {
            "in": "formData",
            "name": "phone",
            "description": "The phone number of the traveler.Only the numeric values in this field are used.  E.g., \"555-1234\" is treated internally as \"5551234\".",
            "type": "string",
            "required": true,
            "defaultValue": "1234567890"
          },
          {
            "in": "formData",
            "name": "email",
            "description": "This passenger's email address. Required, although ignored for logged in users, as it will use their email on file instead.",
            "type": "string",
            "required": true,
            "defaultValue": "test@expedia.com"
          },
          {
            "in": "formData",
            "name": "password",
            "description": "The password provided by the expedia user. This would imply that a user needs to be created with the above email id and this password. To be done only if this is a guest request.",
            "type": "string"
          },
          {
            "in": "formData",
            "name": "expediaEmailOptIn",
            "description": "Whether to opt-in the user's email to travel deals",
            "type": "boolean"
          },
          {
            "in": "formData",
            "name": "firstName",
            "description": "The first name of the traveler",
            "type": "string",
            "required": "true",
            "defaultValue": "Andrew"
          },
          {
            "in": "formData",
            "name": "middleName",
            "description": "The middle name of the traveler. ",
            "type": "string"
          },
          {
            "in": "formData",
            "name": "lastName",
            "description": "The last name of the traveler.",
            "type": "string",
            "required": "true",
            "defaultValue": "Lappin"
          },
          {
            "in": "formData",
            "name": "streetAddress",
            "description": "The street part of the credit card owner's billing address..",
            "type": "string",
            "required": true,
            "defaultValue": "Test Street"
          },
          {
            "in": "formData",
            "name": "streetAddress2",
            "description": "Apartment or suite number of the traveler's billing address.",
            "type": "string"
          },
          {
            "in": "formData",
            "name": "city",
            "description": "The city of the traveler's billing address.",
            "type": "string",
            "required": true,
            "defaultValue": "San Francisco"
          },
          {
            "in": "formData",
            "name": "state",
            "description": "The state (or province) of the traveler's billing address.",
            "type": "string",
            "required": true,
            "defaultValue": "CA"
          },
          {
            "in": "formData",
            "name": "country",
            "description": "The 3 letter country code of the traveler's billing address.",
            "type": "string",
            "required": true,
            "defaultValue": "USA"
          },
          {
            "in": "formData",
            "name": "postalCode",
            "description": "The postal code of the traveler's billing address. Required only postalCode only checkout.",
            "type": "string",
            "required": true,
            "defaultValue": "94111"
          },
          {
            "in": "formData",
            "name": "creditCardNumber",
            "description": "The credit card number used for this booking, if checking out with a new card. This field is required for guest checkout.",
            "type": "string",
            "required": true,
            "defaultValue": "4111111111111111"
          },
          {
            "in": "formData",
            "name": "expirationDateYear",
            "description": "The 4 digit expiration date year of the credit card used for this booking. This field is required for guest checkout.",
            "type": "integer",
            "required": true,
            "defaultValue": "2025"
          },
          {
            "in": "formData",
            "name": "expirationDateMonth",
            "description": "The expiration date month of the credit card used for this booking. This field is required guest for checkout.",
            "type": "integer",
            "required": true,
            "defaultValue": "12"
          },
          {
            "in": "formData",
            "name": "cvv",
            "description": "The CVV of the traveler's credit card used for this booking.",
            "type": "string",
            "required": "true",
            "defaultValue": "111"
          },
          {
            "in": "formData",
            "name": "storedCreditCardId",
            "description": "The GUID for the stored credit card information to be used for payment. The retrieved credit card information should trump the other credit card parameter in this request.",
            "type": "string"
          },
          {
            "in": "formData",
            "name": "storeCreditCardInUserProfile",
            "description": "Indicates whether to save the credit card information as a stored credit card in the user profile. This is ignored if the user is not signed in.",
            "type": "boolean"
          },
          {
            "in": "formData",
            "name": "nameOnCard",
            "description": "The card holder's name",
            "type": "string",
            "required": true,
            "defaultValue": "Andrew Lappin"
          },
          {
            "in": "formData",
            "name": "prettyPrint",
            "description": "If true, return JSON with tabs, spaces and newlines to be human readable",
            "type": "boolean"
          },
          {
            "in": "formData",
            "name": "suppressFinalBooking",
            "description": "If true, do not actually charge for and book the trip, stop after creating the itinerary. Used for testing on the checkout call only. Checkout will return 00000 for the OMS order ID when this is true",
            "type": "boolean"
          }
        ],
        "responses": {
          "200": {
            "description": "successful operation",
            "schema": {
              "$ref": "#/definitions/apiCheckoutResponseLxResponse"
            }
          }
        }
      }
    }
  },
  "definitions": {
    "lxTickets": {
      "properties": {
        "count": {
          "type": "integer"
        },
        "code": {
          "type": "string"
        },
        "ticketId": {
          "type": "string"
        }
      }
    },
    "lxItem": {
      "properties": {
        "activityId": {
          "type": "string"
        },
        "activityItemId": {
          "type": "string"
        },
        "amount": {
          "type": "string"
        },
        "activityDate": {
          "type": "string"
        },
        "allDayActivity": {
          "type": "boolean"
        },
        "regionId": {
          "type": "string"
        },
        "tickets": {
          "type": "array",
          "items": {
            "$ref": "lxTickets"
          }
        }
      }
    },
    "lxTrip": {
      "properties": {
        "items": {
          "type": "array",
          "items": {
            "$ref": "lxItem"
          }
        },
        "tripName": {
          "type": "string"
        }
      }
    },
    "latLongDomain": {
      "properties": {
        "latitude": {
          "type": "double"
        },
        "longitude": {
          "type": "double"
        }
      }
    },
    "timeDomain": {
      "properties": {
        "raw": {
          "type": "string"
        },
        "localized": {
          "type": "string"
        },
        "epochSeconds": {
          "type": "string"
        },
        "timeZoneOffsetSeconds": {
          "type": "string"
        },
        "localizedShortDate": {
          "type": "string"
        }
      }
    },
    "hotelCheckoutV2": {
      "properties": {
        "checkoutInfo": {
          "$ref": "hotelCheckoutFields"
        },
        "traveler": {
          "$ref": "mainHotelTraveler"
        },
        "tripDetails": {
          "$ref": "checkoutFields"
        },
        "paymentInfo": {
          "$ref": "paymentInfoFields"
        },
        "misc": {
          "$ref": "utilityFields"
        }
      }
    },
    "railsCheckout": {
      "properties": {
        "checkoutInfo": {
          "$ref": "hotelCheckoutFields"
        },
        "traveler": {
          "type": "array",
          "items": {
            "$ref": "mainHotelTraveler"
          }
        },
        "tripDetails": {
          "$ref": "checkoutFields"
        },
        "paymentInfo": {
          "$ref": "paymentInfoFields"
        },
        "misc": {
          "$ref": "utilityFields"
        }
      }
    },
    "hotelCheckoutFields": {
      "properties": {
        "checkInDate": {
          "type": "string"
        },
        "checkOutDate": {
          "type": "string"
        },
        "rooms": {
          "type": "array",
          "items": {
            "$ref": "roomsDetails"
          }
        }
      }
    },
    "jsonValueAdd": {
      "properties": {
        "id": {
          "type": "string"
        },
        "description": {
          "type": "string"
        }
      }
    },
    "roomsDetails": {
      "properties": {
        "bedTypeId": {
          "type": "integer"
        },
        "contactName": {
          "type": "string"
        },
        "smokingPreference": {
          "type": "string"
        },
        "specialRequests": {
          "type": "string"
        },
        "accessibilityOptionIds": {
          "type": "array",
          "items": {
            "$ref": "jsonValueAdd"
          }
        }
      }
    },
    "mainHotelTraveler": {
      "properties": {
        "firstName": {
          "type": "string"
        },
        "middleName": {
          "type": "string"
        },
        "lastName": {
          "type": "string"
        },
        "phoneCountryCode": {
          "type": "string"
        },
        "phone": {
          "type": "string"
        },
        "email": {
          "type": "string"
        },
        "password": {
          "type": "string"
        },
        "expediaEmailOptIn": {
          "type": "boolean"
        },
        "bedTypeId": {
          "type": "integer"
        }
      }
    },
    "checkoutFields": {
      "properties": {
        "tripId": {
          "type": "string"
        },
        "expectedTotalFare": {
          "type": "string"
        },
        "expectedFareCurrencyCode": {
          "type": "string"
        },
        "expectedCardFee": {
          "type": "string"
        },
        "expectedCardFeeCurrencyCode": {
          "type": "string"
        },
        "doIThinkImSignedIn": {
          "type": "boolean"
        },
        "tealeafTransactionId": {
          "type": "string"
        },
        "omniturePartnerId": {
          "type": "string"
        },
        "sendEmailConfirmation": {
          "type": "boolean"
        },
        "abacusUserGuid": {
          "type": "string"
        }
      }
    },
    "paymentFieldsRef": {
      "properties": {
        "streetAddress": {
          "type": "string"
        },
        "streetAddress2": {
          "type": "string"
        },
        "city": {
          "type": "string"
        },
        "country": {
          "type": "string"
        },
        "postalCode": {
          "type": "string"
        },
        "creditCardNumber": {
          "type": "string"
        },
        "expirationDateYear": {
          "type": "integer"
        },
        "expirationDateMonth": {
          "type": "integer"
        },
        "cvv": {
          "type": "string"
        },
        "storedCreditCardId": {
          "type": "string"
        },
        "storeCreditCardInUserProfile": {
          "type": "boolean"
        },
        "nameOnCard": {
          "type": "string"
        },
        "amountOnCard": {
          "type": "double"
        }
      }
    },
    "rewardsCheckoutFields": {
      "properties": {
        "membershipId": {
          "type": "string"
        },
        "programName": {
          "type": "string"
        },
        "paymentInstrumentId": {
          "type": "string"
        },
        "amountToChargeInVirtualCurrency": {
          "type": "double"
        },
        "amountToChargeInRealCurrency": {
          "type": "double"
        },
        "rateId": {
          "type": "string"
        },
        "currencyCode": {
          "type": "string"
        }
      }
    },
    "utilityFields": {
      "properties": {
        "prettyPrint": {
          "type": "boolean"
        },
        "suppressFinalBooking": {
          "type": "boolean"
        },
        "clientId": {
          "type": "string"
        },
        "teaLeafTransactionId": {
          "type": "string"
        }
      }
    },
    "paymentInfoFields": {
      "properties": {
        "cards": {
          "type": "array",
          "items": {
            "$ref": "paymentFieldsRef"
          }
        },
        "rewards": {
          "type": "array",
          "items": {
            "$ref": "rewardsCheckoutFields"
          }
        },
        "applePay": {
          "$ref": "applePayTokenFields"
        },
        "deviceBlackBoxDetails": {
          "type": "string"
        }
      }
    },
    "applePayTokenFields": {
      "properties": {
        "nameOnCard": {
          "type": "string"
        },
        "postalCode": {
          "type": "string"
        },
        "cardType": {
          "type": "string"
        },
        "country": {
          "type": "string"
        },
        "currencyCode": {
          "type": "string"
        },
        "amountOnCard": {
          "type": "double"
        },
        "token": {
          "type": "string"
        }
      }
    },
    "mobileError": {
      "properties": {
        "errorCode": {
          "type": "string",
          "description": "Possible error codes: INVALID_INPUT, HOTEL_ROOM_UNAVAILABLE, HOTEL_OFFER_UNAVAILABLE,HOTEL_SERVICE_FATAL_FAILURE, PAYMENT_FAILED, BOOKING_SUCCEEDED_WITH_ERRORS, BOOKING_FAILED, STORE_CREDIT_CARD_INFO_FAILED, SSL_REQUIRED,  USER_UNAUTHORIZED_FOR_PROFILE, UNKNOWN_ERROR, TRIP_SERVICE_ERROR, HOTEL_PRODUCT_NOT_FOUND, APPLY_COUPON_ERROR, REMOVE_COUPON_ERROR,APPLY_BACKICK_PRICE_ADJUSTMENT_ERROR,APPLY_ADJUSTMENT_UNAUTHORIZED,FLIGHT_SOLD_OUT, FLIGHT_PRODUCT_NOT_FOUND, USER_SERVICE_ERROR, USER_SERVICE_FATAL_FAILURE, USER_SERVICE_TRAVELER_ALREADY_EXISTS, SESSION_TIMEOUT, TRIP_ALREADY_BOOKED, USER_SERVICE_DUPLICATE_EMAIL, USER_SERVICE_CREATE_USER_ERROR, IMAGE_NOT_FOUND, CANNOT_BOOK_WITH_MINOR, USER_CREATION_FAILED_DURING_CHECKOUT, OMS_ERROR,INVALID_INPUT_NOT_OPAQUE_PRODUCT_KEY, PACKAGE_SEARCH_ERROR, CAR_PRODUCT_NOT_AVAILABLE, CAR_SERVICE_ERROR, CAR_SEARCH_ERROR"
        },
        "errorInfo": {
          "type": "string",
          "description": "It returns a Map data structure"
        },
        "diagnosticId": {
          "type": "string"
        },
        "diagnosticFullText": {
          "type": "string"
        },
        "activityId": {
          "type": "string"
        }
      }
    },
    "jsonSurcharge": {
      "properties": {
        "amount": {
          "type": "string"
        },
        "type": {
          "type": "string"
        }
      }
    },
    "jsonPriceAdjustment": {
      "properties": {
        "type": {
          "type": "string"
        },
        "amount": {
          "type": "string"
        },
        "formattedAmount": {
          "type": "string"
        }
      }
    },
    "jsonNightlyRates": {
      "properties": {
        "promo": {
          "type": "boolean"
        },
        "baseRate": {
          "type": "string"
        },
        "rate": {
          "type": "string"
        }
      }
    },
    "jsonMandatoryFees": {
      "properties": {
        "feeName": {
          "type": "string"
        },
        "amount": {
          "type": "string"
        }
      }
    },
    "jsonBaseRateInfo": {
      "properties": {
        "maxNightlyRate": {
          "type": "string"
        },
        "averageRate": {
          "type": "string"
        },
        "taxStatusType": {
          "type": "string"
        },
        "surchargeTotal": {
          "type": "string"
        },
        "surchargeTotalForEntireStay": {
          "type": "string"
        },
        "averageBaseRate": {
          "type": "string"
        },
        "nightlyRateTotal": {
          "type": "string"
        },
        "discountPercent": {
          "type": "double"
        },
        "total": {
          "type": "string"
        },
        "currencyCode": {
          "type": "string"
        },
        "currencySymbol": {
          "type": "string"
        },
        "surcharges": {
          "type": "array",
          "items": {
            "$ref": "jsonSurcharge"
          }
        },
        "surchargesForEntireStay": {
          "type": "array",
          "items": {
            "$ref": "jsonSurcharge"
          }
        },
        "nightlyRatesPerRoom": {
          "type": "array",
          "items": {
            "$ref": "jsonNightlyRates"
          }
        },
        "nightlyRatesSize": {
          "type": "string"
        },
        "priceToShowUsers": {
          "type": "string"
        },
        "depositAmountToShowUsers": {
          "type": "string"
        },
        "priceRemainingAfterDepositToShowUsers": {
          "type": "string"
        },
        "depositAmountExact": {
          "type": "string"
        },
        "priceRemainingAfterDepositExact": {
          "type": "string"
        },
        "strikethroughPriceToShowUsers": {
          "type": "string"
        },
        "strikethroughPriceWithTaxesAndFeesToShowUsers": {
          "type": "string"
        },
        "totalMandatoryFees": {
          "type": "string"
        },
        "mandatoryFees": {
          "type": "array",
          "items": {
            "$ref": "jsonMandatoryFees"
          }
        },
        "totalPriceWithMandatoryFees": {
          "type": "string"
        },
        "userPriceType": {
          "type": "string"
        },
        "priceAdjustments": {
          "type": "array",
          "items": {
            "$ref": "jsonPriceAdjustment"
          }
        },
        "checkoutPriceType": {
          "type": "string"
        },
        "airAttached": {
          "type": "boolean"
        },
        "roomTypeCode": {
          "type": "string"
        },
        "ratePlanCode": {
          "type": "string"
        },
        "showResortFeeMessage": {
          "type": "boolean"
        },
        "resortFeeInclusion": {
          "type": "boolean"
        },
        "dailyMandatoryFee": {
          "type": "string"
        }
      }
    },
    "apiNewTripJson": {
      "properties": {
        "itineraryNumber": {
          "type": "string"
        },
        "travelRecordLocator": {
          "type": "string"
        },
        "tripId": {
          "type": "string"
        }
      }
    },
    "flightAggregatedResponse": {
      "properties": {
        "responseType": {
          "type": "responseType"
        },
        "flightsDetailResponse": {
          "type": "array",
          "items": {
            "$ref": "flightDetailJsonResponse"
          }
        }
      }
    },
    "jsonAssociatedTraveler": {
      "properties": {
        "tuid": {
          "type": "integer"
        },
        "firstName": {
          "type": "string"
        },
        "middleName": {
          "type": "string"
        },
        "lastName": {
          "type": "string"
        }
      }
    },
    "jsonPhone": {
      "properties": {
        "number": {
          "type": "string"
        },
        "areaCode": {
          "type": "string"
        },
        "category": {
          "type": "string"
        },
        "countryCode": {
          "type": "string"
        },
        "extensionNumber": {
          "type": "string"
        }
      }
    },
    "jsonAddress": {
      "properties": {
        "firstAddressLine": {
          "type": "string"
        },
        "secondAddressLine": {
          "type": "string"
        },
        "city": {
          "type": "string"
        },
        "province": {
          "type": "string"
        },
        "postalCode": {
          "type": "string"
        },
        "countryAlpha3Code": {
          "type": "string"
        },
        "categoryCode": {
          "type": "string"
        }
      }
    },
    "loyaltyMembershipInfo": {
      "properties": {
        "loyaltyMembershipNumber": {
          "type": "string"
        },
        "loyaltyMembershipActive": {
          "type": "boolean"
        },
        "loyaltyPointsAvailable": {
          "type": "string"
        },
        "loyaltyPointsPending": {
          "type": "string"
        },
        "loyaltyAmountAvailable": {
          "type": "string"
        },
        "bookingCurrency": {
          "type": "string"
        },
        "isAllowedToShopWithPoints": {
          "type": "boolean"
        },
        "loyaltyMonetaryValue": {
          "$ref": "mobilePrice"
        },
        "currentTierCredits": {
          "$ref": "tierInfo"
        },
        "reqUpgradeCredits": {
          "$ref": "tierInfo"
        },
        "pointsRemainingTillPurchase": {
          "type": "string"
        },
        "loyaltyMembershipName": {
          "type": "string"
        },
        "membershipTierName": {
          "type": "string"
        }
      }
    },
    "jsonUserCreditCardInformation": {
      "properties": {
        "description": {
          "type": "string"
        },
        "paymentsInstrumentsId": {
          "type": "string"
        },
        "creditCardType": {
          "type": "string"
        },
        "nameOnCard": {
          "type": "string"
        },
        "expired": {
          "type": "string"
        },
        "expirationDate": {
          "type": "string"
        }
      }
    },
    "jsonFrequentGuestMembership": {
      "properties": {
        "frequentGuestMembershipID": {
          "type": "string"
        },
        "frequentGuestMembershipCode": {
          "type": "string"
        },
        "hotelMembershipNumber": {
          "type": "string"
        }
      }
    },
    "jsonPassport": {
      "properties": {
        "countryCode": {
          "type": "string"
        }
      }
    },
    "jsonTsaDetails": {
      "properties": {
        "gender": {
          "type": "string"
        },
        "dateOfBirth": {
          "type": "string"
        },
        "redressNumber": {
          "type": "string"
        }
      }
    },
    "jsonFrequentFlyerMembership": {
      "properties": {
        "membershipNumber": {
          "type": "string"
        },
        "planCode": {
          "type": "string"
        },
        "airlineCode": {
          "type": "string"
        }
      }
    },
    "jsonEmergencyContact": {
      "properties": {
        "firstName": {
          "type": "string"
        },
        "middleName": {
          "type": "string"
        },
        "lastName": {
          "type": "string"
        },
        "phone": {
          "$ref": "jsonPhone"
        }
      }
    },
    "jsonHotel": {
      "properties": {
        "sortIndex": {
          "type": "string"
        },
        "hotelId": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "localizedName": {
          "type": "string"
        },
        "nonLocalizedName": {
          "type": "string"
        },
        "address": {
          "type": "string"
        },
        "city": {
          "type": "string"
        },
        "stateProvinceCode": {
          "type": "string"
        },
        "countryCode": {
          "type": "string"
        },
        "postalCode": {
          "type": "string"
        },
        "airportCode": {
          "type": "string"
        },
        "supplierType": {
          "type": "string"
        },
        "hotelStarRating": {
          "type": "string"
        },
        "hotelStarRatingCssClassName": {
          "type": "string"
        },
        "hotelGuestRating": {
          "type": "string"
        },
        "totalRecommendations": {
          "type": "string"
        },
        "percentRecommended": {
          "type": "string"
        },
        "totalReviews": {
          "type": "string"
        },
        "shortDescription": {
          "type": "string"
        },
        "locationDescription": {
          "type": "string"
        },
        "locationId": {
          "type": "string"
        },
        "lowRate": {
          "type": "string"
        },
        "lowRateInfo": {
          "$ref": "jsonBaseRateInfo"
        },
        "rateCurrencyCode": {
          "type": "string"
        },
        "rateCurrencySymbol": {
          "type": "string"
        },
        "roomsLeftAtThisRate": {
          "type": "string"
        },
        "latitude": {
          "type": "string"
        },
        "longitude": {
          "type": "string"
        },
        "proximityDistanceInMiles": {
          "type": "string"
        },
        "proximityDistanceInKiloMeters": {
          "type": "string"
        },
        "largeThumbnailUrl": {
          "type": "string"
        },
        "thumbnailUrl": {
          "type": "string"
        },
        "discountMessage": {
          "type": "string"
        },
        "isDiscountRestrictedToCurrentSourceType": {
          "type": "boolean"
        },
        "isSameDayDRR": {
          "type": "boolean"
        },
        "isHotelAvailable": {
          "type": "boolean"
        },
        "notAvailableMessage": {
          "type": "string"
        },
        "isSponsoredListing": {
          "type": "boolean"
        },
        "clickTrackingUrl": {
          "type": "string"
        },
        "clickTrackingRedirectUrl": {
          "type": "string"
        },
        "impressionTrackingUrl": {
          "type": "string"
        },
        "omnitureAdDisplayedUrl": {
          "type": "string"
        },
        "omnitureAdClickedUrl": {
          "type": "string"
        },
        "hasFreeCancellation": {
          "type": "boolean"
        },
        "amenities": {
          "type": "array",
          "items": {
            "$ref": "jsonValueAdd"
          }
        },
        "distanceUnit": {
          "type": "string"
        },
        "didGetBackHighestPriceFromSurvey": {
          "type": "boolean"
        },
        "highestPriceFromSurvey": {
          "type": "string"
        },
        "isDudley": {
          "type": "boolean"
        },
        "isVipAccess": {
          "type": "boolean"
        },
        "isPaymentChoiceAvailable": {
          "type": "boolean"
        },
        "isShowEtpChoice": {
          "type": "boolean"
        },
        "allowedToDisplayRatingAsStars": {
          "type": "boolean"
        }
      }
    },
    "jsonOpaqueNeighborhood": {
      "properties": {
        "opaqueHoodId": {
          "type": "string"
        },
        "opaqueHoodName": {
          "type": "string"
        },
        "opaqueHoodDescription": {
          "type": "string"
        },
        "cityName": {
          "type": "string"
        },
        "provinceName": {
          "type": "string"
        },
        "centroid": {
          "$ref": "latLongDomain"
        },
        "opaqueHoodShape": {
          "type": "array",
          "items": {
            "$ref": "latLongDomain"
          }
        }
      }
    },
    "jsonAmbiguousCityMatch": {
      "properties": {
        "regionId": {
          "type": "string"
        },
        "cityName": {
          "type": "string"
        },
        "cityUrl": {
          "type": "string"
        }
      }
    },
    "jsonOpaqueHotel": {
      "properties": {
        "sortIndex": {
          "type": "string"
        },
        "hotelName": {
          "type": "string"
        },
        "hotelStarRating": {
          "type": "string"
        },
        "opaqueHoodId": {
          "type": "string"
        },
        "opaqueSearchResultId": {
          "type": "string"
        },
        "opaqueNeighborhood": {
          "$ref": "jsonOpaqueNeighborhood"
        },
        "productKey": {
          "type": "string"
        },
        "hotelAmenities": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "hotelOffer": {
          "$ref": "jsonBaseRateInfo"
        }
      }
    },
    "flightSegmentJson": {
      "properties": {
        "departureTime": {
          "type": "string"
        },
        "departureTimeEpochSeconds": {
          "type": "integer"
        },
        "departureTimeRaw": {
          "type": "string"
        },
        "departureTimeZoneOffsetSeconds": {
          "type": "integer"
        },
        "arrivalTime": {
          "type": "string"
        },
        "arrivalTimeEpochSeconds": {
          "type": "integer"
        },
        "arrivalTimeRaw": {
          "type": "string"
        },
        "arrivalTimeZoneOffsetSeconds": {
          "type": "integer"
        },
        "arrivalAirportCode": {
          "type": "string"
        },
        "arrivalAirportLocation": {
          "type": "string"
        },
        "departureAirportCode": {
          "type": "string"
        },
        "departureAirportLocation": {
          "type": "string"
        },
        "airlineName": {
          "type": "string"
        },
        "airlineCode": {
          "type": "string"
        },
        "externalAirlineCode": {
          "type": "string"
        },
        "flightNumber": {
          "type": "string"
        },
        "onTimePercentage": {
          "type": "string"
        },
        "operatingAirlineName": {
          "type": "string"
        },
        "operatingAirlineCode": {
          "type": "string"
        },
        "equipmentCode": {
          "type": "string"
        },
        "equipmentDescription": {
          "type": "string"
        },
        "duration": {
          "type": "string"
        },
        "arrivalAirportLocation": {
          "type": "string"
        },
        "distance": {
          "type": "integer"
        },
        "distanceUnits": {
          "type": "string"
        },
        "stops": {
          "type": "integer"
        },
        "meal": {
          "type": "string"
        },
        "sameFlightAsPreviousSegment": {
          "type": "boolean"
        },
        "providerCode": {
          "type": "string"
        }
      }
    },
    "flightLegJson": {
      "properties": {
        "legId": {
          "type": "string"
        },
        "baggageFeesUrl": {
          "type": "string"
        },
        "segments": {
          "type": "array",
          "items": {
            "$ref": "flightSegmentJson"
          }
        },
        "freeCancellationBy": {
          "$ref": "timeDomain"
        }
      }
    },
    "mobilePrice": {
      "properties": {
        "amount": {
          "type": "string"
        },
        "formattedPrice": {
          "type": "string"
        },
        "formattedWholePrice": {
          "type": "string"
        }
      }
    },
    "pricePoints": {
      "properties": {
        "points": {
          "type": "integer"
        },
        "pointsType": {
          "type": "string"
        },
        "amount": {
          "$ref": "mobilePrice"
        }
      }
    },
    "passengerCategoryPrice": {
      "properties": {
        "passengerCategory": {
          "type": "string"
        },
        "totalPrice": {
          "$ref": "mobilePrice"
        },
        "basePrice": {
          "$ref": "mobilePrice"
        },
        "taxesPrice": {
          "$ref": "mobilePrice"
        }
      }
    },
    "flightSegmentAttributesJson": {
      "properties": {
        "bookingCode": {
          "type": "string"
        },
        "cabinCode": {
          "type": "string"
        }
      }
    },
    "flightOfferJson": {
      "properties": {
        "legIds": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "currency": {
          "type": "string"
        },
        "baseFare": {
          "type": "string"
        },
        "baseFarePrice": {
          "$ref": "mobilePrice"
        },
        "totalFare": {
          "type": "string"
        },
        "totalFarePrice": {
          "$ref": "mobilePrice"
        },
        "pricePerPassengerCategory": {
          "type": "array",
          "items": {
            "$ref": "passengerCategoryPrice"
          }
        },
        "averageTotalPricePerTicket": {
          "$ref": "mobilePrice"
        },
        "numberOfTickets": {
          "type": "integer"
        },
        "taxes": {
          "type": "string"
        },
        "taxesPrice": {
          "$ref": "mobilePrice"
        },
        "fees": {
          "type": "string"
        },
        "feesPrice": {
          "$ref": "mobilePrice"
        },
        "showFees": {
          "type": "boolean"
        },
        "productKey": {
          "type": "string"
        },
        "mobileShoppingKey": {
          "type": "string"
        },
        "seatsRemaining": {
          "type": "integer"
        },
        "segmentAttributes": {
          "type": "array",
          "items": {
            "type": "array",
            "items": {
              "$ref": "flightSegmentAttributesJson"
            }
          }
        },
        "baggageFeesUrl": {
          "type": "string"
        },
        "fareType": {
          "type": "string"
        },
        "fareName": {
          "type": "string"
        },
        "fareNameLink": {
          "type": "string"
        },
        "isInternational": {
          "type": "boolean"
        },
        "mayChargeOBFees": {
          "type": "boolean"
        },
        "hasBagFee": {
          "type": "boolean"
        },
        "hasNoBagFee": {
          "type": "boolean"
        }
      }
    },
    "searchCityJson": {
      "properties": {
        "code": {
          "type": "string"
        },
        "city": {
          "type": "string"
        },
        "province": {
          "type": "string"
        },
        "country": {
          "type": "string"
        },
        "searchType": {
          "type": "string"
        }
      }
    },
    "airport": {
      "properties": {
        "airportCode": {
          "type": "string"
        },
        "regionId": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "country": {
          "type": "string"
        }
      }
    },
    "route": {
      "properties": {
        "origin": {
          "type": "string"
        },
        "destinations": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "flightRulesJson": {
      "properties": {
        "isChangeAllowed": {
          "type": "boolean"
        },
        "isEnrouteChangeAllowed": {
          "type": "boolean"
        },
        "isEnrouteRefundAllowed": {
          "type": "boolean"
        },
        "isRefundable": {
          "type": "boolean"
        },
        "currencyCode": {
          "type": "string"
        },
        "changePenaltyAmount": {
          "type": "string"
        },
        "refundPenaltyAmount": {
          "type": "string"
        },
        "enrouteChangePenaltyAmount": {
          "type": "string"
        },
        "enrouteRefundAllowedAmount": {
          "type": "string"
        },
        "changePenaltyPrice": {
          "$ref": "mobilePrice"
        },
        "refundPenaltyPrice": {
          "$ref": "mobilePrice"
        },
        "enrouteChangePenaltyPrice": {
          "$ref": "mobilePrice"
        },
        "enrouteRefundAllowedPrice": {
          "$ref": "mobilePrice"
        },
        "summaryText": {
          "type": "string"
        }
      }
    },
    "apiNewTrip": {
      "properties": {
        "itineraryNumber": {
          "type": "string"
        },
        "travelRecordLocator": {
          "type": "string"
        },
        "tripId": {
          "type": "string"
        }
      }
    },
    "flightDetailedRulesJson": {
      "properties": {
        "RuleToTextMap": {
          "type": "string",
          "description": "Returns a Map data structure"
        },
        "RuleToUrlMap": {
          "type": "string",
          "description": "Returns a Map data structure"
        }
      }
    },
    "apiPaymentOptionJson": {
      "properties": {
        "name": {
          "type": "string"
        },
        "fee": {
          "type": "string"
        },
        "feeCurrencyCode": {
          "type": "string"
        },
        "totalFarePriceWithFee": {
          "type": "string"
        },
        "formattedFee": {
          "type": "string"
        },
        "feeRange": {
          "description": "Some credit card fees can have a range of amounts. For example 0 to $5. The exact fee can only be determined by the first 6 digits of a credit card's number.",
          "$ref": "feeRange"
        }
      }
    },
    "feeRange": {
      "properties": {
        "min:": {
          "description": "The minimum price that this fee could be",
          "$ref": "mobilePrice"
        },
        "max:": {
          "description": "The maximum price that this fee could be",
          "$ref": "mobilePrice"
        }
      }
    },
    "pointsDetailJson": {
      "properties": {
        "programName": {
          "type": "string"
        },
        "rateId": {
          "type": "string"
        },
        "totalAvailable": {
          "$ref": "pricePoints"
        },
        "maxPayableWithPoints": {
          "$ref": "pricePoints"
        },
        "remainingPayableByCard": {
          "$ref": "pricePoints"
        },
        "isAllowedToRedeem": {
          "type": "boolean"
        }
      }
    },
    "expediaRewardsForTripJson": {
      "properties": {
        "totalPointsToEarn": {
          "type": "integer"
        },
        "isActiveRewardsMember": {
          "type": "boolean"
        },
        "rewardsMembershipTierName": {
          "type": "string"
        }
      }
    },
    "rewardsForTripJson": {
      "properties": {
        "programName": {
          "type": "string"
        },
        "totalPointsToEarn": {
          "type": "integer"
        },
        "totalAmountToEarn": {
          "$ref": "mobilePrice"
        },
        "isActiveRewardsMember": {
          "type": "boolean"
        },
        "rewardsMembershipTierName": {
          "type": "string"
        }
      }
    },
    "addOn": {
      "properties": {
        "name": {
          "type": "string"
        },
        "description": {
          "type": "string"
        },
        "termsUrl": {
          "type": "string"
        },
        "insuranceTypeId": {
          "type": "integer"
        },
        "price": {
          "$ref": "mobilePrice"
        },
        "markupPercent": {
          "type": "double"
        },
        "displayPrice": {
          "$ref": "mobilePrice"
        },
        "displayPriceType": {
          "type": "string"
        }
      }
    },
    "insurance": {
      "properties": {
        "name": {
          "type": "string"
        },
        "productId": {
          "type": "string"
        },
        "policyNumber": {
          "type": "string"
        },
        "description": {
          "type": "string"
        },
        "termsUrl": {
          "type": "string"
        },
        "totalPrice": {
          "$ref": "mobilePrice"
        },
        "totalPriceWithoutAddOns": {
          "$ref": "mobilePrice"
        },
        "displayPrice": {
          "$ref": "mobilePrice"
        },
        "displayPriceType": {
          "type": "string"
        },
        "availableInsuranceAddOns": {
          "type": "array",
          "items": {
            "$ref": "addOn"
          }
        },
        "selectedInsuranceAddOn": {
          "$ref": "addOn"
        }
      }
    },
    "mobileCoupon": {
      "properties": {
        "name": {
          "type": "string",
          "description": "Minimum size: 1, Maximum Size: 225, Pattern: \"^[.,a-zA-Z0-9'\\- #]*$\""
        },
        "code": {
          "type": "string",
          "description": "Minimum size: 1, Maximum Size: 100, Pattern: \"^[.,a-zA-Z0-9'\\- #]*$\""
        },
        "instanceId": {
          "type": "integer"
        }
      }
    },
    "textSection": {
      "properties": {
        "name": {
          "type": "string"
        },
        "content": {
          "type": "string"
        }
      }
    },
    "region": {
      "properties": {
        "id": {
          "type": "integer"
        },
        "type": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "description": {
          "type": "string"
        },
        "latitude": {
          "type": "double"
        },
        "longitude": {
          "type": "double"
        }
      }
    },
    "jsonPhoto": {
      "properties": {
        "url": {
          "type": "string"
        },
        "thumbnailUrl": {
          "type": "string"
        },
        "featured": {
          "type": "boolean"
        },
        "displayText": {
          "type": "string"
        }
      }
    },
    "jsonBedType": {
      "properties": {
        "id": {
          "type": "string"
        },
        "description": {
          "type": "string"
        }
      }
    },
    "jsonAvailabilityCancelPolicyInfo": {
      "properties": {
        "versionID": {
          "type": "string"
        },
        "cancelTime": {
          "type": "string"
        },
        "startWindowHours": {
          "type": "string"
        },
        "nightCount": {
          "type": "string"
        },
        "percent": {
          "type": "string"
        },
        "amount": {
          "type": "string"
        },
        "currencyCode": {
          "type": "string"
        },
        "timeZoneDescription": {
          "type": "string"
        }
      }
    },
    "jsonHotelRateInfo": {
      "properties": {
        "priceBreakdown": {
          "type": "boolean"
        },
        "promo": {
          "type": "boolean"
        },
        "rateChange": {
          "type": "boolean"
        },
        "chargeableRateInfo": {
          "$ref": "jsonBaseRateInfo"
        },
        "convertedRateInfo": {
          "$ref": "jsonBaseRateInfo"
        }
      }
    },
    "mobileHotelSmokingPreference": {
      "properties": {
        "description": {
          "type": "string",
          "description": " S(\"Smoking\", \"label_smoking\"), NS(\"Non-Smoking\", \"label_non_smoking\"),E(\"Smoking or Non-Smoking\", \"label_smoking_or_non_smoking\"), Unknown(\"Unknown smoking preference\", \"label_unknown_smoking_preference\");"
        },
        "locMsgId": {
          "type": "string"
        }
      }
    },
    "jsonHotelOffer": {
      "properties": {
        "productKey": {
          "type": "string"
        },
        "cancellationPolicy": {
          "type": "string"
        },
        "policy": {
          "type": "string"
        },
        "rateDescription": {
          "type": "string"
        },
        "roomTypeDescription": {
          "type": "string"
        },
        "roomLongDescription": {
          "type": "string"
        },
        "roomThumbnailUrl": {
          "type": "string"
        },
        "supplierType": {
          "type": "string"
        },
        "otherInformation": {
          "type": "string"
        },
        "rateChange": {
          "type": "boolean"
        },
        "nonRefundable": {
          "type": "boolean"
        },
        "hasFreeCancellation": {
          "type": "boolean"
        },
        "freeCancellationWindowDate": {
          "type": "string"
        },
        "guaranteeRequired": {
          "type": "boolean"
        },
        "depositRequired": {
          "type": "boolean"
        },
        "immediateChargeRequired": {
          "type": "boolean"
        },
        "currentAllotment": {
          "type": "string"
        },
        "promoId": {
          "type": "string"
        },
        "promoDescription": {
          "type": "string"
        },
        "isDiscountRestrictedToCurrentSourceType": {
          "type": "boolean"
        },
        "isSameDayDRR": {
          "type": "boolean"
        },
        "smokingPreferences": {
          "$ref": "MobileHotelSmokingPreference"
        },
        "rateOccupancyPerRoom": {
          "type": "string"
        },
        "bedTypes": {
          "type": "array",
          "items": {
            "$ref": "jsonBedType"
          }
        },
        "cancelPolicyInfoList": {
          "type": "array",
          "items": {
            "$ref": "jsonAvailabilityCancelPolicyInfo"
          }
        },
        "rateInfo": {
          "type": "array",
          "items": {
            "$ref": "jsonHotelRateInfo"
          }
        },
        "valueAdds": {
          "type": "array",
          "items": {
            "$ref": "jsonValueAdd"
          }
        },
        "quotedOccupancy": {
          "type": "string"
        },
        "minGuestAge": {
          "type": "string"
        },
        "taxRate": {
          "type": "string"
        },
        "roomTypeCode": {
          "type": "string"
        },
        "ratePlanCode": {
          "type": "string"
        },
        "isPayLater": {
          "type": "boolean"
        },
        "payLaterOffer": {
          "$ref": "jsonHotelOffer"
        }
      }
    },
    "jsonLoyaltyPointInfo": {
      "properties": {
        "pointValue": {
          "type": "integer"
        },
        "pointType": {
          "type": "string"
        }
      }
    },
    "jsonLoyaltyPoints": {
      "properties": {
        "totalLoyaltyPoints": {
          "type": "integer"
        },
        "loyaltyPointInfoList": {
          "type": "array",
          "items": {
            "$ref": "jsonLoyaltyPointInfo"
          }
        }
      }
    },
    "packageTripPricing": {
      "properties": {
        "packageTotal": {
          "$ref": "mobilePrice"
        },
        "basePrice": {
          "$ref": "mobilePrice"
        },
        "totalTaxesAndFees": {
          "$ref": "mobilePrice"
        },
        "hotelPrice": {
          "$ref": "mobilePrice"
        },
        "flightPrice": {
          "$ref": "mobilePrice"
        },
        "savings": {
          "$ref": "mobilePrice"
        },
        "couponDiscount": {
          "$ref": "mobilePrice"
        },
        "packageTotalWithoutCoupon": {
          "$ref": "mobilePrice"
        },
        "taxesAndFeesIncluded": {
          "type": "boolean"
        }
      }
    },
    "jsonRoomOptions": {
      "properties": {
        "bedTypeName": {
          "type": "string"
        },
        "smokingPreference": {
          "$ref": "mobileHotelSmokingPreference"
        },
        "specialRequest": {
          "type": "boolean"
        },
        "hasExtraBedAdult": {
          "type": "boolean"
        },
        "hasExtraBedChild": {
          "type": "boolean"
        },
        "hasExtraBedInfant": {
          "type": "boolean"
        },
        "isSmokingPreferenceSelected": {
          "type": "boolean"
        },
        "isRoomOptionsAvailable": {
          "type": "boolean"
        }
      }
    },
    "jsonRoomOccupants": {
      "properties": {
        "adultCount": {
          "type": "integer"
        },
        "childAndInfantAges": {
          "type": "array",
          "items": {
            "type": "integer"
          }
        },
        "bookingItemId": {
          "type": "string"
        },
        "orderLineGUID": {
          "type": "string"
        },
        "reservationStatus": {
          "type": "string"
        },
        "primaryOccupantName": {
          "type": "string"
        },
        "occupantSelectedRoomOptions": {
          "$ref": "jsonRoomOptions"
        }
      }
    },
    "jsonHotelBooking": {
      "properties": {
        "error": {
          "type": "array",
          "items": {
            "$ref": "mobileError"
          }
        },
        "warnings": {
          "type": "array",
          "items": {
            "$ref": "mobileError"
          }
        },
        "cancellationPolicy": {
          "type": "string"
        },
        "nonLocalizedhotelName": {
          "type": "string"
        },
        "hotelName": {
          "type": "string"
        },
        "localizedHotelName": {
          "type": "string"
        },
        "hotelAddress": {
          "type": "string"
        },
        "hotelPostalCode": {
          "type": "string"
        },
        "hotelStateProvinceCode": {
          "type": "string"
        },
        "hotelCountryCode": {
          "type": "string"
        },
        "hotelCity": {
          "type": "string"
        },
        "hotelPhone": {
          "type": "string"
        },
        "hotelLongitude": {
          "type": "string"
        },
        "hotelLatitude": {
          "type": "string"
        },
        "nightCount": {
          "type": "string"
        },
        "maxGuestCount": {
          "type": "string"
        },
        "checkInInstructions": {
          "type": "string"
        },
        "roomDescription": {
          "type": "string"
        },
        "checkInDate": {
          "type": "string"
        },
        "checkInDateForTracking": {
          "type": "string"
        },
        "checkOutDate": {
          "type": "string"
        },
        "pricePerDayBreakdown": {
          "type": "string"
        },
        "averageDailyHotelPrice": {
          "type": "string"
        },
        "extraGuestCharges": {
          "type": "string"
        },
        "taxes": {
          "type": "string"
        },
        "fees": {
          "type": "string"
        },
        "averageBaseRate": {
          "type": "string"
        },
        "totalPrice": {
          "type": "string"
        },
        "currencyCode": {
          "type": "string"
        },
        "nightlyRates": {
          "type": "array",
          "items": {
            "$ref": "jsonNightlyRate"
          }
        },
        "supplierType": {
          "type": "string"
        },
        "confirmationPending": {
          "type": "string"
        },
        "itineraryNumber": {
          "type": "string"
        },
        "travelRecordLocator": {
          "type": "string"
        },
        "hotelConfirmationNumber": {
          "type": "string"
        },
        "numberOfRoomsBooked": {
          "type": "string"
        },
        "nonRefundable": {
          "type": "string"
        },
        "hasFreeCancellation": {
          "type": "boolean"
        },
        "freeCancellationWindowDate": {
          "type": "string"
        },
        "email": {
          "type": "string"
        },
        "guestFullName": {
          "type": "string"
        },
        "guestPhone": {
          "$ref": "jsonPhone"
        },
        "guestAddress": {
          "$ref": "jsonAddress"
        },
        "tripId": {
          "type": "string"
        },
        "isMerchant": {
          "type": "boolean"
        },
        "isGDS": {
          "type": "boolean"
        },
        "isOpaque": {
          "type": "boolean"
        },
        "hotelInventoryTypeName": {
          "type": "string"
        },
        "passbookUrl": {
          "type": "string"
        },
        "roomOccupants": {
          "type": "array",
          "items": {
            "$ref": "jsonRoomOccupants"
          }
        },
        "orderNumber": {
          "type": "integer"
        },
        "debugTealeafInfo": {
          "type": "string"
        },
        "confirmationUrl": {
          "type": "string"
        }
      }
    },
    "jsonPriceChange": {
      "properties": {
        "oldProduct": {
          "$ref": "jsonGetProductResponse"
        },
        "newProduct": {
          "$ref": "jsonGetProductResponse"
        }
      }
    },
    "checkout": {
      "properties": {
        "bookingResponse": {
          "$ref": "jsonHotelBooking"
        },
        "productResponse": {
          "$ref": "jsonGetProductResponse"
        },
        "jsonPriceChangeResponse": {
          "$ref": "jsonPriceChange"
        }
      }
    },
    "mobileAirAttachQualifier": {
      "properties": {
        "airAttachQualified": {
          "type": "boolean"
        },
        "offerExpires": {
          "type": "string"
        },
        "offerExpiresTime": {
          "type": "timeDomain"
        }
      }
    },
    "tierInfo": {
      "properties": {
        "hotelNights": {
          "type": "integer"
        },
        "tierName": {
          "type": "string"
        },
        "amount": {
          "$ref": "mobilePrice"
        }
      }
    },
    "hotelCancelRules": {
      "properties": {
        "isRefundable": {
          "type": "boolean"
        },
        "isVenere": {
          "type": "boolean"
        },
        "isOpaque": {
          "type": "boolean"
        },
        "lowerFixedPenaltyPrice": {
          "type": "double"
        },
        "hasFixedPenaltyPrice": {
          "type": "boolean"
        },
        "isExpediaRate": {
          "type": "boolean"
        },
        "cancellationWindowDate": {
          "type": "integer",
          "format": "date"
        },
        "cancellationWindowHours": {
          "type": "integer"
        },
        "cancellationWindowDays": {
          "type": "integer"
        },
        "cancellationTimeZoneName": {
          "type": "string"
        },
        "outsideWindowPenaltyNightCount": {
          "type": "integer"
        },
        "outsideWindowPenaltyPercentage": {
          "type": "integer"
        },
        "nonRefundableOutsideWindow": {
          "type": "boolean"
        },
        "outsideWindowPrice": {
          "type": "double"
        },
        "insideWindowPenaltyNightCount": {
          "type": "integer"
        },
        "insideWindowPenaltyPercentage": {
          "type": "integer"
        },
        "nonRefundableInsideWindow": {
          "type": "boolean"
        },
        "insideWindowFeePenalty": {
          "type": "double"
        },
        "hotelName": {
          "type": "string"
        },
        "policyText": {
          "type": "string"
        },
        "cancellationText1": {
          "type": "string"
        },
        "cancellationText2": {
          "type": "string"
        },
        "nonRefundableDates": {
          "type": "array",
          "items": {
            "type": "integer"
          }
        }
      }
    },
    "hotelCancelEnquiryRoomInfo": {
      "properties": {
        "ratePlanDescription": {
          "type": "string"
        },
        "adultCount": {
          "type": "string"
        },
        "numberOfNights": {
          "type": "string"
        },
        "amountPaid": {
          "$ref": "mobilePrice"
        },
        "amountRefund": {
          "$ref": "mobilePrice"
        },
        "orderLineGUID": {
          "type": "string"
        }
      }
    },
    "hotelCancelEnquiryInfo": {
      "properties": {
        "roomInfoList": {
          "type": "array",
          "items": {
            "$ref": "hotelCancelEnquiryRoomInfo"
          }
        },
        "hotelRules": {
          "$ref": "hotelCancelRules"
        }
      }
    },
    "packageHotelOffer": {
      "properties": {
        "pricePerPerson": {
          "$ref": "mobilePrice"
        },
        "packagePricing": {
          "$ref": "packageTripPricing"
        },
        "packageProductId": {
          "type": "string"
        },
        "hotelOffer": {
          "$ref": "jsonHotelOffer"
        }
      }
    },
    "packageTrip": {
      "properties": {
        "tripId": {
          "type": "string"
        },
        "itineraryNumber": {
          "type": "integer"
        },
        "flight": {
          "$ref": "packageFlightJsonResponse"
        },
        "hotel": {
          "$ref": "jsonGetProductResponse"
        },
        "pricing": {
          "$ref": "packageTripPricing"
        },
        "tealeafTransactionId": {
          "type": "string"
        }
      }
    },
    "vendor": {
      "properties": {
        "id": {
          "type": "integer"
        },
        "name": {
          "type": "string"
        },
        "code": {
          "type": "string"
        },
        "localPhoneNumber": {
          "type": "string"
        },
        "phoneNumber": {
          "type": "string"
        },
        "loyaltyProgram": {
          "type": "string"
        }
      }
    },
    "carLocation": {
      "properties": {
        "locationType": {
          "type": "string"
        },
        "locationDescription": {
          "type": "string"
        },
        "airportInstructions": {
          "type": "string"
        },
        "latitude": {
          "type": "double"
        },
        "longitude": {
          "type": "double"
        },
        "addressLine1": {
          "type": "string"
        },
        "addressLine2": {
          "type": "string"
        },
        "addressLine3": {
          "type": "string"
        },
        "addressLine4": {
          "type": "string"
        },
        "addressLine5": {
          "type": "string"
        },
        "cityName": {
          "type": "string"
        },
        "provinceStateName": {
          "type": "string"
        },
        "postalCode": {
          "type": "string"
        },
        "countryCode": {
          "type": "string"
        },
        "locationCode": {
          "type": "string"
        }
      }
    },
    "rentalFare": {
      "properties": {
        "rateTerm": {
          "type": "string"
        },
        "rate": {
          "$ref": "mobilePrice"
        },
        "dailyRate": {
          "$ref": "mobilePrice"
        },
        "total": {
          "$ref": "mobilePrice"
        }
      }
    },
    "carRentalMileageLimits": {
      "properties": {
        "freeMileage": {
          "type": "integer"
        },
        "mileageUnit": {
          "type": "string"
        },
        "extraCostPerDistance": {
          "$ref": "priceDomain"
        }
      }
    },
    "carRentalLimits": {
      "properties": {
        "minDuration": {
          "type": "string"
        },
        "maxDuration": {
          "type": "string"
        },
        "lastestReturnTime": {
          "type": "string"
        },
        "mileageLimits": {
          "$ref": "carRentalMileageLimits"
        }
      }
    },
    "vehicleInfo": {
      "properties": {
        "category": {
          "type": "string",
          "description": "It can have following values: \"* MINI\", \"* ECONOMY\", \"* COMPACT\", \"* MIDSIZE\", \"* STANDARD\", \"* FULLSIZE\", \"* PREMIUM\", \"* LUXURY\", \"* SPECIAL\", \"* MINI_ELITE\", \"* ECONOMY_ELITE\", \"* COMPACT_ELITE\", \"* MIDSIZE_ELITE\", \"* STANDARD_ELITE\", \"* FULLSIZE_ELITE\", \"* PREMIUM_ELITE\", \"* LUXURY_ELITE\", \"* OVERSIZE\""
        },
        "type": {
          "type": "string",
          "description": "It can have following values: \"* TWO_DOOR_CAR\", \"* THREE_DOOR_CAR\", \"* FOUR_DOOR_CAR\", \"* VAN\", \"* WAGON\", \"* LIMOUSINE\", \"* RECREATIONAL_VEHICLE\", \"* CONVERTIBLE\", \"* SPORTS_CAR\", \"* SUV\", \"* PICKUP_REGULAR_CAB\", \"* PICKUP_EXTENDED_CAB\", \"* OPEN_AIR_ALL_TERRAIN\", \"* SPECIAL\", \"* COMMERCIAL_VAN_TRUCK\", \"* SPECIAL_OFFER_CAR\", \"* COUPE\", \"* MONOSPACE\", \"* MOTORHOME\", \"* TWO_WHEEL_VEHICLE\", \"* ROADSTER\", \"* CROSSOVER\""
        },
        "image": {
          "type": "string",
          "description": "Car Image URL"
        },
        "fuel": {
          "type": "string",
          "description": "It can have following values: \"* `UNKNOWN`\", \"* `GASOLINE`\", \"* `DIESEL`\", \"* `HYBRID`\", \"* `ELECTRIC`\", \"* `LIQUID_COMPRESSED_NATURAL_GAS`\", \"* `HYDROGEN`\", \"* `MULTI_FUEL`\", \"* `ETHANOL`\""
        },
        "transmission": {
          "type": "string",
          "description": "It can have following values: \"* `UNKNOWN`\", \"* `AUTOMATIC_TRANSMISSION`\", \"* `MANUAL_TRANSMISSION`\""
        },
        "drive": {
          "type": "string",
          "description": "It can have following values: \"* `UNKNOWN`\", \"* `TWO_WHEEL_DRIVE`\", \"* `FOUR_WHEEL_DRIVE`\", \"* `ALL_WHEEL_DRIVE`\""
        },
        "hasAirConditioning": {
          "type": "boolean"
        },
        "makes": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "minDoors": {
          "type": "integer"
        },
        "maxDoors": {
          "type": "integer"
        },
        "adultCapacity": {
          "type": "integer"
        },
        "childCapacity": {
          "type": "integer"
        },
        "largeLuggageCapacity": {
          "type": "integer"
        },
        "smallLuggageCapacity": {
          "type": "integer"
        },
        "carCategoryDisplayLabel": {
          "type": "string",
          "description": "Display Car Label. eg. Compact "
        },
        "carCategoryDisplayFullLabel": {
          "type": "string",
          "description": "Display Car Full Label. eg - Compact 2/4Door Car"
        }
      }
    },
    "rentalOffer": {
      "properties": {
        "productKey": {
          "type": "string"
        },
        "vendor": {
          "$ref": "vendor"
        },
        "creditCardRequiredToGuaranteeReservation": {
          "type": "boolean"
        },
        "pickUpLocation": {
          "$ref": "carLocation"
        },
        "dropOffLocation": {
          "$ref": "carLocation"
        },
        "fare": {
          "$ref": "rentalFare"
        },
        "isMerchant": {
          "type": "boolean"
        },
        "carRentalLimits": {
          "$ref": "carRentalLimits"
        },
        "vehicleInfo": {
          "$ref": "vehicleInfo"
        }
      }
    },
    "rentalFareBreakdownItem": {
      "properties": {
        "type": {
          "type": "string",
          "description": "It can have the following values: \"* `INSURANCE`\",\"* `DROP_OFF_CHARGE`\",\"* `TAXES_AND_FEES`\",\"* `BASE`\""
        },
        "includedInTotal": {
          "type": "boolean"
        },
        "price": {
          "$ref": "mobilePrice"
        }
      }
    },
    "detailedRentalFare": {
      "properties": {
        "rateTerm": {
          "type": "string",
          "description": "It can have the following values: HOURLY, DAILY, WEEKLY, WEEKEND, MONTHLY, TOTAL, TRIP"
        },
        "rate": {
          "$ref": "mobilePrice"
        },
        "priceBreakdownOfTotalDueToday": {
          "type": "array",
          "items": {
            "type": "rentalFareBreakdownItem"
          }
        },
        "totalDueToday": {
          "$ref": "mobilePrice"
        },
        "priceBreakdownOfTotalDueAtPickup": {
          "type": "array",
          "items": {
            "type": "rentalFareBreakdownItem"
          }
        },
        "totalDueAtPickup": {
          "$ref": "mobilePrice"
        },
        "grandTotal": {
          "$ref": "mobilePrice"
        }
      }
    },
    "rentalProduct": {
      "properties": {
        "pickupTime": {
          "type": "string"
        },
        "dropOffTime": {
          "type": "string"
        },
        "productKey": {
          "type": "string"
        },
        "vendor": {
          "$ref": "vendor"
        },
        "creditCardRequiredToGuaranteeReservation": {
          "type": "boolean"
        },
        "pickUpLocation": {
          "$ref": "carLocation"
        },
        "dropOffLocation": {
          "$ref": "carLocation"
        },
        "vehicleInfo": {
          "$ref": "vehicleInfo"
        },
        "detailedFare": {
          "$ref": "detailedRentalFare"
        },
        "rulesAndRestrictionsURL": {
          "type": "string"
        },
        "rulesAndRestrictions": {
          "properties": {
            "category": {
              "type": "string"
            },
            "text": {
              "type": "string"
            }
          }
        }
      }
    },
    "loyaltyPointDomain": {
      "properties": {
        "m_pointValue": {
          "type": "double"
        },
        "m_pointType": {
          "type": "string",
          "description": "Possible description: basePoint, offerPoint, None, bonusPoint, fallOfferPoint, eliteCredit, manualAdjustment;"
        },
        "m_pointDescription": {
          "type": "string"
        },
        "m_status": {
          "type": "string"
        }
      }
    },
    "rewardsDomain": {
      "properties": {
        "totalPoints": {
          "type": "integer"
        },
        "basePoints": {
          "type": "integer"
        },
        "bonusPoints": {
          "type": "array",
          "items": {
            "$ref": "loyaltyPointDomain"
          }
        },
        "logoUrl": {
          "type": "string"
        },
        "viewStatementURL": {
          "type": "string"
        }
      }
    },
    "customerSupportDomain": {
      "properties": {
        "customerSupportURL": {
          "type": "string"
        },
        "customerSupportPhoneInfo": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "customerSupportPhoneNumberDomestic": {
          "type": "string"
        },
        "customerSupportPhoneNumberDomesticAfterHours": {
          "type": "string"
        },
        "customerSupportPhoneNumberInternational": {
          "type": "string"
        },
        "customerSupportPhoneInfoForEmail": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "termsAndConditionsURL": {
          "type": "string"
        }
      }
    },
    "addressDomain": {
      "properties": {
        "addressLine1": {
          "type": "string"
        },
        "addressLine2": {
          "type": "string"
        },
        "addressLine3": {
          "type": "string"
        },
        "addressLine4": {
          "type": "string"
        },
        "addressLine5": {
          "type": "string"
        },
        "city": {
          "type": "string"
        },
        "cityLocalized": {
          "type": "string"
        },
        "companyName": {
          "type": "string"
        },
        "countrySubdivisionCode": {
          "type": "string"
        },
        "postalCode": {
          "type": "string"
        },
        "countryCode": {
          "type": "string"
        },
        "countryName": {
          "type": "string"
        },
        "fullAddress": {
          "type": "string"
        }
      }
    },
    "labelAndValuePairDomain": {
      "properties": {
        "label": {
          "type": "string"
        },
        "value": {
          "type": "string"
        }
      }
    },
    "hotelPropertyInfoDomain": {
      "properties": {
        "address": {
          "$ref": "addressDomain"
        },
        "name": {
          "type": "string"
        },
        "starRating": {
          "type": "string"
        },
        "photoThumbnailURL": {
          "type": "string"
        },
        "photoThumbnail500pixURL": {
          "type": "string"
        },
        "photoThumbnail1000pixURL": {
          "type": "string"
        },
        "localPhone": {
          "type": "string"
        },
        "tollFreePhone": {
          "type": "string"
        },
        "formattedPhoneNumbers": {
          "type": "string"
        },
        "checkInPolicies": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "checkInStartTimePolicy": {
          "$ref": "labelAndValuePairDomain"
        },
        "checkInEndTimePolicy": {
          "$ref": "labelAndValuePairDomain"
        },
        "checkOutTimePolicy": {
          "$ref": "labelAndValuePairDomain"
        },
        "generalRules": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "restrictionPolicies": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "fees": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "mandatoryFees": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "specialCheckInInstructions": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "latitude": {
          "type": "double"
        },
        "longitude": {
          "type": "double"
        },
        "isVipAccess": {
          "type": "boolean"
        },
        "googleMapsLink": {
          "type": "string"
        }
      }
    },
    "lodgingPriceDetailsPerDayDomain": {
      "properties": {
        "day": {
          "$ref": "timeDomain"
        },
        "primaryCurrencyCode": {
          "type": "string"
        },
        "amount": {
          "type": "string"
        },
        "amountFormatted": {
          "type": "string"
        }
      }
    },
    "lodgingPriceDetailsDomain": {
      "properties": {
        "comment": {
          "type": "string"
        },
        "primaryCurrencyCode": {
          "type": "string"
        },
        "base": {
          "type": "string"
        },
        "baseFormatted": {
          "type": "string"
        },
        "baseWithAdjustmentForDRRRateDiscount": {
          "type": "string"
        },
        "baseWithAdjustmentForDRRRateDiscountFormatted": {
          "type": "string"
        },
        "extraGuestCharges": {
          "type": "string"
        },
        "extraGuestChargesFormatted": {
          "type": "string"
        },
        "taxesAndFees": {
          "type": "string"
        },
        "taxesAndFeesFormatted": {
          "type": "string"
        },
        "mandatoryHotelFees": {
          "type": "string"
        },
        "mandatoryHotelFeesFormatted": {
          "type": "string"
        },
        "adjustmentForDRRRateDiscount": {
          "type": "string"
        },
        "adjustmentForDRRRateDiscountFormatted": {
          "type": "string"
        },
        "drrRateDiscountDescription": {
          "type": "string"
        },
        "adjustmentForAgent": {
          "type": "string"
        },
        "adjustmentForAgentFormatted": {
          "type": "string"
        },
        "adjustmentForCoupon": {
          "type": "string"
        },
        "adjustmentForCouponFormatted": {
          "type": "string"
        },
        "adjustmentForEmployeeDiscount": {
          "type": "string"
        },
        "adjustmentForEmployeeDiscountFormatted": {
          "type": "string"
        },
        "adjustmentForLoyalty": {
          "type": "string"
        },
        "adjustmentForLoyaltyFormatted": {
          "type": "string"
        },
        "subTotalBeforeCoupon": {
          "type": "string"
        },
        "subTotalBeforeCouponFormatted": {
          "type": "string"
        },
        "subTotalAfterDeposits": {
          "type": "string"
        },
        "subTotalAfterDepositsFormatted": {
          "type": "string"
        },
        "subTotalAfterDepositsPOS": {
          "type": "string"
        },
        "subTotalAfterDepositsPOSFormatted": {
          "type": "string"
        },
        "penalty": {
          "type": "string"
        },
        "penaltyFormatted": {
          "type": "string"
        },
        "refund": {
          "type": "string"
        },
        "refundFormatted": {
          "type": "string"
        },
        "refundPOS": {
          "type": "string"
        },
        "refundPOSFormatted": {
          "type": "string"
        },
        "taxStatus": {
          "type": "string"
        },
        "total": {
          "type": "string"
        },
        "totalFormatted": {
          "type": "string"
        },
        "totalExpediaCollectAmount": {
          "type": "string"
        },
        "totalExpediaCollectAmountFormatted": {
          "type": "string"
        },
        "totalPOSCurrencyCode": {
          "type": "string"
        },
        "totalPOS": {
          "type": "string"
        },
        "totalPOSFormatted": {
          "type": "string"
        },
        "hotelDeposits": {
          "type": "string"
        },
        "hotelDepositsFormatted": {
          "type": "string"
        },
        "hotelDepositsPOS": {
          "type": "string"
        },
        "hotelDepositsPOSFormatted": {
          "type": "string"
        },
        "hotelDepositsAfterRefund": {
          "type": "string"
        },
        "hotelDepositsAfterRefundFormatted": {
          "type": "string"
        },
        "hotelDepositsAfterRefundPOS": {
          "type": "string"
        },
        "hotelDepositsAfterRefundPOSFormatted": {
          "type": "string"
        },
        "_exchangeRatePOSCyToUSD": {
          "type": "double"
        },
        "_exchangeRateSupplierCyToUSD": {
          "type": "double"
        },
        "averagePricePerDay": {
          "type": "string"
        },
        "averagePricePerDayFormatted": {
          "type": "string"
        },
        "averageTaxPerDay": {
          "type": "string"
        },
        "averageTaxPerDayFormatted": {
          "type": "string"
        },
        "priceDetailsPerDay": {
          "type": "array",
          "items": {
            "$ref": "lodgingPriceDetailsPerDayDomain"
          }
        },
        "isSameRateForAllNights": {
          "type": "boolean"
        },
        "hasFees": {
          "type": "boolean"
        },
        "expediaChangeFee": {
          "type": "string"
        },
        "expediaChangeFeeFormatted": {
          "type": "string"
        }
      }
    },
    "lodgingRulesDomain": {
      "properties": {
        "cancelChangeWarning": {
          "type": "string"
        },
        "cancelChangeRulesIntroduction": {
          "type": "string"
        },
        "cancelChangeRules": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "cancellationWindowTime": {
          "$ref": "timeDomain"
        },
        "opaqueRules": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "opaquePolicies": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "lateArrivalInstructions": {
          "type": "string"
        },
        "loyaltyPointsDisclaimer": {
          "type": "string"
        },
        "quebecResidentsIndemnityFund": {
          "type": "string"
        },
        "currencyDisclaimer": {
          "type": "string"
        },
        "currencyConversionDisclaimer": {
          "type": "string"
        },
        "extraGuestPolicies": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "occupancyPolicies": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "paymentPolicies": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "aarpCheckIn": {
          "type": "string"
        },
        "roomRequestDisclaimer": {
          "type": "string"
        },
        "accessibilityText": {
          "type": "string"
        }
      }
    },
    "priceDomain": {
      "properties": {
        "amount": {
          "type": "double"
        },
        "currency": {
          "$ref": "currencyDomain"
        }
      }
    },
    "couponDomain": {
      "properties": {
        "name": {
          "type": "string"
        },
        "description": {
          "type": "string"
        },
        "code": {
          "type": "string"
        },
        "couponValue": {
          "$ref": "priceDomain"
        }
      }
    },
    "currencyDomain": {
      "properties": {
        "currencyCode": {
          "type": "string"
        },
        "defaultFractionDigits": {
          "type": "integer"
        },
        "numericCode": {
          "type": "integer"
        },
        "instances": {
          "type": "string",
          "description": "Returns a Hashmap data structure(HashMap<String, Currency>)"
        },
        "available": {
          "type": "array",
          "items": {
            "$ref": "currencyDomain"
          },
          "description": "Returns a Hashset data structure(HashSet<Currency>)"
        }
      }
    },
    "guestDomain": {
      "properties": {
        "firstName": {
          "type": "string"
        },
        "fullName": {
          "type": "string"
        },
        "email": {
          "type": "string"
        },
        "primaryPhone": {
          "type": "string"
        },
        "phone": {
          "type": "string"
        },
        "frequentGuestPlanName": {
          "type": "string"
        },
        "frequentGuestMembershipCode": {
          "type": "string"
        },
        "frequentFlyerPlanName": {
          "type": "string"
        },
        "frequentFlyerMembershipCode": {
          "type": "string"
        }
      }
    },
    "occupancyInfoDomain": {
      "properties": {
        "adultCount": {
          "type": "integer"
        },
        "childCount": {
          "type": "integer"
        },
        "infantCount": {
          "type": "integer"
        },
        "childAndInfantAges": {
          "type": "array",
          "items": {
            "type": "integer"
          }
        }
      }
    },
    "roomOptionsDomain": {
      "properties": {
        "bedTypeName": {
          "type": "string"
        },
        "defaultBedTypeName": {
          "type": "string"
        },
        "smokingPreference": {
          "type": "string"
        },
        "specialRequest": {
          "type": "string"
        },
        "accessibilityOptions": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "hasExtraBedAdult": {
          "type": "boolean"
        },
        "hasExtraBedChild": {
          "type": "boolean"
        },
        "hasExtraBedInfant": {
          "type": "boolean"
        },
        "isSmokingPreferenceSelected": {
          "type": "boolean"
        },
        "isRoomOptionsAvailable": {
          "type": "boolean"
        }
      }
    },
    "bedDomain": {
      "properties": {
        "id": {
          "type": "string"
        },
        "description": {
          "type": "string"
        },
        "selected": {
          "type": "boolean"
        }
      }
    },
    "accessibilityDomain": {
      "properties": {
        "id": {
          "type": "string"
        },
        "description": {
          "type": "string"
        },
        "selected": {
          "type": "boolean"
        }
      }
    },
    "availableRoomOptionsDomain": {
      "properties": {
        "bedTypes": {
          "type": "array",
          "items": {
            "$ref": "bedDomain"
          }
        },
        "accessibilityOptions": {
          "type": "array",
          "items": {
            "$ref": "accessibilityDomain"
          }
        },
        "isSmokingRoomAvailable": {
          "type": "boolean"
        },
        "isNonSmokingRoomAvailable": {
          "type": "boolean"
        }
      }
    },
    "roomPreferencesDomain": {
      "properties": {
        "primaryOccupant": {
          "$ref": "guestDomain"
        },
        "otherOccupantInfo": {
          "$ref": "occupancyInfoDomain"
        },
        "occupantSelectedRoomOptions": {
          "$ref": "roomOptionsDomain"
        },
        "availableRoomOptions": {
          "$ref": "availableRoomOptionsDomain"
        }
      }
    },
    "cancelRefundDetailsDomain": {
      "properties": {
        "condition": {
          "type": "string"
        },
        "currencyCode": {
          "type": "string"
        },
        "penaltyAmount": {
          "type": "string"
        },
        "penaltyAmountFormatted": {
          "type": "string"
        },
        "refundAmount": {
          "type": "string"
        },
        "refundAmountFormatted": {
          "type": "string"
        }
      }
    },
    "roomDomain": {
      "properties": {
        "uniqueID": {
          "type": "string"
        },
        "roomRatePlanDescription": {
          "type": "string"
        },
        "roomTypeCode": {
          "type": "string"
        },
        "ratePlanCode": {
          "type": "string"
        },
        "bookingStatus": {
          "type": "string"
        },
        "bookingStatusEnum": {
          "type": "string"
        },
        "hotelConfirmationNumber": {
          "type": "string"
        },
        "hotelCancellationId": {
          "type": "string"
        },
        "drrRateDiscountDescription": {
          "type": "string"
        },
        "orderLineNumber": {
          "type": "string"
        },
        "refundabilityStatus": {
          "type": "string"
        },
        "availableOnAllDates": {
          "type": "string"
        },
        "roomCancelLink": {
          "type": "string"
        },
        "roomChangeLink": {
          "type": "string"
        },
        "cancelRefundDetails": {
          "$ref": "cancelRefundDetailsDomain"
        },
        "totalPriceDetails": {
          "$ref": "lodgingPriceDetailsDomain"
        },
        "averagePriceDetails": {
          "$ref": "lodgingPriceDetailsDomain"
        },
        "roomPreferences": {
          "$ref": "roomPreferencesDomain"
        },
        "amenities": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "paymentAndCreditFeesDomain": {
      "properties": {
        "paymentsHotelFeesAndDepositsDisclaimer": {
          "type": "string"
        },
        "paymentsDepositRequired": {
          "type": "string"
        },
        "paymentsCreditsGDSHotelAnyRoomCancelled": {
          "type": "string"
        },
        "paymentsCreditsDAHotelAnyRoomCancelled": {
          "type": "string"
        },
        "noFeesStaticText": {
          "type": "string"
        },
        "isDirectAgency": {
          "type": "boolean"
        },
        "isGDS": {
          "type": "boolean"
        },
        "isFullyCancelled": {
          "type": "boolean"
        },
        "isAnyRoomCancelled": {
          "type": "boolean"
        },
        "isDepositRequired": {
          "type": "boolean"
        },
        "isPaymentsCreditsVisible": {
          "type": "boolean"
        }
      }
    },
    "hotelDomain": {
      "properties": {
        "uniqueID": {
          "type": "string"
        },
        "hotelId": {
          "type": "string"
        },
        "checkInDateTime": {
          "$ref": "timeDomain"
        },
        "checkOutDateTime": {
          "$ref": "timeDomain"
        },
        "startTime": {
          "$ref": "timeDomain"
        },
        "endTime": {
          "$ref": "timeDomain"
        },
        "checkInDate": {
          "type": "string"
        },
        "checkOutDate": {
          "type": "string"
        },
        "checkInDateLocalized": {
          "type": "string"
        },
        "checkOutDateLocalized": {
          "type": "string"
        },
        "numberOfNights": {
          "type": "integer"
        },
        "bookingStatus": {
          "type": "string"
        },
        "bookingStatusText": {
          "type": "string"
        },
        "bookingStatusMessage": {
          "type": "string"
        },
        "inventoryType": {
          "type": "string",
          "description": "Possible values: MERCHANT, PEGASUS, WORLDSPAN, VENERE, DIRECT_AGENCY, OPAQUE, ESCAPIA, WOTIF"
        },
        "inventorySource": {
          "type": "string"
        },
        "paymentModel": {
          "type": "string"
        },
        "inventoryVisibility": {
          "type": "string"
        },
        "orderNumber": {
          "type": "string"
        },
        "webCancelPathURL": {
          "type": "string"
        },
        "infositeURL": {
          "type": "string"
        },
        "hotelPropertyInfo": {
          "$ref": "hotelPropertyInfoDomain"
        },
        "averagePriceDetails": {
          "$ref": "lodgingPriceDetailsDomain"
        },
        "totalPriceDetails": {
          "$ref": "lodgingPriceDetailsDomain"
        },
        "rules": {
          "$ref": "lodgingRulesDomain"
        },
        "appliedCoupons": {
          "type": "array",
          "items": {
            "$ref": "couponDomain"
          }
        },
        "rooms": {
          "type": "array",
          "items": {
            "$ref": "roomDomain"
          }
        },
        "sharableItemDetailURL": {
          "type": "string"
        },
        "isFreeCancellationAvailable": {
          "type": "boolean"
        },
        "paymentsAndCreditFees": {
          "$ref": "paymentAndCreditFeesDomain"
        },
        "roomChangeLink": {
          "type": "string"
        }
      }
    },
    "confirmationNumberDomain": {
      "properties": {
        "airlineName": {
          "type": "string"
        },
        "number": {
          "type": "string"
        }
      }
    },
    "fareDomain": {
      "properties": {
        "airlineCardFee": {
          "type": "string"
        },
        "airlineCardFeeFormatted": {
          "type": "string"
        },
        "expediaServiceFee": {
          "type": "string"
        },
        "expediaServiceFeeFormatted": {
          "type": "string"
        },
        "insurance": {
          "type": "string"
        },
        "insuranceFormatted": {
          "type": "string"
        },
        "subTotal": {
          "type": "string"
        },
        "subTotalFormatted": {
          "type": "string"
        },
        "couponDiscount": {
          "type": "string"
        },
        "couponDiscountFormatted": {
          "type": "string"
        },
        "totalWithoutBookingFeeFormatted": {
          "type": "string"
        }
      }
    },
    "feeComponentDomain": {
      "properties": {
        "localizedName": {
          "type": "string"
        },
        "amount": {
          "type": "string"
        },
        "amountFormatted": {
          "type": "string"
        }
      }
    },
    "weightDomain": {
      "properties": {
        "value": {
          "type": "double"
        },
        "unit": {
          "type": "string",
          "description": "Possible value: KILOGRAM(\"kgs\")"
        }
      }
    },
    "ancillaryFeeComponentDomain": {
      "properties": {
        "quantity": {
          "type": "integer"
        },
        "weight": {
          "$ref": "weightDomain"
        },
        "addToTotal": {
          "type": "boolean"
        },
        "listOfLegsAncillaryAppliedTo": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "phoneDomain": {
      "properties": {
        "countryCode": {
          "type": "string"
        },
        "phone": {
          "type": "string"
        }
      }
    },
    "seatDomain": {
      "properties": {
        "assigned": {
          "type": "string"
        },
        "requested": {
          "type": "string"
        },
        "seatPreference": {
          "type": "string"
        },
        "seatPreferenceLocalized": {
          "type": "string"
        },
        "ticketingStatus": {
          "type": "string"
        },
        "smokingAllowed": {
          "type": "boolean"
        },
        "legIndex": {
          "type": "integer"
        },
        "segmentIndex": {
          "type": "integer"
        }
      }
    },
    "frequentFlyerPlanDomain": {
      "properties": {
        "airlineCode": {
          "type": "string"
        },
        "programCode": {
          "type": "string"
        },
        "programName": {
          "type": "string"
        },
        "membershipNumber": {
          "type": "string"
        }
      }
    },
    "passengerFlightDomain": {
      "properties": {
        "typeCode": {
          "type": "string"
        },
        "typeLocalized": {
          "type": "string"
        },
        "title": {
          "type": "string"
        },
        "firstName": {
          "type": "string"
        },
        "middleName": {
          "type": "string"
        },
        "lastName": {
          "type": "string"
        },
        "fullName": {
          "type": "string"
        },
        "age": {
          "type": "long"
        },
        "gender": {
          "type": "string"
        },
        "dateOfBirth": {
          "$ref": "confirmationNumberDomain"
        },
        "TSARedressNumber": {
          "type": "string"
        },
        "knownTravelerNumber": {
          "type": "integer"
        },
        "passportAddress": {
          "type": "string"
        },
        "passportCountryCode": {
          "type": "string"
        },
        "phoneNumbers": {
          "type": "array",
          "items": {
            "$ref": "phoneDomain"
          }
        },
        "specialAssistanceOptions": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "ticketNumbers": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "cancelledTicketNumbers": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "frequentFlyerPlans": {
          "type": "array",
          "items": {
            "$ref": "frequentFlyerPlanDomain"
          }
        },
        "seats": {
          "type": "array",
          "items": {
            "$ref": "seatDomain"
          }
        }
      }
    },
    "farePerPassengerDomain": {
      "properties": {
        "passengerIndex": {
          "type": "integer"
        },
        "passengerTypeCode": {
          "type": "string"
        },
        "passengerTypeCodeLocalized": {
          "type": "string"
        },
        "currency": {
          "type": "string"
        },
        "base": {
          "type": "string"
        },
        "baseFormatted": {
          "type": "string"
        },
        "taxes": {
          "type": "string"
        },
        "taxesFormatted": {
          "type": "string"
        },
        "fees": {
          "type": "array",
          "items": {
            "$ref": "feeComponentDomain"
          }
        },
        "ancillaryFees": {
          "type": "array",
          "items": {
            "$ref": "ancillaryFeeComponentDomain"
          }
        },
        "total": {
          "type": "string"
        },
        "totalFormatted": {
          "type": "string"
        },
        "fromToAirportCodes": {
          "type": "string"
        }
      }
    },
    "locationDomain": {
      "properties": {
        "latitude": {
          "type": "double"
        },
        "longitude": {
          "type": "double"
        },
        "name": {
          "type": "string"
        },
        "longName": {
          "type": "string"
        },
        "airportCode": {
          "type": "string"
        },
        "airportMetroCode": {
          "type": "string"
        },
        "city": {
          "type": "string"
        },
        "countryCode": {
          "type": "string"
        },
        "countrySubdivisionCode": {
          "type": "string"
        },
        "fullAddress": {
          "type": "string"
        }
      }
    },
    "flightDelaysDomain": {
      "properties": {
        "departureGateDelay": {
          "type": "string"
        },
        "arrivalGateDelay": {
          "type": "string"
        }
      }
    },
    "segmentDomain": {
      "properties": {
        "transportationType": {
          "type": "string"
        },
        "departureType": {
          "type": "string"
        },
        "departureLocation": {
          "$ref": "locationDomain"
        },
        "departureTime": {
          "$ref": "timeDomain"
        },
        "arrivalType": {
          "type": "string"
        },
        "arrivalLocation": {
          "$ref": "locationDomain"
        },
        "arrivalTime": {
          "$ref": "timeDomain"
        },
        "departureTerminal": {
          "type": "string"
        },
        "departureGate": {
          "type": "string"
        },
        "arrivalTerminal": {
          "type": "string"
        },
        "arrivalGate": {
          "type": "string"
        },
        "airlineCode": {
          "type": "string"
        },
        "externalAirlineCode": {
          "type": "string"
        },
        "airlineName": {
          "type": "string"
        },
        "operatedByAirCarrierName": {
          "type": "string"
        },
        "confirmationAirline": {
          "type": "string"
        },
        "confirmationNUmber": {
          "type": "string"
        },
        "flightNumber": {
          "type": "string"
        },
        "equipmentCode": {
          "type": "string"
        },
        "equipmentDescription": {
          "type": "string"
        },
        "layoverDuration": {
          "type": "string"
        },
        "distance": {
          "type": "long"
        },
        "distanceUnits": {
          "type": "string"
        },
        "duration": {
          "type": "string"
        },
        "formattedDuration": {
          "type": "string"
        },
        "onTimePercentage": {
          "type": "string"
        },
        "providerCode": {
          "type": "string"
        },
        "bookingCode": {
          "type": "string"
        },
        "cabinCode": {
          "type": "string"
        },
        "cabinCodeLocalized": {
          "type": "string"
        },
        "checkinAirlineName": {
          "type": "string"
        },
        "checkinAirlineCode": {
          "type": "string"
        },
        "isSeatMapAvailable": {
          "type": "boolean"
        },
        "flightIdForSeatMap": {
          "type": "string"
        },
        "delays": {
          "$ref": "flightDelaysDomain"
        },
        "status": {
          "type": "string"
        },
        "airSegmentStatusCode": {
          "type": "string"
        },
        "airOriginDestinationReferenceIndex": {
          "type": "integer"
        },
        "segmentChangeMessage": {
          "type": "string"
        },
        "segmentChangeMessageLegacy": {
          "type": "string"
        },
        "isHidden": {
          "type": "boolean"
        }
      }
    },
    "legDomain": {
      "properties": {
        "type": {
          "type": "string",
          "description": "Possible values: NONSTOP, DIRECT, ONESTOP, MULTISTOP"
        },
        "state": {
          "type": "string",
          "description": "Possible values: PRE_START_4,PRE_START_3, PRE_START_2, PRE_START_1, PRE_START_0, POST_START, IN_PROGRESS, PRE_END, POST_END_0, POST_END_1, POST_END_2, POST_END_3"
        },
        "numberOfStops": {
          "type": "integer"
        },
        "airlineLogoURL": {
          "type": "string"
        },
        "segments": {
          "type": "array",
          "items": {
            "$ref": "segmentDomain"
          }
        },
        "sharableFlightLegURL": {
          "type": "string"
        },
        "duration": {
          "type": "string"
        },
        "segmentChangeMessage": {
          "type": "string"
        }
      }
    },
    "textUrlTripleDomain": {
      "properties": {
        "text": {
          "type": "string"
        },
        "url": {
          "type": "string"
        },
        "textAndURL": {
          "type": "string"
        },
        "apiURL": {
          "type": "string"
        }
      }
    },
    "rulesDomain": {
      "properties": {
        "bookingFeeText": {
          "type": "string"
        },
        "cancellationFeeLegalText": {
          "type": "string"
        },
        "bookingFeeLegalText": {
          "type": "string"
        },
        "faresNotGuaranteedText": {
          "type": "string"
        },
        "cancelChangeIntroductionText": {
          "type": "string"
        },
        "feeChangeRefundIntroductionText": {
          "type": "string"
        },
        "refundabilityText": {
          "type": "string"
        },
        "changePenaltyText": {
          "type": "string"
        },
        "completePenaltyRules": {
          "$ref": "textUrlTripleDomain"
        },
        "bargainFairUpgradesText": {
          "type": "string"
        },
        "bargainFareStandbyText": {
          "type": "string"
        },
        "lccPartnerConfEmailsText": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "insuranceTerms": {
          "$ref": "textUrlTripleDomain"
        },
        "additionalAirlineFees": {
          "$ref": "textUrlTripleDomain"
        },
        "airlineLiabilityLimitations": {
          "$ref": "textUrlTripleDomain"
        },
        "airlineLiabilityLimitationsEnglishOnlyCaveatText": {
          "type": "string"
        },
        "quebecResidentsIndemnityFundText": {
          "type": "string"
        },
        "ticketingAgencyText": {
          "type": "string"
        },
        "flightRulesLCCImportantMessage": {
          "$ref": "textUrlTripleDomain"
        },
        "manageMyFlightRulesLCCImportantMessage": {
          "$ref": "textUrlTripleDomain"
        },
        "flightRulesLCCPrecheckinAdvice": {
          "$ref": "textUrlTripleDomain"
        },
        "flightRulesLCCServiceLite": {
          "$ref": "textUrlTripleDomain"
        },
        "firstCharterImportantMessage": {
          "$ref": "textUrlTripleDomain"
        },
        "secondCharterImportantMessage": {
          "$ref": "textUrlTripleDomain"
        },
        "splitTicketingMessage": {
          "type": "string"
        },
        "airlineCheckInInstructionText": {
          "type": "string"
        },
        "travelingToUSText": {
          "type": "string"
        },
        "internationalPassportNoteText": {
          "type": "string"
        },
        "onlineCheckinReminderText": {
          "type": "string"
        },
        "lccPartnerConfEmailsForSplitTicketText": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "flightDomain": {
      "properties": {
        "uniqueID": {
          "type": "string"
        },
        "bookingStatus": {
          "type": "string"
        },
        "bookingStatusText": {
          "type": "string"
        },
        "bookingStatusMessage": {
          "type": "string"
        },
        "ticketingStatus": {
          "type": "string"
        },
        "orderNumber": {
          "type": "string"
        },
        "webCancelPathURL": {
          "type": "string"
        },
        "updateFrequentFlyerPathURL": {
          "type": "string"
        },
        "orderLineNumber": {
          "type": "string"
        },
        "confirmationNumbers": {
          "$ref": "confirmationNumberDomain"
        },
        "expediaBookingId": {
          "type": "string"
        },
        "paymentModel": {
          "type": "string"
        },
        "fareType": {
          "type": "string"
        },
        "flightType": {
          "type": "string"
        },
        "isInternational": {
          "type": "boolean"
        },
        "fareTotal": {
          "$ref": "fareDomain"
        },
        "farePerPassenger": {
          "type": "array",
          "items": {
            "$ref": "farePerPassengerDomain"
          }
        },
        "isSplitTicket": {
          "type": "boolean"
        },
        "fulfillmentMethod": {
          "type": "string"
        },
        "passengers": {
          "type": "array",
          "items": {
            "$ref": "passengerFlightDomain"
          }
        },
        "legs": {
          "type": "array",
          "items": {
            "$ref": "legDomain"
          }
        },
        "rules": {
          "$ref": "rulesDomain"
        },
        "sharableItemDetailURL": {
          "type": "string"
        },
        "airRecordLocator": {
          "type": "string"
        },
        "startDate": {
          "type": "string"
        },
        "endDate": {
          "type": "string"
        },
        "isSeatMapAvailable": {
          "type": "boolean"
        },
        "ticketingTime": {
          "$ref": "timeDomain"
        },
        "webChangePathURL": {
          "type": "string"
        },
        "bookingProvider": {
          "type": "string"
        },
        "hasTrainTransfer": {
          "type": "boolean"
        },
        "ticketingAirCarrierNames": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "isLccOrCharter": {
          "type": "boolean"
        }
      }
    },
    "carTravelerDomain": {
      "properties": {
        "firstName": {
          "type": "string"
        },
        "middleName": {
          "type": "string"
        },
        "lastName": {
          "type": "string"
        }
      }
    },
    "carLocationDomain": {
      "properties": {
        "locationType": {
          "type": "string"
        },
        "locationDescription": {
          "type": "string"
        },
        "airportInstructions": {
          "type": "string"
        },
        "latitude": {
          "type": "double"
        },
        "longitude": {
          "type": "double"
        },
        "addressLine1": {
          "type": "string"
        },
        "addressLine2": {
          "type": "string"
        },
        "addressLine3": {
          "type": "string"
        },
        "addressLine4": {
          "type": "string"
        },
        "addressLine5": {
          "type": "string"
        },
        "cityName": {
          "type": "string"
        },
        "provinceStateName": {
          "type": "string"
        },
        "postalCode": {
          "type": "string"
        },
        "countryCode": {
          "type": "string"
        },
        "locationCode": {
          "type": "boolean"
        }
      }
    },
    "carOpenHoursDomain": {
      "properties": {
        "openingDateTime": {
          "$ref": "timeDomain"
        },
        "closingDateTime": {
          "$ref": "timeDomain"
        }
      }
    },
    "carVendorDomain": {
      "properties": {
        "longName": {
          "type": "string"
        },
        "code": {
          "type": "string"
        },
        "shortName": {
          "type": "string"
        },
        "logoURL": {
          "type": "double"
        },
        "phoneNumber": {
          "type": "double"
        },
        "localPhoneNumber": {
          "type": "string"
        }
      }
    },
    "carDomainRulesDomain": {
      "properties": {
        "ruleType": {
          "type": "string"
        },
        "ruleName": {
          "type": "string"
        }
      }
    },
    "carTypeAttributesDomain": {
      "properties": {
        "vehicleTypeLocalized": {
          "type": "string"
        },
        "fuelType": {
          "type": "string"
        },
        "fuelTypeLocalized": {
          "type": "string"
        },
        "airConditioningType": {
          "type": "string"
        },
        "airConditioningTypeLocalized": {
          "type": "string"
        },
        "transmissionType": {
          "type": "string"
        },
        "transmissionTypeLocalized": {
          "type": "string"
        },
        "wheelDriveType": {
          "type": "string"
        },
        "wheelDriveTypeLocalized": {
          "type": "string"
        }
      }
    },
    "carDomain": {
      "properties": {
        "uniqueID": {
          "type": "string"
        },
        "bookingStatus": {
          "type": "string"
        },
        "bookingStatusText": {
          "type": "string"
        },
        "bookingStatusMessage": {
          "type": "string"
        },
        "orderNumber": {
          "type": "long"
        },
        "orderLineNumber": {
          "type": "string"
        },
        "paymentModel": {
          "type": "string"
        },
        "reservationGuaranteePolicy": {
          "type": "string"
        },
        "price": {
          "$ref": "priceDomain"
        },
        "confirmationNumber": {
          "type": "string"
        },
        "webCancelPathURL": {
          "type": "string"
        },
        "webGetCarCancelDetailPathURL": {
          "type": "string"
        },
        "webCarRulesPageURL": {
          "type": "string"
        },
        "bookingId": {
          "type": "string"
        },
        "travelers": {
          "$ref": "carTravelerDomain"
        },
        "pickupTime": {
          "$ref": "timeDomain"
        },
        "dropOffTime": {
          "$ref": "timeDomain"
        },
        "pickupLocation": {
          "$ref": "carLocationDomain"
        },
        "dropOffLocation": {
          "$ref": "carLocationDomain"
        },
        "pickupDateOpenHoursSummaryString": {
          "type": "string"
        },
        "passengers": {
          "type": "array",
          "items": {
            "$ref": "carOpenHoursDomain"
          }
        },
        "dropOffDateOpenHoursSummaryString": {
          "type": "string"
        },
        "dropOffDateOpenHours": {
          "type": "array",
          "items": {
            "$ref": "carOpenHoursDomain"
          }
        },
        "carVendor": {
          "$ref": "carVendorDomain"
        },
        "carCategoryImageURL": {
          "type": "string"
        },
        "carCategory": {
          "type": "string"
        },
        "carCategoryLocalized": {
          "type": "string"
        },
        "carType": {
          "type": "string"
        },
        "carTypeLocalized": {
          "type": "string"
        },
        "carTypeAttributes": {
          "type": "array",
          "items": {
            "$ref": "carTypeAttributesDomain"
          }
        },
        "specialEquipmentRequests": {
          "type": "string"
        },
        "specialEquipmentRequestCaveatText": {
          "type": "string"
        },
        "rules": {
          "$ref": "carDomainRulesDomain"
        },
        "sharableItemDetailURL": {
          "type": "string"
        }
      }
    },
    "vendorLocationDomain": {
      "properties": {
        "name1": {
          "type": "string"
        },
        "name2": {
          "type": "string"
        },
        "latitude": {
          "type": "double"
        },
        "longitude": {
          "type": "double"
        }
      }
    },
    "activityTravelerFieldsDomain": {
      "properties": {
        "isRedeemer": {
          "type": "boolean"
        },
        "firstName": {
          "type": "string"
        },
        "middleName": {
          "type": "string"
        },
        "lastName": {
          "type": "string"
        },
        "fullName": {
          "type": "long"
        },
        "age": {
          "type": "long"
        },
        "gender": {
          "type": "string"
        },
        "nationalityCountry": {
          "type": "string"
        }
      }
    },
    "phoneNumberDomain": {
      "properties": {
        "formatted": {
          "type": "string"
        },
        "costText": {
          "type": "string"
        },
        "useText": {
          "type": "string"
        }
      }
    },
    "hoursOfOperationDomain": {
      "properties": {
        "day": {
          "type": "string"
        },
        "startTime": {
          "type": "string"
        },
        "endTime": {
          "type": "string"
        }
      }
    },
    "vendorCustomerServiceOfficeDomain": {
      "properties": {
        "name": {
          "type": "string"
        },
        "emailAddress": {
          "type": "string"
        },
        "phoneCountryCode": {
          "type": "string"
        },
        "phoneNumber": {
          "type": "string"
        },
        "phoneNumbers": {
          "type": "array",
          "items": {
            "$ref": "phoneNumberDomain"
          }
        },
        "hoursOfOperationText": {
          "type": "string"
        },
        "hoursOfOperation": {
          "type": "array",
          "items": {
            "$ref": "hoursOfOperationDomain"
          }
        }
      }
    },
    "termsAndConditionsDomain": {
      "properties": {
        "instructions": {
          "type": "string"
        },
        "knowBeforeYouGo": {
          "type": "string"
        },
        "howToRedeem": {
          "type": "string"
        },
        "terms": {
          "type": "string"
        },
        "cancellationAddendum": {
          "type": "string"
        },
        "generalDisclaimer": {
          "type": "string"
        },
        "quebecResidentsIndemnityFund": {
          "type": "string"
        }
      }
    },
    "activityVoucherDomain": {
      "properties": {
        "id": {
          "type": "string"
        },
        "barcodeNumber": {
          "type": "string"
        },
        "securityCode": {
          "type": "string"
        },
        "barcodeImageURL": {
          "type": "string"
        },
        "validForRedemerTypeLocalized": {
          "type": "string"
        },
        "validForRedemerTypeEnglish": {
          "type": "string"
        },
        "supplierReferenceCode": {
          "type": "string"
        }
      }
    },
    "pricePerPassengerDomain": {
      "properties": {
        "keyForCategory": {
          "type": "string"
        },
        "numberOfPassengers": {
          "type": "integer"
        },
        "totalBasePrice": {
          "$ref": "priceDomain"
        },
        "perPassengerBasePrice": {
          "$ref": "priceDomain"
        }
      }
    },
    "localisePriceAndPassengerCountDomain": {
      "properties": {
        "totalBasePriceForSorting": {
          "$ref": "priceDomain"
        },
        "localisedPassengerTypeAndCount": {
          "type": "string"
        },
        "localisedPrice": {
          "type": "string"
        }
      }
    },
    "activityFareDomain": {
      "properties": {
        "pricePerCategory": {
          "type": "string"
        },
        "localisedPriceAndPassengerCount": {
          "type": "array",
          "items": {
            "$ref": "localisePriceAndPassengerCountDomain"
          }
        }
      }
    },
    "activityDomain": {
      "properties": {
        "uniqueID": {
          "type": "string"
        },
        "bookingStatus": {
          "type": "string"
        },
        "bookingStatusText": {
          "type": "string"
        },
        "bookingStatusMessage": {
          "type": "string"
        },
        "bookingId": {
          "type": "long"
        },
        "supplierReferenceNumber": {
          "type": "string"
        },
        "bookingDate": {
          "$ref": "timeDomain"
        },
        "startTime": {
          "$ref": "timeDomain"
        },
        "endTime": {
          "$ref": "timeDomain"
        },
        "paymentModel": {
          "type": "string"
        },
        "price": {
          "$ref": "activityFareDomain"
        },
        "activityCategoryID": {
          "type": "long"
        },
        "activityId": {
          "type": "long"
        },
        "activityTitle": {
          "type": "string"
        },
        "activityDescription": {
          "type": "string"
        },
        "activityItemId": {
          "type": "long"
        },
        "activityItemTitle": {
          "type": "string"
        },
        "activityItemDescription": {
          "type": "string"
        },
        "activityItemTitleEnglish": {
          "type": "string"
        },
        "activityDetailsURL": {
          "type": "string"
        },
        "activityLocation": {
          "$ref": "vendorLocationDomain"
        },
        "redemptionLocations": {
          "type": "array",
          "items": {
            "$ref": "vendorLocationDomain"
          }
        },
        "placeId": {
          "type": "long"
        },
        "travelerCount": {
          "type": "long"
        },
        "travelerCountDescription": {
          "type": "string"
        },
        "travelers": {
          "type": "array",
          "items": {
            "$ref": "activityTravelerFieldsDomain"
          }
        },
        "vendorName": {
          "type": "string"
        },
        "vendorAccountingId": {
          "type": "long"
        },
        "vendorCustomerServiceEmail": {
          "type": "string"
        },
        "vendorCustomerServiceOffices": {
          "type": "array",
          "items": {
            "$ref": "vendorCustomerServiceOfficeDomain"
          }
        },
        "termsAndConditions": {
          "$ref": "termsAndConditionsDomain"
        },
        "voucherPrintURL": {
          "type": "string"
        },
        "vouchers": {
          "type": "array",
          "items": {
            "$ref": "activityVoucherDomain"
          }
        },
        "sharableItemDetailURL": {
          "type": "string"
        },
        "webGetLXCancelDetailPathURL": {
          "type": "string"
        }
      }
    },
    "packagePriceDomain": {
      "properties": {
        "currency": {
          "type": "string"
        },
        "subTotal": {
          "type": "string"
        },
        "subTotalFormatted": {
          "type": "string"
        },
        "taxesAndFees": {
          "type": "string"
        },
        "taxesAndFeesFormatted": {
          "type": "string"
        },
        "insurance": {
          "type": "string"
        },
        "insuranceFormatted": {
          "type": "string"
        },
        "coupon": {
          "type": "string"
        },
        "couponFormatted": {
          "type": "string"
        },
        "obfee": {
          "type": "string"
        },
        "obfeeFormatted": {
          "type": "string"
        },
        "total": {
          "type": "string"
        },
        "totalFormatted": {
          "type": "string"
        },
        "savings": {
          "type": "string"
        },
        "savingsFormatted": {
          "type": "string"
        },
        "bookingFee": {
          "type": "string"
        },
        "bookingFeeFormatted": {
          "type": "string"
        }
      }
    },
    "packageDomain": {
      "properties": {
        "uniqueID": {
          "type": "string"
        },
        "bookingStatus": {
          "type": "string"
        },
        "orderNumber": {
          "type": "string"
        },
        "orderLineNumber": {
          "type": "string"
        },
        "isChangeable": {
          "type": "boolean"
        },
        "isLegacy": {
          "type": "boolean"
        },
        "price": {
          "$ref": "packagePriceDomain"
        },
        "flights": {
          "$ref": "flightDomain"
        },
        "hotels": {
          "$ref": "hotelDomain"
        },
        "activities": {
          "$ref": "activityDomain"
        },
        "cars": {
          "$ref": "carDomain"
        },
        "startDate": {
          "type": "string"
        },
        "endDate": {
          "type": "string"
        },
        "startTime": {
          "$ref": "timeDomain"
        },
        "endTime": {
          "$ref": "timeDomain"
        }
      }
    },
    "generalComponentDomain": {
      "properties": {
        "comment": {
          "type": "string"
        },
        "startDate": {
          "type": "string",
          "format": "date"
        },
        "endDate": {
          "type": "string",
          "format": "date"
        },
        "bookingStatus": {
          "type": "string"
        }
      }
    },
    "promotionDomain": {
      "properties": {
        "promotionId": {
          "type": "integer"
        },
        "promotionCode": {
          "type": "string"
        },
        "campaignId": {
          "type": "integer"
        },
        "name": {
          "type": "string"
        },
        "cruiseCardName": {
          "type": "string"
        },
        "fullDescription": {
          "type": "string"
        },
        "shortDescription": {
          "type": "string"
        },
        "termsAndConditions": {
          "type": "string"
        },
        "rank": {
          "type": "integer"
        }
      }
    },
    "passengerCruiseDomain": {
      "properties": {
        "passengerNumber": {
          "type": "integer"
        },
        "titleCode": {
          "type": "string"
        },
        "firstName": {
          "type": "string"
        },
        "middleName": {
          "type": "string"
        },
        "lastName": {
          "type": "string"
        },
        "birthDate": {
          "type": "string"
        },
        "gender": {
          "type": "string"
        },
        "citizenship": {
          "type": "string"
        }
      }
    },
    "pricingSummaryDomain": {
      "properties": {
        "baseAmount": {
          "type": "double"
        },
        "taxesAndFees": {
          "type": "double"
        },
        "totalAmount": {
          "type": "double"
        }
      }
    },
    "paymentHistoryDomain": {
      "properties": {
        "amountPaid": {
          "type": "double"
        },
        "paymentPending": {
          "type": "double"
        },
        "totalAmountReceivedInd": {
          "type": "string"
        },
        "currency": {
          "type": "string"
        },
        "remainingBalance": {
          "type": "double"
        },
        "finalPaymentDueDate": {
          "type": "string"
        }
      }
    },
    "cruiseDomain": {
      "properties": {
        "bookingStatus": {
          "type": "string"
        },
        "invoiceNumber": {
          "type": "string"
        },
        "cruiseLineName": {
          "type": "string"
        },
        "shipName": {
          "type": "string"
        },
        "departureDate": {
          "type": "string"
        },
        "returnDate": {
          "type": "string"
        },
        "promotions": {
          "type": "array",
          "items": {
            "$ref": "promotionDomain"
          }
        },
        "pricingSummary": {
          "$ref": "pricingSummaryDomain"
        },
        "cruiseLineBkgConfNumber": {
          "type": "string"
        },
        "adultPassengers": {
          "type": "array",
          "items": {
            "$ref": "passengerCruiseDomain"
          }
        },
        "childPassengers": {
          "type": "array",
          "items": {
            "$ref": "passengerCruiseDomain"
          }
        },
        "cabinDetails": {
          "type": "string"
        },
        "email": {
          "type": "string"
        },
        "customerCareNumber": {
          "type": "string"
        },
        "rulesAndRestrictionsLink": {
          "type": "string"
        },
        "cruiseLineWebsiteLink": {
          "type": "string"
        },
        "paymentHistory": {
          "$ref": "paymentHistoryDomain"
        }
      }
    },
    "simplifiedTripDomain": {
      "properties": {
        "levelOfDetail": {
          "type": "string"
        },
        "tripId": {
          "type": "string"
        },
        "apiDetailsURL": {
          "type": "string"
        },
        "webDetailsURL": {
          "type": "string"
        },
        "tripNumber": {
          "type": "long"
        },
        "title": {
          "type": "string"
        },
        "description": {
          "type": "string"
        },
        "updateTripNameDescPathURL": {
          "type": "string"
        },
        "startTime": {
          "$ref": "timeDomain"
        },
        "endTime": {
          "$ref": "timeDomain"
        },
        "tripCreatedTime": {
          "$ref": "timeDomain"
        },
        "tripUpdatedTime": {
          "$ref": "timeDomain"
        },
        "tripCacheUpdatedTime": {
          "$ref": "timeDomain"
        },
        "startDate": {
          "type": "string"
        },
        "endDate": {
          "type": "string"
        },
        "startDateLocalized": {
          "type": "string"
        },
        "endDateLocalized": {
          "type": "string"
        },
        "bookingStatus": {
          "type": "string"
        },
        "timePeriod": {
          "type": "string"
        },
        "rewards": {
          "$ref": "rewardsDomain"
        },
        "sharableDetailsURL": {
          "type": "string"
        },
        "customerSupport": {
          "$ref": "customerSupportDomain"
        },
        "isBookedUsingForeignCurrency": {
          "type": "boolean"
        },
        "hotels": {
          "type": "array",
          "items": {
            "$ref": "hotelDomain"
          }
        },
        "flights": {
          "type": "array",
          "items": {
            "$ref": "flightDomain"
          }
        },
        "cars": {
          "type": "array",
          "items": {
            "$ref": "carDomain"
          }
        },
        "activities": {
          "type": "array",
          "items": {
            "$ref": "activityDomain"
          }
        },
        "packages": {
          "type": "array",
          "items": {
            "$ref": "packageDomain"
          }
        },
        "insurance": {
          "type": "array",
          "items": {
            "$ref": "generalComponentDomain"
          }
        },
        "cruises": {
          "type": "array",
          "items": {
            "$ref": "cruiseDomain"
          }
        },
        "externalCruises": {
          "type": "array",
          "items": {
            "$ref": "cruiseDomain"
          }
        },
        "trains": {
          "type": "array",
          "items": {
            "$ref": "generalComponentDomain"
          }
        },
        "readTripError": {
          "$ref": "boolean"
        }
      }
    },
    "productTypeDomain": {
      "properties": {
        "m_productType": {
          "type": "string"
        },
        "travelocityType": {
          "type": "string"
        }
      }
    },
    "userErrorMessageDomain": {
      "properties": {
        "hasPageLevelError": {
          "type": "boolean"
        },
        "hasModuleLevelError": {
          "type": "boolean"
        },
        "pageLevelErrorMessage": {
          "type": "string"
        },
        "moduleLevelErrorMessage": {
          "type": "string"
        },
        "moduleName": {
          "type": "string"
        },
        "errorKey": {
          "type": "string"
        }
      }
    },
    "priceChangeResponseDomain": {
      "properties": {
        "priceIncreased": {
          "type": "boolean"
        },
        "previousTotalPrice": {
          "$ref": "priceDomain"
        },
        "previousTotal": {
          "type": "string"
        },
        "previousTotalFormatted": {
          "type": "string"
        },
        "newTotalPrice": {
          "$ref": "priceDomain"
        },
        "newTotal": {
          "type": "string"
        },
        "newTotalFormatted": {
          "type": "string"
        },
        "productType": {
          "$ref": "productTypeDomain"
        },
        "rateInfo": {
          "$ref": "lodgingPriceDetailsDomain"
        }
      }
    },
    "changeErrorResponseDomain": {
      "properties": {
        "serviceErrorCode": {
          "type": "string"
        },
        "userErrorMessage": {
          "$ref": "userErrorMessageDomain"
        },
        "priceChangeResponse": {
          "$ref": "priceChangeResponseDomain"
        }
      }
    },
    "errorDomain": {
      "properties": {
        "errorCode": {
          "type": "integer"
        },
        "message": {
          "type": "string"
        },
        "stackTrace": {
          "type": "string"
        },
        "errorCategory": {
          "type": "string"
        },
        "errorType": {
          "type": "string"
        },
        "fields": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "changeErrorResponse": {
          "$ref": "changeErrorResponseDomain"
        }
      }
    },
    "flightSearchResponse": {
      "properties": {
        "legs": {
          "type": "array",
          "items": {
            "$ref": "flightLegJson"
          }
        },
        "offers": {
          "type": "array",
          "items": {
            "$ref": "flightOfferJson"
          }
        },
        "errors": {
          "type": "array",
          "items": {
            "$ref": "mobileError"
          }
        },
        "searchCities": {
          "type": "array",
          "items": {
            "$ref": "searchCityJson"
          }
        },
        "obFeesDetails": {
          "type": "string"
        },
        "activityId": {
          "type": "string"
        },
        "percentDelaysCancellationsURL": {
          "type": "string"
        }
      }
    },

    "cardFee": {
      "properties": {
        "tripId": {
          "type": "string",
          "description": "The trip id for the trip that this fee belongs to."
        },
        "feePrice": {
          "$ref": "mobilePrice",
          "description": "The credit card fee."
        },
        "tripTotalPrice": {
          "$ref": "mobilePrice",
          "description": "The new trip total including the credit card fee"
        }
      }
    },

    "apiCreateTripResponse": {
      "properties": {
        "newTrip": {
          "$ref": "apiNewTrip"
        },
        "passengerCategories": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "totalPrice": {
          "$ref": "mobilePrice"
        },
        "couponDiscount": {
          "$ref": "mobilePrice"
        },
        "details": {
          "$ref": "flightDetailJsonResponse"
        },
        "rules": {
          "$ref": "flightDetailedRulesJson"
        },
        "validFormsOfPayment": {
          "type": "array",
          "items": {
            "$ref": "apiPaymentOptionJson"
          }
        },
        "rewardsPoints": {
          "type": "boolean"
        },
        "isCustomerTitleRequired": {
          "type": "string"
        },
        "expediaRewards": {
          "$ref": "expediaRewardsForTripJson"
        },
        "rewards": {
          "$ref": "rewardsForTripJson"
        },
        "availableInsuranceProducts": {
          "type": "array",
          "items": {
            "$ref": "insurance"
          }
        },
        "selectedInsuranceProduct": {
          "$ref": "insurance"
        },
        "coupon": {
          "$ref": "mobileCoupon"
        },
        "activityId": {
          "type": "string"
        },
        "tealeafTransactionId": {
          "type": "string"
        },
        "guestUserPromoEmailOptInStatus": {
          "type": "string"
        }
      }
    },
    "flightDetailJsonResponse": {
      "properties": {
        "offer": {
          "$ref": "flightOfferJson"
        },
        "productKey": {
          "type": "string"
        },
        "flightRules": {
          "type": "array",
          "items": {
            "$ref": "flightRulesJson"
          }
        },
        "oldOffer": {
          "$ref": "flightOfferJson"
        },
        "priceChangeAmount": {
          "type": "string"
        },
        "changedPrice": {
          "$ref": "mobilePrice"
        },
        "obFeeTotalAmount": {
          "type": "string"
        },
        "obFeePrice": {
          "$ref": "mobilePrice"
        },
        "legs": {
          "type": "array",
          "items": {
            "$ref": "flightLegJson"
          }
        }
      }
    },
    "flightCreateTripForPartnerResponse": {
      "properties": {
        "offer": {
          "$ref": "flightOfferJson"
        },
        "productKey": {
          "type": "string"
        },
        "flightRules": {
          "type": "array",
          "items": {
            "$ref": "flightRulesJson"
          }
        },
        "oldOffer": {
          "$ref": "flightOfferJson"
        },
        "priceChangeAmount": {
          "type": "string"
        },
        "changedPrice": {
          "$ref": "mobilePrice"
        },
        "obFeeTotalAmount": {
          "type": "string"
        },
        "obFeePrice": {
          "$ref": "mobilePrice"
        },
        "legs": {
          "type": "array",
          "items": {
            "$ref": "flightLegJson"
          }
        }
      }
    },
    "imageJsonResponse": {
      "properties": {
        "imageUrl": {
          "type": "string"
        },
        "cacheKey": {
          "type": "string"
        }
      }
    },
    "airportDropDownDataResponse": {
      "properties": {
        "airport": {
          "type": "array",
          "items": {
            "$ref": "airport"
          }
        },
        "routes": {
          "type": "array",
          "items": {
            "$ref": "route"
          }
        }
      }
    },
    "apiCheckoutResponseFlightOkResponse": {
      "properties": {
        "newTrip": {
          "$ref": "apiNewTripJson"
        },
        "orderId": {
          "type": "string"
        },
        "currencyCode": {
          "type": "string"
        },
        "totalCharges": {
          "type": "string"
        },
        "totalChargesPrice": {
          "$ref": "mobilePrice"
        },
        "errors": {
          "type": "array",
          "items": {
            "$ref": "mobileError"
          }
        },
        "activityId": {
          "type": "string"
        },
        "debugTealeafInfo": {
          "type": "string"
        },
        "mobileAirAttachQualifier": {
          "$ref": "mobileAirAttachQualifier"
        },
        "flightAggregatedResponse": {
          "$ref": "flightAggregatedResponse"
        }
      }
    },
    "apiCheckoutResponseFlightPriceChangeResponse": {
      "properties": {
        "errors": {
          "type": "array",
          "items": {
            "$ref": "mobileError"
          }
        },
        "flightDetailResponse": {
          "$ref": "flightDetailJsonResponse"
        }
      }
    },
    "jsonOpaqueHotelSearchResponse": {
      "properties": {
        "totalHotelCount": {
          "type": "integer"
        },
        "opaqueHotelList": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/jsonOpaqueHotel"
          }
        },
        "opaqueNeighborhoodList": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/jsonOpaqueNeighborhood"
          }
        },
        "errorMessage": {
          "$ref": "#/definitions/mobileError"
        }
      }
    },
    "hotelSearchResponse": {
      "properties": {
        "numberOfRoomsRequested": {
          "type": "string"
        },
        "filterUnavailableHotelsRequested": {
          "type": "string"
        },
        "totalHotelCount": {
          "type": "string"
        },
        "availableHotelCount": {
          "type": "string"
        },
        "searchRegionId": {
          "type": "string"
        },
        "hotelList": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/jsonHotel"
          }
        },
        "opaqueHotelResponse": {
          "$ref": "#/definitions/jsonOpaqueHotelSearchResponse"
        },
        "allNeighborhoodsInSearchRegion": {
          "type": "string"
        },
        "filteredSearchMatchedNoHotels": {
          "type": "string"
        },
        "amenityFilterOptions": {
          "type": "string"
        },
        "starOptions": {
          "type": "string"
        },
        "priceOptions": {
          "type": "string"
        }
      }
    },
    "hotelAmbiguousResponse": {
      "properties": {
        "numberOfMatches": {
          "type": "integer"
        },
        "cityList": {
          "type": "array",
          "items": {
            "$ref": "jsonAmbiguousCityMatch"
          }
        }
      }
    },
    "jsonGetOfferResponse": {
      "properties": {
        "hotelTagline": {
          "type": "string"
        },
        "checkInDate": {
          "type": "string"
        },
        "checkOutDate": {
          "type": "string"
        },
        "numberOfRoomsRequested": {
          "type": "integer"
        },
        "numberOfNights": {
          "type": "string"
        },
        "tripAdvisorRating": {
          "type": "string"
        },
        "timeZoneUTCOffsetMinutes": {
          "type": "long"
        },
        "checkInInstructions": {
          "type": "string"
        },
        "shortDescription": {
          "type": "string"
        },
        "hotelRoomResponse": {
          "type": "array",
          "items": {
            "$ref": "jsonHotelOffer"
          }
        },
        "signedMapUrl": {
          "type": "string"
        },
        "airAttachExpirationTimeSeconds": {
          "type": "string"
        },
        "errors": {
          "$ref": "mobileError"
        },
        "hotelId": {
          "type": "string"
        },
        "hotelName": {
          "type": "string"
        },
        "localizedHotelName": {
          "type": "string"
        },
        "nonLocalizedHotelName": {
          "type": "string"
        },
        "hotelAddress": {
          "type": "string"
        },
        "hotelCity": {
          "type": "string"
        },
        "hotelStateProvince": {
          "type": "string"
        },
        "hotelCountry": {
          "type": "string"
        },
        "latitude": {
          "type": "string"
        },
        "longitude": {
          "type": "string"
        },
        "longDescription": {
          "type": "string"
        },
        "photos": {
          "type": "array",
          "items": {
            "$ref": "jsonPhoto"
          }
        },
        "hotelAmenities": {
          "type": "array",
          "items": {
            "$ref": "jsonValueAdd"
          }
        },
        "hotelStarRating": {
          "type": "string"
        },
        "hotelStarRatingCssClassName": {
          "type": "string"
        },
        "hotelGuestRating": {
          "type": "string"
        },
        "totalRecommendations": {
          "type": "string"
        },
        "totalReviews": {
          "type": "string"
        },
        "percentRecommended": {
          "type": "string"
        },
        "telesalesNumber": {
          "type": "string"
        },
        "deskTopOverrideNumber": {
          "type": "boolean"
        },
        "hotelRenovationText": {
          "$ref": "textSection"
        },
        "hotelMandatoryFeesText": {
          "$ref": "textSection"
        },
        "hotelOverviewText": {
          "$ref": "textSection"
        },
        "firstHotelOverview": {
          "type": "string"
        },
        "hotelAmenitiesText": {
          "$ref": "textSection"
        },
        "hotelPoliciesText": {
          "$ref": "textSection"
        },
        "hotelFeesText": {
          "$ref": "textSection"
        },
        "isVipAccess": {
          "type": "boolean"
        },
        "locationDescription": {
          "type": "string"
        },
        "locationId": {
          "type": "string"
        },
        "regions": {
          "type": "array",
          "items": {
            "$ref": "region"
          }
        },
        "allowedToDisplayRatingAsStars": {
          "type": "string"
        }
      }
    },
    "jsonCreateTripResponse": {
      "properties": {
        "error": {
          "type": "array",
          "items": {
            "$ref": "mobileError"
          }
        },
        "warnings": {
          "type": "array",
          "items": {
            "$ref": "mobileError"
          }
        },
        "tripId": {
          "type": "string"
        },
        "userId": {
          "type": "string"
        },
        "originalHotelProductResponse": {
          "$ref": "jsonGetProductResponse"
        },
        "newHotelProductResponse": {
          "$ref": "jsonGetProductResponse"
        },
        "airAttachedProductResponse": {
          "$ref": "jsonGetProductResponse"
        },
        "loyaltyPoints": {
          "$ref": "jsonLoyaltyPoints"
        },
        "expediaRewards": {
          "$ref": "expediaRewardsForTripJson"
        },
        "rewards": {
          "$ref": "rewardsForTripJson"
        },
        "coupon": {
          "$ref": "mobileCoupon"
        },
        "userCoupons": {
          "type": "array",
          "items": {
            "$ref": "mobileCoupon"
          }
        },
        "tealeafTransactionId": {
          "type": "string"
        },
        "validFormsOfPayment": {
          "type": "array",
          "items": {
            "$ref": "apiPaymentOptionJson"
          }
        },
        "guestUserPromoEmailOptInStatus": {
          "type": "string"
        },
        "pointsDetails": {
          "type": "array",
          "items": {
            "$ref": "pointsDetailJson"
          }
        }
      }
    },
    "apiCheckoutResponseHotelResponse": {
      "properties": {
        "newTrip": {
          "$ref": "apiNewTripJson"
        },
        "orderId": {
          "type": "string"
        },
        "currencyCode": {
          "type": "string"
        },
        "totalCharges": {
          "type": "string"
        },
        "totalChargesPrice": {
          "$ref": "mobilePrice"
        },
        "errors": {
          "type": "array",
          "items": {
            "$ref": "mobileError"
          }
        },
        "activityId": {
          "type": "string"
        },
        "checkoutResponse": {
          "$ref": "checkout"
        },
        "debugTealeafInfo": {
          "type": "string"
        }
      }
    },
    "apiFieldsResponse": {
      "properties": {
        "paymentFields": {
          "type": "string"
        }
      }
    },
    "hotelCancelEnquiryResponse": {
      "properties": {
        "errors": {
          "type": "array",
          "items": {
            "$ref": "mobileError"
          }
        },
        "amountPaid": {
          "type": "integer"
        },
        "amountRefund": {
          "type": "integer"
        },
        "hotelRules": {
          "$ref": "hotelCancelRules"
        }
      }
    },
    "hotelCancelEnquiryV2Response": {
      "properties": {
        "errors": {
          "type": "array",
          "items": {
            "$ref": "mobileError"
          }
        },
        "cancelEnquiryInfoList": {
          "type": "array",
          "items": {
            "$ref": "hotelCancelEnquiryInfo"
          }
        },
        "activityId": {
          "type": "string"
        }
      }
    },
    "jsonGetProductResponse": {
      "properties": {
        "errors": {
          "type": "array",
          "items": {
            "$ref": "mobileError"
          }
        },
        "checkInDate": {
          "type": "string"
        },
        "checkOutDate": {
          "type": "string"
        },
        "adultCount": {
          "type": "integer"
        },
        "numberOfNights": {
          "type": "string"
        },
        "numberOfRooms": {
          "type": "string"
        },
        "hotelId": {
          "type": "string"
        },
        "hotelName": {
          "type": "string"
        },
        "localizedHotelName": {
          "type": "string"
        },
        "nonLocalizedHotelName": {
          "type": "string"
        },
        "largeThumbnailUrl": {
          "type": "string"
        },
        "thumbnailUrl": {
          "type": "string"
        },
        "hotelAddress": {
          "type": "string"
        },
        "latitude": {
          "type": "string"
        },
        "longitude": {
          "type": "string"
        },
        "hotelCity": {
          "type": "string"
        },
        "hotelStateProvince": {
          "type": "string"
        },
        "hotelCountry": {
          "type": "string"
        },
        "hotelStarRating": {
          "type": "string"
        },
        "shortDescription": {
          "type": "string"
        },
        "hotelRoomResponse": {
          "$ref": "jsonHotelOffer"
        },
        "supplierType": {
          "type": "string"
        },
        "accessibilityAmenities": {
          "type": "array",
          "items": {
            "type": "jsonValueAdd"
          }
        },
        "isVipAccess": {
          "type": "boolean"
        },
        "tealeafTransactionId": {
          "type": "string"
        },
        "bigImageUrl": {
          "type": "string"
        }
      }
    },
    "jsonOpaqueGetProductResponse": {
      "properties": {
        "checkInDate": {
          "type": "string"
        },
        "checkOutDate": {
          "type": "string"
        },
        "adultCount": {
          "type": "string"
        },
        "numberOfNights": {
          "type": "string"
        },
        "numberOfRoomsRequested": {
          "type": "integer"
        },
        "errors": {
          "type": "array",
          "items": {
            "$ref": "mobileError"
          }
        },
        "hotelRoomResponse": {
          "$ref": "jsonOpaqueHotelSearchResponse"
        }
      }
    },
    "jsonHotelInformationResponse": {
      "properties": {
        "errors": {
          "type": "array",
          "items": {
            "$ref": "mobileError"
          }
        },
        "hotelId": {
          "type": "string"
        },
        "hotelName": {
          "type": "string"
        },
        "localizedHotelName": {
          "type": "string"
        },
        "nonLocalizedHotelName": {
          "type": "string"
        },
        "hotelAddress": {
          "type": "string"
        },
        "hotelCity": {
          "type": "string"
        },
        "hotelStateProvince": {
          "type": "string"
        },
        "hotelCountry": {
          "type": "string"
        },
        "latitude": {
          "type": "string"
        },
        "longitude": {
          "type": "string"
        },
        "longDescription": {
          "type": "string"
        },
        "photos": {
          "type": "array",
          "items": {
            "$ref": "jsonPhoto"
          }
        },
        "hotelAmenities": {
          "type": "array",
          "items": {
            "$ref": "jsonValueAdd"
          }
        },
        "hotelStarRating": {
          "type": "string"
        },
        "hotelStarRatingCssClassName": {
          "type": "string"
        },
        "hotelGuestRating": {
          "type": "string"
        },
        "totalRecommendations": {
          "type": "string"
        },
        "totalReviews": {
          "type": "string"
        },
        "percentRecommended": {
          "type": "string"
        },
        "telesalesNumber": {
          "type": "string"
        },
        "deskTopOverrideNumber": {
          "type": "boolean"
        },
        "hotelRenovationText": {
          "$ref": "textSection"
        },
        "hotelMandatoryFeesText": {
          "$ref": "textSection"
        },
        "hotelOverviewText": {
          "$ref": "textSection"
        },
        "firstHotelOverview": {
          "type": "string"
        },
        "hotelAmenitiesText": {
          "$ref": "textSection"
        },
        "hotelPoliciesText": {
          "$ref": "textSection"
        },
        "hotelFeesText": {
          "$ref": "textSection"
        },
        "isVipAccess": {
          "type": "boolean"
        },
        "locationDescription": {
          "type": "string"
        },
        "locationId": {
          "type": "string"
        },
        "regions": {
          "type": "array",
          "items": {
            "$ref": "region"
          }
        },
        "allowedToDisplayRatingAsStars": {
          "type": "string"
        }
      }
    },
    "hotelConfirmCancelResponse": {
      "properties": {
        "statusResponse": {
          "type": "string"
        },
        "amountRefund": {
          "type": "double"
        }
      }
    },
    "calculatePointsResponse": {
      "properties": {
        "programName": {
          "type": "string"
        },
        "conversion": {
          "$ref": "pricePoints"
        },
        "remainingPayableByCard": {
          "$ref": "pricePoints"
        },
        "activityId": {
          "type": "string"
        }
      }
    },
    "jsonCancellationRoomResponse": {
      "properties": {
        "refundPrice": {
          "$ref": "mobilePrice"
        },
        "penaltyPrice": {
          "$ref": "mobilePrice"
        },
        "error": {
          "$ref": "mobileError"
        }
      }
    },
    "jsonCancellationResponse": {
      "properties": {
        "guidToResponseMap": {
          "type": "array",
          "items": {
            "$ref": "jsonCancellationRoomResponse"
          }
        }
      }
    },
    "packageHotelOfferResponse": {
      "packageHotelOffers": {
        "type": "array",
        "items": {
          "$ref": "packageHotelOffer"
        }
      },
      "errors": {
        "type": "array",
        "items": {
          "type": "mobileError"
        }
      }
    },
    "packageFlightJsonResponse": {
      "details": {
        "$ref": "flightDetailJsonResponse"
      },
      "rules": {
        "$ref": "flightDetailedRulesJson"
      }
    },
    "packageCreateTripResponse": {
      "errors": {
        "type": "array",
        "items": {
          "type": "mobileError"
        }
      },
      "packageDetails": {
        "$ref": "packageTrip"
      },
      "newTotalPrice": {
        "type": "string"
      },
      "changedPrice": {
        "$ref": "mobilePrice"
      },
      "coupon": {
        "type": "string"
      },
      "expediaRewards": {
        "$ref": "expediaRewardsForTripJson"
      },
      "rewards": {
        "$ref": "rewardsForTripJson"
      },
      "activityId": {
        "type": "string"
      },
      "oldPackageDetails": {
        "$ref": "packageTrip"
      },
      "validFormsOfPayment": {
        "type": "array",
        "items": {
          "$ref": "apiPaymentOptionJson"
        }
      }
    },
    "apiCheckoutResponsePackageResponse": {
      "properties": {
        "newTrip": {
          "$ref": "apiNewTripJson"
        },
        "orderId": {
          "type": "string"
        },
        "currencyCode": {
          "type": "string"
        },
        "totalCharges": {
          "type": "string"
        },
        "totalChargesPrice": {
          "$ref": "mobilePrice"
        },
        "packagePricing": {
          "$ref": "packageTripPricing"
        },
        "errors": {
          "type": "array",
          "items": {
            "$ref": "mobileError"
          }
        },
        "activityId": {
          "type": "string"
        },
        "debugTealeafInfo": {
          "type": "string"
        }
      }
    },
    "tripResponse": {
      "properties": {
        "apiVersion": {
          "type": "string"
        },
        "responseType": {
          "type": "string"
        },
        "errors": {
          "type": "array",
          "items": {
            "$ref": "errorDomain"
          }
        },
        "responseData": {
          "type": "array",
          "items": {
            "$ref": "simplifiedTripDomain"
          }
        }
      }
    },
    "tripTitleDescriptionUpdateResponse": {
      "properties": {
        "status": {
          "type": "string"
        },
        "errorMessage": {
          "type": "string"
        }
      }
    },
    "signInResponse": {
      "properties": {
        "tuid": {
          "type": "integer"
        },
        "expUserId": {
          "type": "integer"
        },
        "email": {
          "type": "string"
        },
        "firstName": {
          "type": "string"
        },
        "middleName": {
          "type": "string"
        },
        "lastName": {
          "type": "string"
        },
        "success": {
          "type": "boolean"
        },
        "errors": {
          "type": "array",
          "items": {
            "$ref": "mobileError"
          }
        },
        "detailedStatus": {
          "type": "string"
        },
        "detailedStatusMsg": {
          "type": "string"
        },
        "phoneNumbers": {
          "type": "array",
          "items": {
            "$ref": "jsonPhone"
          }
        },
        "storedCreditCards": {
          "type": "array",
          "items": {
            "$ref": "jsonUserCreditCardInformation"
          }
        },
        "homeAddress": {
          "$ref": "jsonAddress"
        },
        "loyaltyMembershipNumber": {
          "type": "string"
        },
        "loyaltyMembershipActive": {
          "type": "boolean"
        },
        "loyaltyPointsAvailable": {
          "type": "string"
        },
        "loyaltyPointsPending": {
          "type": "string"
        },
        "loyaltyMembershipName": {
          "type": "string"
        },
        "membershipTierName": {
          "type": "string"
        },
        "loyaltyTierCredits": {
          "type": "string"
        },
        "loyaltyMembershipInfo": {
          "$ref": "loyaltyMembershipInfo"
        },
        "frequentGuestMembership": {
          "type": "array",
          "items": {
            "$ref": "jsonFrequentGuestMembership"
          }
        },
        "isSmokingPreferred": {
          "type": "boolean"
        },
        "passports": {
          "$ref": "jsonPassport"
        },
        "tsaDetails": {
          "$ref": "jsonTsaDetails"
        },
        "seatPreference": {
          "type": "string"
        },
        "specialAssistance": {
          "type": "string"
        },
        "emergencyContact": {
          "$ref": "jsonEmergencyContact"
        },
        "frequentFlyerMemberships": {
          "type": "array",
          "items": {
            "$ref": "jsonFrequentFlyerMembership"
          }
        },
        "associatedTravelers": {
          "type": "array",
          "items": {
            "$ref": "jsonAssociatedTraveler"
          }
        },
        "activityId": {
          "type": "string"
        },
        "travelocityItinPath": {
          "type": "string"
        },
        "userCoupons": {
          "type": "array",
          "items": {
            "$ref": "mobileCoupon"
          }
        },
        "loyaltyBonusPoints": {
          "type": "integer"
        }
      }
    },
    "createUserResponse": {
      "properties": {
        "tuid": {
          "type": "string"
        },
        "email": {
          "type": "string"
        },
        "firstName": {
          "type": "string"
        },
        "middleName": {
          "type": "string"
        },
        "lastName": {
          "type": "string"
        }
      }
    },
    "updateTravelerResponse": {
      "properties": {
        "succeeded": {
          "type": "boolean"
        },
        "tuid": {
          "type": "string"
        },
        "activityId": {
          "type": "string"
        }
      }
    },
    "associateUserToTripResponse": {
      "properties": {
        "newTrip": {
          "$ref": "apiNewTripJson"
        },
        "rewardsPoints": {
          "type": "string"
        },
        "activityId": {
          "type": "string"
        }
      }
    },
    "carSearchResponse": {
      "properties": {
        "pickupTime": {
          "type": "string"
        },
        "dropOffTime": {
          "type": "string"
        },
        "offers": {
          "type": "array",
          "items": {
            "$ref": "rentalOffer"
          }
        },
        "errors": {
          "type": "array",
          "items": {
            "$ref": "mobileError"
          }
        },
        "activityId": {
          "type": "string"
        }
      }
    },
    "carCreateTripResponse": {
      "properties": {
        "errors": {
          "type": "array",
          "items": {
            "$ref": "mobileError"
          }
        },
        "tripId": {
          "type": "string"
        },
        "itineraryNumber": {
          "type": "integer"
        },
        "newTotalPrice": {
          "$ref": "mobilePrice"
        },
        "carProduct": {
          "$ref": "rentalProduct"
        },
        "oldCarProduct": {
          "$ref": "rentalProduct"
        },
        "activityId": {
          "type": "string"
        },
        "validFormsOfPayment": {
          "type": "array",
          "items": {
            "$ref": "apiPaymentOptionJson"
          }
        }
      }
    },
    "apiCheckoutResponseCarsResponse": {
      "properties": {
        "newTrip": {
          "$ref": "apiNewTripJson"
        },
        "orderId": {
          "type": "string"
        },
        "currencyCode": {
          "type": "string"
        },
        "totalCharges": {
          "type": "string"
        },
        "totalChargesPrice": {
          "$ref": "mobilePrice"
        },
        "errors": {
          "type": "array",
          "items": {
            "$ref": "mobileError"
          }
        },
        "activityId": {
          "type": "string"
        }
      }
    },
    "apiErrorJsonResponse": {
      "properties": {
        "errors": {
          "type": "array",
          "items": {
            "$ref": "flightServiceError"
          }
        },
        "activityId": {
          "type": "string"
        },
        "debugTealeafInfo": {
          "type": "string"
        }
      }
    },
    "railsTripResponse": {
      "properties": {
        "errors": {
          "type": "array",
          "items": {
            "$ref": "mobileError"
          }
        },
        "tripId": {
          "type": "string"
        },
        "totalPrice": {
          "$ref": "mobilePrice"
        },
        "offerToken": {
          "type": "string"
        },
        "validFormsOfPayment": {
          "type": "array",
          "items": {
            "$ref": "apiPaymentOptionJson"
          }
        }
      }
    },
    "lxCreateTripResponse": {
      "properties": {
        "errors": {
          "type": "array",
          "items": {
            "$ref": "mobileError"
          }
        },
        "tripId": {
          "type": "string"
        },
        "itineraryNumber": {
          "type": "integer"
        },
        "newTotalPrice": {
          "$ref": "mobilePrice"
        },
        "activityId": {
          "type": "string"
        },
        "validFormsOfPayment": {
          "type": "array",
          "items": {
            "$ref": "apiPaymentOptionJson"
          }
        }
      }
    },
    "apiCheckoutResponseLxResponse": {
      "properties": {
        "newTrip": {
          "$ref": "apiNewTripJson"
        },
        "orderId": {
          "type": "string"
        },
        "currencyCode": {
          "type": "string"
        },
        "totalCharges": {
          "type": "string"
        },
        "totalChargesPrice": {
          "$ref": "mobilePrice"
        },
        "errors": {
          "type": "array",
          "items": {
            "$ref": "mobileError"
          }
        },
        "activityId": {
          "type": "string"
        }
      }
    }
  }
}
