openapi: 3.0.1
info:
  title: EWSAir V3 APIs
  description: OpenAPI Spec for EWS Air V3 APIs
  version: v3
  x-eg-lifecycle: LIVE
  x-eg-api-tags: ["EWS", "XAP", "Flights", "EWSFlights", "Flight List", "Flight Details", "Flight Links", "Flight FlexSearch",
                  "Flight FareCalendar"]
tags:
  - name: Flight Listing
servers:
  - url: 'https://apim.expedia.com'
    description: Production Server
paths:
  /flights/listings:
    get:
      tags:
        - Flight Listing
      description: search flight products
      operationId: get-flight-listings
      parameters:
        - name: adult
          in: query
          description: |-
            Number of Adult Travelers.
            Either one adult or one senior per itinerary is mandatory
          schema:
            type: integer
          example: 1
        - name: senior
          in: query
          description: Number of Senior (age > 65) Travelers
          schema:
            type: integer
          example: 1
        - name: childrenAges
          in: query
          description: Comma-separated list of the ages of all child travelers (ages 2 - 17).
          schema:
            type: string
          example: 4,5
        - name: infantInLap
          in: query
          description: |-
            Number of Infant travelers without a reserved seat.
            Age should be less than 2
          schema:
            type: integer
          example: 1
        - name: infantInSeat
          in: query
          description: |-
            Number of Infant travelers with reserved seat.
            Age should be less than 2
          schema:
            type: integer
          example: 1
        - name: segment1.origin
          in: query
          description: 3-letter IATA Airport code/Location name from where the passenger is departing.
          required: true
          schema:
            type: string
          example: LAS
        - name: segment1.destination
          in: query
          description: 3-letter IATA Airport code/Location name from where the passenger is arriving.
          required: true
          schema:
            type: string
          example: LAX
        - name: segment1.departureDate
          in: query
          description: Date, in ISO format [YYYY-MM-DD], on which customer wants to depart.
          required: true
          schema:
            type: string
            format: date
          example: '2021-07-01'
        - name: segment1.departureStartTime
          in: query
          description: Lower limit of desired departure time window, expressed in the local time of the departure location, in standard ISO format.
          schema:
            type: string
          example: 07:00:00
        - name: segment1.departureEndTime
          in: query
          description: Upper limit of desired departure time window, expressed in the local time of the departure location, in standard ISO format.
          schema:
            type: string
          example: 09:00:00
        - name: segment2.origin
          in: query
          description: 3-letter IATA Airport code/Location name from where the passenger is departing.
          schema:
            type: string
        - name: segment2.destination
          in: query
          description: 3-letter IATA Airport code/Location name from where the passenger is arriving.
          schema:
            type: string
        - name: segment2.departureDate
          in: query
          description: Date, in ISO format [YYYY-MM-DD], on which customer wants to depart.
          schema:
            type: string
        - name: segment2.departureStartTime
          in: query
          description: Lower limit of desired departure time window, expressed in the local time of the departure location, in standard ISO format.
          schema:
            type: string
        - name: segment2.departureEndTime
          in: query
          description: Upper limit of desired departure time window, expressed in the local time of the departure location, in standard ISO format.
          schema:
            type: string
        - name: segment3.origin
          in: query
          description: 3-letter IATA Airport code/Location name from where the passenger is departing.
          schema:
            type: string
        - name: segment3.destination
          in: query
          description: 3-letter IATA Airport code/Location name from where the passenger is arriving.
          schema:
            type: string
        - name: segment3.departureDate
          in: query
          description: Date, in ISO format [YYYY-MM-DD], on which customer wants to depart.
          schema:
            type: string
        - name: segment3.departureStartTime
          in: query
          description: Lower limit of desired departure time window, expressed in the local time of the departure location, in standard ISO format.
          schema:
            type: string
        - name: segment3.departureEndTime
          in: query
          description: Upper limit of desired departure time window, expressed in the local time of the departure location, in standard ISO format.
          schema:
            type: string
        - name: segment4.origin
          in: query
          description: 3-letter IATA Airport code/Location name from where the passenger is departing.
          schema:
            type: string
        - name: segment4.destination
          in: query
          description: 3-letter IATA Airport code/Location name from where the passenger is arriving.
          schema:
            type: string
        - name: segment4.departureDate
          in: query
          description: Date, in ISO format [YYYY-MM-DD], on which customer wants to depart.
          schema:
            type: string
        - name: segment4.departureStartTime
          in: query
          description: Lower limit of desired departure time window, expressed in the local time of the departure location, in standard ISO format.
          schema:
            type: string
        - name: segment4.departureEndTime
          in: query
          description: Upper limit of desired departure time window, expressed in the local time of the departure location, in standard ISO format.
          schema:
            type: string
        - name: segment5.origin
          in: query
          description: 3-letter IATA Airport code/Location name from where the passenger is departing.
          schema:
            type: string
        - name: segment5.destination
          in: query
          description: 3-letter IATA Airport code/Location name from where the passenger is arriving.
          schema:
            type: string
        - name: segment5.departureDate
          in: query
          description: Date, in ISO format [YYYY-MM-DD], on which customer wants to depart.
          schema:
            type: string
        - name: segment5.departureStartTime
          in: query
          description: Lower limit of desired departure time window, expressed in the local time of the departure location, in standard ISO format.
          schema:
            type: string
        - name: segment5.departureEndTime
          in: query
          description: Upper limit of desired departure time window, expressed in the local time of the departure location, in standard ISO format.
          schema:
            type: string
        - name: segment6.origin
          in: query
          description: 3-letter IATA Airport code/Location name from where the passenger is departing.
          schema:
            type: string
        - name: segment6.destination
          in: query
          description: 3-letter IATA Airport code/Location name from where the passenger is arriving.
          schema:
            type: string
        - name: segment6.departureDate
          in: query
          description: Date, in ISO format [YYYY-MM-DD], on which customer wants to depart.
          schema:
            type: string
        - name: segment6.departureStartTime
          in: query
          description: Lower limit of desired departure time window, expressed in the local time of the departure location, in standard ISO format.
          schema:
            type: string
        - name: segment6.departureEndTime
          in: query
          description: Upper limit of desired departure time window, expressed in the local time of the departure location, in standard ISO format.
          schema:
            type: string
        - name: locale
          in: query
          description: Indicates the language and country with which the user would like to see any translated information.
          schema:
            type: string
          example: en_US
        - name: cabinClass
          in: query
          description: |-
            The desired cabin classes that the user would like to see offers for.
            Options can be: economy | first | business | premiumeconomy
          schema:
            type: string
          example: economy
        - name: numberOfStops
          in: query
          description: |-
            Filter for the number of stops the user would like to see offers for.
            A value of 0 returns only non-stop flights in the search response, and a value of 1 returns offers
          schema:
            type: integer
          example: 0
        - name: sortType
          in: query
          description: |-
            Sort the search results according to one selected category.
            Only sort by price is supported at this time.
            Note: default = Price
          schema:
            type: string
          example: Price
        - name: limit
          in: query
          description: |-
            The maximum number of Flight offers returned in the response.
            Must be an integer value greater than 0.Note: default = 1600
          schema:
            type: integer
          example: 100
        - name: selectedCarriers
          in: query
          description: Adding comma-separated list of IATA or Expedia airline codes will limit the search results to include flight offers only with the selected carriers.
          schema:
            type: string
          example: AS
        - name: agent
          in: query
          description: |-
            Designates whether a telesales agent was involved in the transaction.
            true = telesales agent involved
            false = no telesales agent involved
          schema:
            type: boolean
          example: true
        - name: links
          in: query
          description: |-
            Comma-separated list that indicates which HATEOAS links should be included in the response.
            WD (Website Details Page - included by default)
            WPS (Web Package Search)
          schema:
            type: string
          example: WD
        - name: refundable
          in: query
          description: |-
            Refundable solutions will be returned if and only if we pass refundable as true in the request.(refundable=true).
            (Not Yet Supported in Production)
          schema:
            type: boolean
          example: true
        - name: filterNearByAirport
          in: query
          description: |-
            Filters nearby airports ensuring only results from the requests airport code are returned.
            This request param is valid only for AirportCode-based searches.
            Note: default = false
          schema:
            type: boolean
          example: true
        - name: filterBasicEconomy
          in: query
          description: |-
            Filters out all the Basic Economy fare solutions in the flight search response.
            Note: default = false
          schema:
            type: boolean
          example: true
        - name: anchorBy
          in: query
          description: |-
            Designates that the user is doing a Multi-step Search.
            Possible values are: segment1 | segment2 | segment3 | segment4 | segment5
          schema:
            type: string
          example: segment1
        - name: selectedOffer
          in: query
          description: |
            Captures the previously selected flight segments during a Multi-step Search.
          schema:
            type: string
          example: AQojCiEIwYIBEgM1MDQYi5ABIIu4ASihu5wBMPa7nAE4QkAAWAESCggBEAEYASoCQUEYASIECAEQASgCKAMoBDAC%2BAQokCiIIxJgBEgQyOTkyGIu4ASCLkAEovNycATCG3ZwBOEVAAFgBEgoIARABGAEqAkRMGAEiBAgBEAEoAigDKAQwAQ
        - name: filterNonFlightOffers
          in: query
          description: |-
            If set to true, this parameter filters out all non-Flight Offers (offers with any of the legs comprising transit via Train, Bus or Boat) from flight search response.
            If the parameter is not present or is set to false, then Flight Offers may contain travel legs via means other than flight (Train, Bus or Boat).
            Default value is false
          schema:
            type: boolean
          example: true
        - name: enableSplitTicket
          in: query
          description: |-
            if set to false, this parameter will filter out all the split ticket solutions from the Flight Offers.
            If set to true (by default it will be true), API response will include split ticket solutions if split ticket is enabled at key configuration level as well.
          schema:
            type: boolean
          example: true
        - name: Key
          in: header
          description: |-
            Unique identifier assigned to partner.
            Required for all requests.
            Obtained from Expedia Account Manager or representative.
          required: true
          schema:
            type: string
          example: X99X9X9-99XX-9XX9-X999-99XX99X9X999X
        - name: Partner-Transaction-ID
          in: header
          description: Partner-generated identifier.
          required: true
          schema:
            type: string
          example: 123456-798101112
        - name: Accept
          in: header
          description: Accept header for the request.
          required: true
          schema:
            type: string
          example: application/vnd.exp-flight.v3+json
        - name: Accept-Encoding
          in: header
          description: Accept encoding for the request.
          required: false
          schema:
            type: string
          example: gzip
      responses:
        '400':
          description: |-
            Client side error while providing the  request i.e bad / invalid input parameters.
             Possible Error codes { MISSING_ADULT_OR_SENIOR
              INFANT_IN_LAP_ACCOMPANIED_BY_ADULT_OR_SENIOR
             INVALID_CHILD_AGE
             INVALID_ACCEPT_HEADER
             INVALID_PASSENGER_COUNT
             ORIGIN_REQUIRED
             INVALID_ORIGIN
              DESTINATION_REQUIRED
             INVALID_DESTINATION
             INVALID_DEPARTURE_DATE
             INVALID_DEPARTURE_TIME
             DEPARTURE_TIME_DEPARTURE_TIMESPAN_NOT_ALLOWED_TOGETHER
             DEPARTURE_DATE_OUT_OF_RANGE
             DEPARTURE_DATE_OUT_OF_RANGE
             INVALID_LOCALE
             INVALID_ADULT_COUNT
             INVALID_SENIOR_COUNT
             INVALID_CHILD_COUNT
             INVALID_INFANT_IN_LAP_COUNT
             INVALID_INFANT_IN_SEAT_COUNT
             INVALID_SELECTED_CARRIERS
             INVALID_SELECTED_CARRIERS
             INVALID_NUMBER_OF_STOPS
             INVALID_SORT_TYPE
             INVALID_NUMBER_OF_FLIGHTS
             SELECTED_FLIGHT_DETAILS_NOT_AVAILABLE
             INVALID_ANCHOR
             INVALID_CABIN_CLASS
             INVALID_DEPARTURE_TIMESPAN
             MISSING_MANDATORY_SEGMENT_DETAILS
             ORIGIN_DESTINATION_SAME
             INVALID_DEPARTURE_DATE
             INVALID_LINKS
             INVALID_AGENT
             }
          content:
            application/vnd.exp-flight.v3+json:
              schema:
                $ref: '#/components/schemas/Errors'
              example:
                Errors:
                  - Code: INVALID_ACCEPT_HEADER
                    Description: Please provide a valid Accept header
                TransactionId: c38d0183-5c90-4db6-8c5e-31b7294cd06f
        '500':
          description: |
            Server side error like backend service has some issues or some issues in EWS Air service. The Error code is SERVER_ERROR
          content:
            application/vnd.exp-flight.v3+json:
              schema:
                $ref: '#/components/schemas/Errors'
              example:
                Errors:
                  - Code: SERVER_ERROR
                    Description: An error has occurred while processing the request
                TransactionId: 68bce810-5af7-40c1-bea7-07a823b6f1f0
        '409':
          description: There are no flights for a requested criteria during flight search API
          content:
            application/vnd.exp-flight.v3+json:
              schema:
                $ref: '#/components/schemas/Errors'
              example:
                Errors:
                  - Code: NO_RESULTS_FOUND
                    Description: No flights solutions found for the request.
                TransactionId: 68bce810-5af7-40c1-bea7-07a823b6f1f0
        '200':
          description: Success Response
          content:
            application/vnd.exp-flight.v3+json:
              schema:
                $ref: '#/components/schemas/FlightSearchResponse'
              example:
                Segments:
                  - SegmentId: MTRfUHVibGlzaGVk
                    FlightDuration: PT4H34M
                    TotalStops: 0
                    DepartureArrivalDayDifference: 1
                    AirportChange: false
                    SeatsLeft: 10
                    FareType: PUBLISHED
                    Legs:
                      - DepartureAirport:
                          Code: LAS
                          Name: McCarran Intl.
                          City: Las Vegas
                          Province: NV
                          Country: USA
                          Latitude: "36.085393"
                          Longitude: "-115.150098"
                        ArrivalAirport:
                          Code: FLL
                          Name: Fort Lauderdale - Hollywood Intl.
                          City: Fort Lauderdale
                          Province: FL
                          Country: USA
                          Latitude: "26.071529"
                          Longitude: "-80.1449"
                        DepartureDateTime: 2021-11-01T22:40:00-07:00
                        ArrivalDateTime: 2021-11-02T06:14:00-04:00
                        FlightNumber: "954"
                        MarketingAirlineCode: NK
                        MarketingAirlineName: Spirit Airlines
                        EquipmentCode: 32A
                        FlightOnTimePercentage: "80"
                        EquipmentName: AIRBUS INDUSTRIE A320 SHARKLETS
                        FlightDuration: PT4H34M
                        SeatMapAvailable: false
                        FlightDistance:
                          Value: "2161"
                          Unit: MI
                        BookingCode: R
                        CabinClass: ECONOMY
                        FareBasisCode: R7XSNR
                        MealOptions:
                          - FOOD_FOR_PURCHASE
                        Amenities:
                          Entertaintment:
                            Available: YES
                          Wifi:
                            Available: YES
                          Power:
                            Available: YES
                Offers:
                  - offerToken: v5-sos-42b700553889490c9e966329ac528b67-3-1~0.S~AQoCCAESBwjUBBABGAEgASAMIAcgDSAJKAJYAQ~AQoiCiAIzpYBEgM5NTQYi5ABIOVaKLSouwEwxqq7AThSQABYARIKCAEQARgBKgJOSxgEIgQIARABIgQIAhACIgQIAxABKAIoAygEMAI+AQoiCiAIzpYBEgM5NTQYi5ABIOVaKLSouwEwxqq7AThSQABYARIKCAEQARgBKgJOSxgEIgQIARABIgQIAhACIgQIAxABKAIoAygEMAI
                    SplitTicket: false
                    OpaqueFlight: false
                    Free24HourCancellation: false
                    Links:
                      WebDetails:
                        Method: GET
                        Href: https://www.expedia.com/go/udp?CCheck=1&NumAdult=1&NumSenior=1&NumChild=2&ChildrenAges=2|3&Class=3&Sort=10&TripType=OneWay&ProductType=air&eapid=0-1&ServiceVersion=V5&MessageGuid=80f50380-34fa-11e9-9415-0a6b914daa30&langid=1033&piid=v5-sos-42b700553889490c9e966329ac528b67-3-1~0.S~AQoCCAESBwjUBBABGAEgASAMIAcgDSAJKAJYAQ~AQoiCiAIzpYBEgM5NTQYi5ABIOVaKLSouwEwxqq7AThSQABYARIKCAEQARgBKgJOSxgEIgQIARABIgQIAhACIgQIAxABKAIoAygEMAI&Price=545.16&CurrencyCode=USD�cy=USD&DepartureTLA=L1:LAS&ArrivalTLA=L1:FLL&DepartureDate=L1:2021-11-01&ArrivalDate=L1:2021-11-02&RefundableFlightsOnly=N
                    SegmentIds:
                      - MTRfUHVibGlzaGVk
                    OfferPrice:
                      TotalPrice:
                        Value: "545.16"
                        Currency: USD
                      BasePrice:
                        Value: "453.92"
                        Currency: USD
                      TotalTaxes:
                        Value: "91.24"
                        Currency: USD
                      TotalTaxesAndFees:
                        Value: "91.24"
                        Currency: USD
                      AveragePricePerTicket:
                        Value: "136.29"
                        Currency: USD
                        Count: 4
                      PricePerPassengerCategory:
                        - Category: ADULT
                          Count: 1
                          TotalPrice:
                            Value: "136.29"
                            Currency: USD
                          BasePrice:
                            Value: "113.48"
                            Currency: USD
                          TotalTaxes:
                            Value: "22.81"
                            Currency: USD
                        - Category: CHILD
                          Count: 2
                          TotalPrice:
                            Value: "136.29"
                            Currency: USD
                          BasePrice:
                            Value: "113.48"
                            Currency: USD
                          TotalTaxes:
                            Value: "22.81"
                            Currency: USD
                        - Category: SENIOR
                          Count: 1
                          TotalPrice:
                            Value: "136.29"
                            Currency: USD
                          BasePrice:
                            Value: "113.48"
                            Currency: USD
                          TotalTaxes:
                            Value: "22.81"
                            Currency: USD
                    Refundable: false
                    RefundPenalty:
                      - SegmentIds:
                          - MTRfUHVibGlzaGVk
                        PreTripChange:
                          Allow: YES
                    International: false
                    TicketType: ETicket
                SearchCities:
                  - Code: FLL
                    City: Fort Lauderdale
                    Province: FL
                    Country: USA
                ValidFormsOfPayment:
                  UG9pbnRzRXhwZWRpYVJld2FyZHMwLjAw:
                    - PaymentMethod: CREDITCARD
                      Name: AMERICANEXPRESS
                      Fee: "0.00"
                      Currency: USD
                TransactionId: 80f50380-34fa-11e9-9415-0a6b914daa30
        '404':
          description: No Route matched
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIMError'
              examples:
                no Route matched:
                  value: |-
                    {
                        "message": "no Route matched with those values"
                    }
        '429':
          description: API rate limit exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIMError'
              examples:
                API rate limit exceeded:
                  value: |-
                    {
                        "message": "API rate limit exceeded"
                    }
        '401':
          description: Unauthorized or Invalid authentication credentials
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIMError'
              examples:
                unauthorized:
                  value: |-
                    {
                        "message": "Unauthorized"
                    }
                Invalid authentication credentials:
                  value: |-
                    {
                        "message": "Invalid authentication credentials"
                    }
        '403':
          description: cannot consume this service
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIMError'
              examples:
                cannot consume this service:
                  value: |-
                    {
                        "message": "You cannot consume this service"
                    }
        '503':
          description: name resolution failed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIMError'
              examples:
                name resolution failed:
                  value: |-
                    {
                        "message": "name resolution failed"
                    }
        '504':
          description: upstream server is timing out
          content:
            text/plain:
              examples:
                upstream server is timing out:
                  value: The upstream server is timing out
components:
  securitySchemes:
    basicAuth:
      type: http
      scheme: basic
  schemas:
    Country:
      required:
        - Name
      type: object
      properties:
        Name:
          type: string
          description: country name
          example: Ireland
        Code:
          type: string
          description: 3-letter code for the country
          example: IRL
      description: Container for disambiguation country information
    Error:
      required:
        - Code
        - Description
      type: object
      properties:
        Code:
          type: string
          description: Error code describing the issue
          example: AMBIGUOUS_LOCATION
        DetailCode:
          type: string
          description: Detailed error code describing the issue.
          example: MULTIPLE_AMBIGUOUS_LOCATION
        Description:
          type: string
          description: A simple description of what the error is.
          example: 'Multiple pickup locations found. '
        LocationOptions:
          type: array
          description: 'List for possible locations from which the customer must choose
            the best one to be re-submitted in the request. '
          items:
            $ref: '#/components/schemas/LocationOption'
      description: Container for error list.
    Errors:
      required:
        - Errors
        - TransactionId
      type: object
      properties:
        Errors:
          type: array
          description: Container for error list.
          items:
            $ref: '#/components/schemas/Error'
        TransactionId:
          type: string
          description: A unique identifier for the transaction.
          example: a9e371c4-89d9-4f9c-8df7-df105830e7fe
      xml:
        name: ErrorResponse
    GeoLocation:
      required:
        - Latitude
        - Longitude
      type: object
      properties:
        Latitude:
          type: string
          description: Latitude of the location.
          example: "38.184978"
        Longitude:
          type: string
          description: Longitude of the location.
          example: "85.7412"
      description: Container for Geo location.
    Location:
      type: object
      properties:
        Type:
          type: string
          description: The type of location code (MULTICITY | METROCODE).
          example: MULTICITY
        Id:
          type: string
          description: Expedia Region ID of the specified airport.
          example: "6139103"
        Name:
          type: string
          description: Location Name
          example: Seattle-Tacoma International Airport
        Code:
          type: string
          description: Location Code
          example: SEA
        Address:
          type: string
          description: Street address of the location (if available)
          example: Paris, France (PAR-All Airports)
        GeoLocation:
          $ref: '#/components/schemas/GeoLocation'
        Country:
          $ref: '#/components/schemas/Country'
      description: Container for list of possible locations that could be used to disambiguate the query.
    LocationOption:
      required:
        - Locations
        - RequestedLocation
      type: object
      properties:
        RequestedLocation:
          type: string
          description: Location used in partner request.
          example: Paris
        Locations:
          type: array
          description: Container for list of possible locations that could be used to disambiguate the query.
          items:
            $ref: '#/components/schemas/Location'
      description: 'List for possible locations from which the customer must choose
        the best one to be re-submitted in the request. '
    AirValidFormsOfPayment:
      required:
        - Currency
        - Fee
        - Name
        - PaymentMethod
      type: object
      properties:
        PaymentMethod:
          type: string
          description: Method of payment
          example: CreditCard
        Name:
          type: string
          description: Name of Payment Method.
          example: AmericanExpress
        Fee:
          type: string
          description: The amount of the payment fee.
          example: "4.25"
        Currency:
          type: string
          description: Currency of the fee in ISO 4217 format
          example: USD
      description: Container for fees that are charged for using certain payment methods. Since the method of payment is not known until time of booking, these fees are returned separately and not included in the total price
    Airport:
      required:
        - Code
      type: object
      properties:
        Code:
          type: string
          description: Three-letter IATA airport code for departure location
          example: SFO
        Name:
          type: string
          description: Name of departure airport
          example: San Francisco International Airport
        City:
          type: string
          description: City where departure airport resides
          example: San Francisco
        Province:
          type: string
          description: Province or State where departure airport resides
          example: CA
        Country:
          type: string
          description: Country where departure airport resides
          example: USA
        Latitude:
          type: string
          description: Latitude where departure airport resides
          example: "33.641"
        Longitude:
          type: string
          description: Longitude where departure airport resides
          example: "84.4429"
      description: Container for list of Information about each search locations
      xml:
        name: Airport
    Amenities:
      type: object
      properties:
        Entertainment:
          $ref: '#/components/schemas/Entertainment'
        Wifi:
          $ref: '#/components/schemas/Wifi'
        Power:
          $ref: '#/components/schemas/Power'
      description: List of specific amenities available for each flight leg.
    AveragePricePerTicket:
      required:
        - Count
        - Currency
        - Value
      type: object
      properties:
        Value:
          type: string
          description: Average price per ticket, excluding infant
          example: "100.0"
        Currency:
          type: string
          description: Currency in ISO 4217 format
          example: USD
        Count:
          type: integer
          description: Indicates how many tickets were used to determine the average
          format: int32
          example: 1
      description: |-
        Container for average pricing information per ticket.
        If any passenger type (such as Infant in Lap or Seat) has a $0 total price there will be no ticket, so those passengers would not be included in the count.
    BaggageFee:
      required:
        - BagType
      type: object
      properties:
        BagType:
          type: string
          description: Specifies the type of baggage.
          example: FIRST_BAG
          enum:
            - PREPAID_CARRY_ON
            - PREPAID_FIRST_BAG
            - PREPAID_SECOND_BAG
            - CARRY_ON
            - FIRST_BAG
            - SECOND_BAG
        WeightUnit:
          type: string
          description: Specifies weight unit for this bagType. This will always be kilograms.
          example: kg
        Weight:
          type: string
          description: Weight of the bag.
          example: "23"
        Application:
          type: string
          description: This element specifies descriptive text useful in displaying baggage fees.
          example: per
          enum:
            - upto
            - per
        FixedCharge:
          $ref: '#/components/schemas/Fee'
        MaxCharge:
          $ref: '#/components/schemas/Fee'
        MinCharge:
          $ref: '#/components/schemas/Fee'
      description: Container for baggage fee information of each bag type. The baggage fee can vary for each bag type. The amount can be zero, fixed amount or will be in a range.
      xml:
        name: BaggageFees
    Distance:
      required:
        - Unit
        - Value
      type: object
      properties:
        Value:
          type: string
          description: The number of miles/kilometers of the distance (specified by the Unit).
          example: "75"
        Unit:
          type: string
          description: The unit (KM or MI) for the distance.
          example: KM
        Direction:
          type: string
          description: 'The direction of the location from the search ''center''.Possible
            values are: N,S,W,E,NW,NE,SW,SE'
          example: N
      description: Container for distance of flight.
    Entertainment:
      type: object
      properties:
        Available:
          type: string
          description: Indication of whether this amenity is available.
          example: YES
          enum:
            - YES
            - NO
            - UNKNOWN
        Types:
          type: array
          description: Type of entertainment
          example: [LIVE_TV]
          items:
            type: string
            description: Type of entertainment
            example: LIVE_TV
            xml:
              name: Types
            enum:
              - LIVE_TV
              - ON_DEMAND
              - STREAMING
      description: Container for entertainment amenities available in this flight leg
    Fee:
      required:
        - Currency
        - Value
      type: object
      properties:
        Value:
          type: string
          description: The value of the element being defined.
          example: "21.9"
        Currency:
          type: string
          description: The ISO 4217 Currency Code that the value is expressed in.
          example: USD
        LocalCurrencyPrice:
          $ref: '#/components/schemas/Money'
        Name:
          type: string
      description: This is used when a fee range is returned. It specifies the highest value of bag fee.
    FlightSearchResponse:
      required:
        - Offers
        - SearchCities
        - TransactionId
      type: object
      properties:
        Insights:
          $ref: '#/components/schemas/Insights'
        Warnings:
          type: array
          description: Container for warning messages.
          items:
            $ref: '#/components/schemas/Warning'
        Segments:
          type: array
          description: |-
            Container of information about each flight offer
            (Less information shown if the offer is and opaque flight offer)
            Flights (the complete journey to your final destination by air) are made up of:
             Segments (the trip from one stopping place to another) are made up of:
             Legs (take off at one airport and land at another)
          items:
            $ref: '#/components/schemas/Segment'
        Offers:
          type: array
          description: Container for list of air offers. An offer gives total trip details including flight and pricing information.
          items:
            $ref: '#/components/schemas/Offer'
        SearchCities:
          type: array
          description: Container for list of Information about each search locations
          items:
            $ref: '#/components/schemas/Airport'
        ValidFormsOfPayment:
          type: object
          additionalProperties:
            type: array
            items:
              $ref: '#/components/schemas/AirValidFormsOfPayment'
          description: Container for fees that are charged for using certain payment methods. Since the method of payment is not known until time of booking, these fees are returned separately and not included in the total price
        Lounges:
          type: object
          additionalProperties:
            type: array
            items:
              $ref: '#/components/schemas/Lounge'
          description: List of lounges
        TransactionId:
          type: string
          description: Unique Id to identify one individual API response.
          example: a9e371c4-89d9-4f9c-8df7-df105830e7fe
      xml:
        name: FlightSearchResponse
    Insights:
      required:
        - AverageCheapestPrice
        - CheapestOfferId
        - MedianCheapestPrice
        - PercentageOfFaresHigher
        - SearchComparisonCount
      type: object
      properties:
        CheapestOfferId:
          type: string
          description: Container for insights response.
          example: v5-d58bdd504a70495078a796b218315815-1-1-2~0.S~AQoGCAEQ9LsCEgcI1AQQARgBIAEgDCAHIA0oAlgCcAA
        AverageCheapestPrice:
          $ref: '#/components/schemas/Money'
        MedianCheapestPrice:
          $ref: '#/components/schemas/Money'
        SearchComparisonCount:
          type: integer
          description: Number of searches compared to build the insights information for the given search.
          format: int32
          example: 1200
        PercentageOfFaresHigher:
          type: integer
          description: Percentage value that defines where the cheapest fare of the current search result stand comparing the prices for similar searches for nearby dates.
          format: int32
          example: 70
        PriceTrend:
          type: string
          description: Shows how the price trends
          enum:
            - TRENDING_UP
            - TRENDING_DOWN
            - NEUTRAL
        PastPerDayMedianCheapestPrices:
          type: array
          description: List of median of cheapest prices for the specifc search criteria for last 21 days. List will be in the order starting from 21 days ago till yesterday.
          example: ['120.9', '121.8', '122.7']
          items:
            type: string
            xml:
              name: PastPerDayMedianCheapestPrices
        Message:
          type: string
          description: Shows a custom message in the respective language corresponding to the locale requested.
          example: Expedia searched 3,415 results and this fare is cheaper than 70% of the prices seen
      description: Container for insights response.
      xml:
        name: Insights
    Leg:
      required:
        - ArrivalAirport
        - ArrivalDateTime
        - BookingCode
        - CabinClass
        - DepartureAirport
        - DepartureDateTime
        - FlightDuration
        - FlightNumber
        - MarketingAirlineCode
        - SeatMapAvailable
      type: object
      properties:
        StatusCode:
          type: string
          description: Air segment status.
          example: HX
        Links:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/Link'
          description: Container for deeplink URL information.
        DepartureAirport:
          $ref: '#/components/schemas/Airport'
        ArrivalAirport:
          $ref: '#/components/schemas/Airport'
        DepartureDateTime:
          type: string
          description: Flight departure date and time in ISO 8601 format
          format: date-time
          example: 2021-07-05T07:15:00-06:00
        ArrivalDateTime:
          type: string
          description: Flight landing date and time in ISO 8601 format
          format: date-time
          example: 2021-07-05T10:15:00-06:00
        FlightNumber:
          type: string
          description: Flight Number assigned by Carrier.
          example: "2537"
        MarketingAirlineCode:
          type: string
          description: The two-letter code of the Airline that is marketing the flight.
          example: AA
        MarketingAirlineName:
          type: string
          description: The display name of the Airline that is marketing the flight.
          example: American Airlines
        OperatingAirlineCode:
          type: string
          description: The two-letter code of the Airline actually operating the plane.
          example: UA
        OperatingAirlineName:
          type: string
          description: The display name of the airline actually operating the plane.
          example: United Airlines
        EquipmentCode:
          type: string
          description: IATA Equipment type codes.
          example: 73J
        FlightOnTimePercentage:
          type: string
          description: Percentage of time that this flight on time.
          example: "100"
        EquipmentName:
          type: string
          description: The name of equipment that is scheduled for the flight.
          example: Airbus 123
        FlightDuration:
          type: string
          description: The total travel duration for this leg, expressed in ISO 8601 standard.
          example: PT3H58M
        ConnectionTime:
          type: string
          description: Connection time between current leg flight landed time to next flight departure time, expressed in ISO 8601 standard.
          example: PT1H4M
        SeatMapAvailable:
          type: boolean
          description: If True seat map is available
        OperationalDisclosure:
          type: string
          description: OperationalDisclosure.
        FlightDistance:
          $ref: '#/components/schemas/Distance'
        BookingCode:
          type: string
          description: Carrier-specific code used for booking (class of service).
          example: Y
        CabinClass:
          type: string
          description: Class of service for the air leg.
          example: ECONOMY
          enum:
            - ECONOMY
            - FIRST
            - BUSINESS
            - PREMIUM_ECONOMY
        EquipmentChange:
          type: boolean
          description: True if the upcoming travel Leg will have different equipment (airplane) compared to the previous Leg.
        LoungeKeys:
          type: array
          description: List of keys referring to lounge details for the particular leg.
          items:
            type: string
            description: List of keys referring to lounge details for the particular leg.
            xml:
              name: LoungeKeys
        FareBasisCode:
          type: string
          description: Fare Basis Code for the corresponding Leg of Flight Offer.
          example: T21DVN5
        MealOptions:
          type: array
          description: Different meal options available in this particular Leg.
          example: [FOOD_FOR_PURCHASE]
          items:
            type: string
            description: Different meal options available in this particular Leg.
            example: FOOD_FOR_PURCHASE
            xml:
              name: MealOptions
        Amenities:
          $ref: '#/components/schemas/Amenities'
      description: Container information on each flight leg.
      xml:
        name: Leg
    Link:
      required:
        - Href
        - Method
      type: object
      properties:
        Accept:
          type: string
          description: Accept header.
        Method:
          type: string
          description: HTTP method to connect.
          example: GET
        Href:
          type: string
          description: HATEOAS URL to fetch details.
      description: Container for deeplink URL information.
    Lounge:
      required:
        - Name
      type: object
      properties:
        Name:
          type: string
          description: Name of the lounge corresponding to a lounge key
          example: The Centurion Lounge
        IsConferenceRoomAvailable:
          type: boolean
          description: Indicates whether the lounge has a conference room.
        PhoneNumber:
          type: string
          description: Phone number of the lounge (if available)
          example: NA
        Description:
          type: string
          description: Free text field with any extra information about the lounge
          example: Terminal B on the third level, pre-security, 5:30 am ? 8 pm (Sunday ? Friday), 5:30 am ? 6:30 pm (Saturday)
      description: List of lounges
      xml:
        name: Lounge
    Money:
      required:
        - Currency
        - Value
      type: object
      properties:
        Value:
          type: string
          description: The value of the element being defined.
          example: "21.9"
        Currency:
          type: string
          description: The ISO 4217 Currency Code that the value is expressed in.
          example: USD
      description: Container for price information.
    Offer:
      required:
        - International
        - Links
        - offerToken
        - OfferPrice
        - Refundable
        - SegmentIds
        - SplitTicket
      type: object
      properties:
        offerToken:
          type: string
          description: Unique key to identify each offer.
          example: v5-21c33c9b411f87e895f9dfa8df82b535-38-1-st-v5-7b789d5a41dd7490c9ffbeaead2aa37a-3
        ReferenceId:
          type: string
          description: Unique key to identify matching private fares.
          example: Flight_Reference_key_67890
        SplitTicket:
          type: boolean
          description: |-
            True if more that one ticket will be issued for this offer per passenger.
            False if only one ticket will be issued per passenger.
        MetaApiBook:
          type: boolean
          description: To indicate meta partners whether the air product is available for TAAS instant book.
        OpaqueFlight:
          type: boolean
          description: |-
            Indicate whether the air product is a opaque flight product or not.
            If true, then there will be no Segments node for this air product.
        Free24HourCancellation:
          type: boolean
          description: True if Booking can be cancelled  within 24 hours of booking.
        Links:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/Link'
          description: Container for deeplink URL information.
        SegmentIds:
          type: array
          description: |-
            Container for list of segment ids in a particular offer.
            For Opaque flight, no segment will be present.
          example:
            - 2816ed613aedd7513c953c33367df2e4
            - MjNfUHVibGlzaGVk
          items:
            type: string
            xml:
              name: SegmentIds
        OfferPrice:
          $ref: '#/components/schemas/OfferPrice'
        VfopKey:
          type: string
          description: Key generated for Valid form of payment
          example: VFOP-AA
        Refundable:
          type: boolean
          description: |-
            True if flight is refundable,
            False if it's not refundable.
        RefundPenalty:
          type: array
          description: Contains refund penalty information
          items:
            type: object
            properties:
              RefundPenalty:
                required:
                  - SegmentIds
                type: object
                properties:
                  SegmentIds:
                    type: array
                    description: Contains a list of segment Ids
                    example: [2816ed613aedd7513c953c33367df2e4]
                    items:
                      type: string
                      description: Contains a list of segment Ids
                      example: 2816ed613aedd7513c953c33367df2e4
                      xml:
                        name: SegmentIds
                  PreTripChange:
                    $ref: '#/components/schemas/RefundPenaltyDetail'
                description: Contains refund penalty information
        International:
          type: boolean
          description: |-
            True, if flight is international.
            False, if flight departs and arrives within the same country
        TicketType:
          type: string
          description: Type of ticket being issued
          example: E-Ticket
      description: Container for list of air offers. An offer gives total trip details including flight and pricing information.
      xml:
        name: Offer
    OfferPrice:
      required:
        - AveragePricePerTicket
        - BasePrice
        - PricePerPassengerCategory
        - TotalPrice
        - TotalTaxesAndFees
      type: object
      properties:
        TotalPrice:
          $ref: '#/components/schemas/Money'
        TotalRefund:
          $ref: '#/components/schemas/Money'
        BasePrice:
          $ref: '#/components/schemas/Money'
        TotalFees:
          $ref: '#/components/schemas/Money'
        Fees:
          type: array
          description: Container for list of fees charged
          items:
            $ref: '#/components/schemas/Fee'
        TotalTaxes:
          $ref: '#/components/schemas/Money'
        TotalTaxesAndFees:
          $ref: '#/components/schemas/Money'
        Discount:
          $ref: '#/components/schemas/Money'
        AveragePricePerTicket:
          $ref: '#/components/schemas/AveragePricePerTicket'
        PricePerPassengerCategory:
          type: array
          description: |-
            Container for pricing information for each passenger category.
            (note that passengers are grouped into standard categories based on the age ranges standardized by the airlines)
          items:
            $ref: '#/components/schemas/PricePerPassengerCategory'
      description: |-
        The total price of the package if purchased as a standalone hotel and a standalone flight.
        (base price + taxes and fees)
      xml:
        name: OfferPrice
    Power:
      type: object
      properties:
        Available:
          type: string
          description: Indication of the availability of Power amenity.
          enum:
            - YES
            - NO
            - UNKNOWN
      description: Container for power amenities available in this flight leg
    PricePerPassengerCategory:
      required:
        - BasePrice
        - Count
        - Category
      type: object
      properties:
        Category:
          type: string
          description: Passenger category
          example: ADULT
          enum:
            - ADULT
            - SENIOR
            - ADULT_CHILD
            - CHILD
            - INFANT_IN_SEAT
            - INFANT_IN_LAP
        Count:
          type: integer
          description: Total number of travelers of the same passenger category
          format: int32
          example: 2
        TotalPrice:
          $ref: '#/components/schemas/Money'
        BasePrice:
          $ref: '#/components/schemas/Money'
        TotalTaxes:
          $ref: '#/components/schemas/Money'
        Fees:
          type: array
          description: List of fees per passenger category
          items:
            $ref: '#/components/schemas/Fee'
      description: |-
        Container for pricing information for each passenger category.
        (note that passengers are grouped into standard categories based on the age ranges standardized by the airlines)
      xml:
        name: PricePerPassengerCategory
    RefundPenaltyDetail:
      required:
        - Allow
      type: object
      properties:
        Allow:
          type: string
          description: Status of penalty information
          example: YES
          enum:
            - YES
            - NO
            - UNKNOWN
        Penalty:
          $ref: '#/components/schemas/Money'
      description: Container for en route change/cancellations and pre-trip change/cancellations
    Segment:
      required:
        - DepartureArrivalDayDifference
        - SegmentId
      type: object
      properties:
        SegmentId:
          type: string
          description: |-
            Unique identifier for a single flight segment.
            Shown in case of opaque flight offer as well.
            Can be alphanumeric or numeric.
          example: 2816ed613aedd7513c953c33367df2e4
        Links:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/Link'
          description: Container for deeplink URL information.
        Price:
          $ref: '#/components/schemas/OfferPrice'
        IncludesNonFlightLeg:
          type: boolean
          description: True if any Leg associated with this Segment is via a non-flight type of transit (Bus, Train or Boat)
        Legs:
          type: array
          description: Container information on each flight leg.
          items:
            $ref: '#/components/schemas/Leg'
        BaggageFees:
          type: array
          description: Container for baggage fee information of each bag type. The baggage fee can vary for each bag type. The amount can be zero, fixed amount or will be in a range.
          items:
            $ref: '#/components/schemas/BaggageFee'
        AccountCode:
          type: string
          description: Lists any Account Code that has been applied to this segment.
          example: RRR11
        BasicEconomy:
          type: boolean
          description: True if the corresponding fare ticket type associated with the segment is Basic Economy
          example: false
        SeatsLeft:
          type: integer
          description: Remaining number of seats available for this segment offer.
          format: int32
          example: 9
        FareType:
          type: string
          description: Type of fare.
          example: PUBLISHED
          enum:
            - NET
            - PUBLISHED
            - WEB
        DepartureArrivalDayDifference:
          type: integer
          description: This is an indicator (can have values of -1, 0, 1, 2, etc.) which depends on the relative difference between the arrival and departure dates.
          format: int32
          example: 0
        AirportChange:
          type: boolean
          description: True if there the Segment is having a different Departure airport compared to the Arrival airport of previous Segment.
        TotalStops:
          type: integer
          description: The total number of stops in this segment(Nullable in case of Opaque Flights)
          format: int32
          example: 1
        FlightDuration:
          type: string
          description: |-
            Total duration of the flight segment
            (Nullable in case of Opaque Flights)
          example: PT9H0M
        OpaqueDepartureTime:
          type: string
          description: Contains the name of the Fare tagged against the specific fare options.
          example: Comfort+
        OpaqueNumberOfStops:
          type: string
          description: Departure time range will be shown only for opaque flight offers.
          example: 12AM_TO_7:59AM
      description: |-
        Container of information about each flight offer
        (Less information shown if the offer is and opaque flight offer)
        Flights (the complete journey to your final destination by air) are made up of:
         Segments (the trip from one stopping place to another) are made up of:
         Legs (take off at one airport and land at another)
      xml:
        name: Segment
    Warning:
      required:
        - Code
        - Description
      type: object
      properties:
        Code:
          type: string
          description: Warning message code.
          example: NO_RESULTS_FOUND
        Description:
          type: string
          description: Warning message description
          example: No flights solutions found for the request.
      description: Container for warning messages.
    Wifi:
      type: object
      properties:
        Available:
          type: string
          description: Indication of the availability of WIFI amenity.
          enum:
            - YES
            - NO
            - UNKNOWN
      description: Container for WiFi amenities available in this flight leg
    APIMError:
      title: APIMError
      description: Container for error responses from APIM
      properties:
        message:
          type: string
    FlightLinksRequest:
      type: object
      required:
        - Flights
        - Passengers
      properties:
        Flights:
          type: array
          items:
            $ref: "#/components/schemas/Flight"
        Passengers:
          type: object
          items:
            $ref: "#/components/schemas/PassengerDetails"
        Links:
          type: array
          items:
            type: string
    Flight:
      type: object
      required:
        - FlightId
        - Segments
      properties:
        FlightId:
          type: string
          example: "abc"
        Segments:
          type: array
          items:
            type: object
            properties:
              Segment:
                type: object
                required:
                  - FareType
                  - Provider
                  - Legs
                properties:
                  FareType:
                    type: string
                    enum:
                      - PUBLISHED
                      - NET
                      - WEB
                  Provider:
                    type: string
                    example: "Sabre"
                  LowCost:
                    type: boolean
                  Legs:
                    type: array
                    items:
                      type: object
                      required:
                        - DepartureAirport
                        - ArrivalAirport
                        - DepartureDateTime
                        - ArrivalDateTime
                        - FlightNumber
                        - MarketingAirlineCode
                        - BookingCode
                        - CabinClass
                      properties:
                        DepartureAirport:
                          type: object
                          properties:
                            Airport:
                              type: object
                              required:
                                - Code
                              properties:
                                Code:
                                  type: string
                                  example: "LAS"
                        ArrivalAirport:
                          type: object
                          properties:
                            Airport:
                              type: object
                              required:
                                - Code
                              properties:
                                Code:
                                  type: string
                                  example: "SEA"
                        DepartureDateTime:
                          type: string
                          format: date-time
                          example: "2021-07-05T07:15:00.000-06:00"
                        ArrivalDateTime:
                          type: string
                          format: date-time
                          example: "2021-07-05T09:13:00.000-08:00"
                        FlightNumber:
                          type: string
                          example: "2537"
                        MarketingAirlineCode:
                          type: string
                          example: "AA"
                        BookingCode:
                          type: string
                          example: "Y"
                        CabinClass:
                          type: string
                          enum:
                            - ECONOMY
                            - FIRST
                            - BUSINESS
                            - PREMIUM_ECONOMY
        TotalPrice:
          type: object
          required:
            - Value
            - Currency
          properties:
            Value:
              type: string
              example: "300.00"
            Currency:
              type: string
              example: "USD"
    PassengerDetails:
      type: object
      required:
        - Adult
        - Senior
      properties:
        Adult:
          type: string
          example: "1"
        Senior:
          type: string
          example: "1"
        ChildrenAges:
          type: string
          example: "4,5"
        InfantInSeat:
          type: string
          example: "1"
        InfantInLap:
          type: string
          example: "1"
    FlightLinksResponse:
      type: object
      required:
        - TransactionId
      properties:
        Warnings:
          type: array
          items:
            type: object
            required:
              - Code
              - Description
            properties:
              Code:
                type: string
                example: "FLIGHT_LINKS_MISSING"
              Description:
                type: string
                example: "1 of the link(s) requested found missing in the response"
        Links:
          type: array
          items:
            type: object
            required:
              - FlightId
            properties:
              FlightId:
                type: string
                example: "abc"
              WebDetails:
                type: object
                required:
                  - Method
                  - Href
                properties:
                  Method:
                    type: string
                    example: "GET"
                  Href:
                    type: string
                    example: "https://www.expedia.com/go/udp?CCheck=1&piid=~null.S~AQoCCAESBwjUBBABGAEgASAMIAcgDSgC~AQpCCh8I0aQBEgM1MTcYwlMgwzsozdvrATDb3esBOFdAAFgBCh8I0aQBEgM3MjUYwzsgrhwont_rATDr5esBOFdAAFgBEgYIARABGAEYBCIECAMQASIECAIQASIECAEQAigCMAE&Price=2576.68&CurrencyCode=USD&currency=USD&DepartureTLA=L1:COK&ArrivalTLA=L1:ORD&DepartureDate=L1:2021-05-06&ArrivalDate=L1:2021-05-06&NumAdult=1&NumSenior=1&NumChild=2&ChildrenAges=2|14&Sort=10&TripType=OneWay&ProductType=air&eapid=0-1&ServiceVersion=V5&MessageGuid=c8912c1f-269b-4ca0-97d3-2ab4a62ea14a&langid=1033"
              ApiDetails:
                type: object
                required:
                  - Accept
                  - Method
                  - Href
                properties:
                  Accept:
                    type: string
                    example: "application/vnd.exp-flight.v3+json"
                  Method:
                    type: string
                    example: "GET"
                  Href:
                    type: string
                    example: "https://apim.expedia.com/flights/details/~null.S~AQoCCAESBwjUBBABGAEgASAMIAcgDSgC~AQpCCh8I0aQBEgM1MTcYwlMgwzsozdvrATDb3esBOFdAAFgBCh8I0aQBEgM3MjUYwzsgrhwont_rATDr5esBOFdAAFgBEgYIARABGAEYBCIECAMQASIECAIQASIECAEQAigCMAE?price=2576.68&childrenAges=2%2C14"
        TransactionId:
          type: string
          example: "a9e371c4-89d9-4f9c-8df7-df105830e7fe"
    ErrorResponse:
      type: object
      required:
        - TransactionId
        - Errors
      properties:
        TransactionId:
          type: string
          example: "a9e371c4-89d9-4f9c-8df7-df105830e7fe"
        Errors:
          type: array
          items:
            type: object
            required:
              - Code
              - Description
            properties:
              Code:
                type: string
                example: "ERROR_CODE"
              Description:
                type: string
                example: "Error Description"
    Address:
      required:
        - Address1
        - City
        - Country
      type: object
      properties:
        Address1:
          type: string
          description: Street Number, Street Name, or PO Box
          example: 724 Pine St
        Address2:
          type: string
          description: 'Apartment, Floor, Suite, Bldg # or more specific information
                about Address1.'
          example: Second Floor
        City:
          type: string
          description: The city
          example: New York
        Province:
          type: string
          description: The state or province
          example: NY
        Country:
          type: string
          description: 3-letter code for the country
          example: USA
        PostalCode:
          type: string
          description: Zip/postal code
          example: "98004"
    AgeClassRestriction:
      type: object
      properties:
        AgeClass:
          type: string
          description: Categories for hotel guests, based on age.
          example: Senior
          enum:
            - All Ages
            - Senior
            - Adult
            - Child
            - Infant
            - Other
        AgeMinimum:
          type: integer
          description: The minimum age defined in a particular AgeClass.
          format: int32
          example: 2
        AgeMaximum:
          type: integer
          description: |-
            The maximum age defined in a particular AgeClass.
            If not specified, the AgeClass has no upper bound.
          format: int32
          example: 17
        MaxGuestCount:
          type: integer
          description: The max guest count allowed in a particular AgeClass.
          format: int32
          example: 3
      description: Container for room occupancy rules based on the age of the guests.
    Amenity:
      type: object
      properties:
        SeatChoice:
          $ref: '#/components/schemas/SeatChoice'
        CarryOnBag:
          $ref: '#/components/schemas/Bag'
        CheckedBag:
          type: array
          description: List of Checked Bag Amenity.
          items:
            $ref: '#/components/schemas/Bag'
        Change:
          $ref: '#/components/schemas/AmenityInfo'
        Free24HrCancellation:
          type: boolean
          description: True if booking can be cancelled with in 24 hours after booking.
        Refund:
          $ref: '#/components/schemas/AmenityInfo'
        PersonalItem:
          $ref: '#/components/schemas/AmenityInfo'
        Upgrade:
          $ref: '#/components/schemas/AmenityInfo'
        BoardingGroup:
          type: array
          description: List of available BoardingGroup Amenity.
          example: [BASED_ON_SEAT_LOCATION]
          items:
            type: string
            description: List of available BoardingGroup Amenity.
            example: BASED_ON_SEAT_LOCATION
            xml:
              name: BoardingGroup
            enum:
              - LAST
              - PRIORITY
              - BASED_ON_SEAT_LOCATION
              - PAY_TO_UPGRADE
      description: Container for various amenities included in a particular segment.
      xml:
        name: Amenities
    AmenityInfo:
      type: object
      properties:
        Availability:
          type: string
          description: Availability of Amenity
          example: INCLUDED
          enum:
            - INCLUDED
            - NOT_AVAILABLE
            - AVAILABLE_FOR_FEE
      description: |-
        Availability of Passenger Temperature Check.
        Possible values: INCLUDED, NOT_AVAILABLE
      xml:
        name: AmenityInfo
    Bag:
      type: object
      properties:
        BagNumber:
          type: integer
          description: Bag number of CarryOnBag amenity for which the Availability applies.
          format: int32
          example: 1
        Availability:
          type: string
          description: Availability of Amenity
          example: INCLUDED
          enum:
            - INCLUDED
            - NOT_AVAILABLE
            - AVAILABLE_FOR_FEE
      description: List of Checked Bag Amenity.
      xml:
        name: Bag
    CrossSell:
      required:
        - HotelCount
        - Hotels
        - NumberOfNights
        - NumberOfRooms
        - Occupants
        - Offers
        - StayDates
      type: object
      properties:
        HotelCount:
          type: integer
          description: |
            Number of hotels available.
          format: int32
        StayDates:
          $ref: '#/components/schemas/StayDates'
        NumberOfRooms:
          type: integer
          description: |
            Number of rooms requested.
          format: int32
          default: 1
        NumberOfNights:
          type: integer
          description: |
            Number of nights guest staying in the hotel.
          format: int32
        Occupants:
          type: array
          description: |
            Container for occupants list.
          items:
            $ref: '#/components/schemas/Occupant'
        Hotels:
          type: array
          description: |
            Container for information on each hotel offer.
          items:
            $ref: '#/components/schemas/Hotel'
        Offers:
          type: array
          description: |
            Container for information about the hotel used in this package offer.
          items:
            $ref: '#/components/schemas/PackageOffers'
      description: Container for cross sell information
      xml:
        name: CrossSell
    Description:
      type: object
      properties:
        LocationTeaser:
          type: string
          description: A description of the property's location.
          example: Built on the original site of the University of Washington
        HotelTeaser:
          type: string
          description: A description of the features and amenities of the property itself.
          example: A top-notch fitness club and spa features a pool
        RoomTeaser:
          type: string
          description: The common description for all of the rooms in the property.
          example: Renovated in May 2016, guest rooms feature upholstered chairs
      description: Container for information of the descriptions of the hotel.
    FareOptions:
      required:
        - FareName
        - FeeApplied
        - Included
        - SegmentIds
      type: object
      properties:
        FareName:
          type: string
          description: Contains the name of the Fare tagged against the specific fare options.
          example: Comfort+
        SegmentIds:
          type: array
          description: Contains list of segment Ids to which these FareOptions are provided.
          example: [MTEx]
          items:
            type: string
            description: Contains list of segment Ids to which these FareOptions are provided.
            example: MTEx
            xml:
              name: SegmentIds
        Included:
          type: array
          description: Contains list of options that are already included.
          example: [CARRY_ON_BAG]
          items:
            type: string
            description: Contains list of options that are already included.
            example: CARRY_ON_BAG
            xml:
              name: Included
        FeeApplied:
          type: array
          description: Contains list of options that are fee applied.
          example: [Meals]
          items:
            type: string
            description: Contains list of options that are fee applied.
            example: Meals
            xml:
              name: FeeApplied
        NotAvailable:
          type: array
          description: Contains list of options that are unavailable.
          example: [CANCELLATION]
          items:
            type: string
            description: Contains list of options that are unavailable.
            example: CANCELLATION
            xml:
              name: NotAvailable
        Amenities:
          $ref: '#/components/schemas/Amenity'
      description: Contains list of fare options
      xml:
        name: FareOptions
    FlightDetailsResponse:
      required:
        - Lounges
        - Offer
        - TransactionId
      type: object
      properties:
        Warnings:
          type: array
          description: Container for Warning Codes.
          items:
            $ref: '#/components/schemas/FlightDetailsWarning'
        Segments:
          type: array
          description: Container for flight segments.
          items:
            $ref: '#/components/schemas/Segment'
        Offer:
          $ref: '#/components/schemas/FlightDetailsOffer'
        AllOffers:
          type: array
          description: Contains list of all the available alternate fare upsell/downsell offers.
          items:
            $ref: '#/components/schemas/FlightDetailsOffer'
        ValidFormsOfPayment:
          type: array
          description: Container for fees that are charged for using certain payment methods.
          items:
            $ref: '#/components/schemas/AirValidFormsOfPayment'
        Lounges:
          type: object
          additionalProperties:
            type: array
            description: Container showing list of keys and its related lounge information. This key name can change based on the keys defined.
            items:
              $ref: '#/components/schemas/Lounge'
        CrossSell:
          $ref: '#/components/schemas/CrossSell'
        TransactionId:
          type: string
          description: Unique identifier for the transaction.
          example: f06edfa3-27f4-44e6-838c-b8dd3d0a3210
      xml:
        name: FlightDetailsResponse
    Hotel:
      required:
        - Id
        - Name
        - LocalCurrencyCode
        - Location
        - Distance
        - Description
        - Status
        - ThumbnailUrl
        - StarRating
        - IsOfficialRating
        - GuestRating
        - GuestReviewCount
        - Links
        - RoomTypes
        - Policies
        - HotelAmenities
        - RoomAmenities
      type: object
      properties:
        Id:
          type: string
          description: The unique, Expedia-specific hotel property identifier used to designate a single hotel.
          example: "14747"
        Name:
          type: string
          description: The common name of the hotel
          example: Four Seasons Hotel Seattle
        LocalCurrencyCode:
          type: string
          description: The Local Currency Code for Hotel (which will be used for any fees that must be paid at the hotel)
          example: USD
        Location:
          required:
            - Address
            - PointOfInterest
            - GeoLocation
          type: object
          properties:
            Address:
              $ref: '#/components/schemas/Address'
            PointOfInterest:
              type: string
            GeoLocation:
              $ref: '#/components/schemas/GeoLocation'
          description: Hotel address information
        Distance:
          $ref: '#/components/schemas/Distance'
        Description:
          $ref: '#/components/schemas/Description'
        Status:
          type: string
          description: "\t\nIndicates whether there are available offers at the property\
            \ during the dates requested, as well as information as to why.\nNote\
            \ that pricing will only be present in the API response for a status of\
            \ 'AVAILABLE'.\nIf there are no rooms available at the property for the\
            \ dates requested, then 'NOT_AVAILABLE' will be returned.\nIf there are\
            \ available rooms, but none that meet the specific parameters of the search\
            \ request, then one of the other messages will be returned"
          example: AVAILABLE
          enum:
            - AVAILABLE
            - NOT_AVAILABLE
            - ERROR
            - NUMBER_OF_ADULTS_NOT_ACCEPTED
            - NUMBER_OF_CHILDREN_NOT_ACCEPTED
            - NUMBER_OF_INFANTS_NOT_ACCEPTED
            - NUMBER_OF_PERSONS_NOT_ACCEPTED
            - CHECK_IN_AGE_NOT_ACCEPTED
        ThumbnailUrl:
          type: string
          description: URL of the thumbnail image of the hotel.Note that other images sizes are available - You can find a link to the complete list of Supported Hotel Image Sizes in the Related Links section at the bottom of the page
          example: https://images.trvl-media.com/hotels/3000000/2170000/2163100/2163007/2163007_15_t.jpg
        StarRating:
          type: string
          description: Star rating value of the hotel property.
          example: "5.0"
          enum:
            - "1.0"
            - "1.5"
            - "2.0"
            - "2.5"
            - "3.0"
            - "3.5"
            - "4.0"
            - "4.5"
            - "5.0"
        IsOfficialRating:
          type: boolean
          description: |-
            Official rating value indicates if the hotel is certified or official.
            (Required in Australia Point of Sale)
          example: true
        GuestRating:
          type: string
          description: |-
            Average overall guest rating of the hotel.
            The value is between 1.0 and 5.0 in 0.1 increments.
            Higher is better.
          example: "4.5"
        GuestReviewCount:
          type: integer
          description: The total count of guest reviews used to create the average GuestRating above.
          format: int32
          example: 240
        Links:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/Link'
          description: Container for list of HATEOAS links to Expedia/partner website to complete booking.
        Policies:
          $ref: '#/components/schemas/HotelPolicies'
        Media:
          type: array
          description: Container for hotel images
          items:
            $ref: '#/components/schemas/Media'
        HotelAmenities:
          type: array
          description: Container for all hotel amenities.
          items:
            $ref: '#/components/schemas/LodgingAmenity'
        RoomAmenities:
          type: array
          description: Container for all room amenities.
          items:
            $ref: '#/components/schemas/LodgingAmenity'
        Accessibility:
          type: array
          description: The accessibility options available for the room.
          example: ['Accessible path of travel', 'Accessible bathroom', 'Roll-in shower', 'Handicapped parking', 'In-room accessibility', 'Accessibility equipment for the deaf', 'Braille or raised signage']
          items:
            type: string
            description: The accessibility options available for the room.
            example: Handicapped parking
            xml:
              name: Accessibility
        RoomTypes:
          type: array
          description: Container for all of available room types.
          items:
            $ref: '#/components/schemas/RoomType'
      description: Container for information on each offered hotel.
    HotelPolicies:
      type: object
      properties:
        CheckInStartTime:
          type: string
          description: Beginning of the standard check-in window on the check in date, stated in the local time of the property.
          example: 3 PM
        CheckInEndTime:
          type: string
          description: End of the standard check-in window on the check in date, stated in the local time of the property.
          example: 5 PM
        CheckOutTime:
          type: string
          description: Customers must check out before this time on the check out date, expressed in the local time of the property.
          example: noon
        PetPolicies:
          type: array
          description: The policy of the property toward having pets stay with guests.
          example:
            - Pets allowed, Up to 20 lb
          items:
            type: string
            description: The policy of the property toward having pets stay with guests.
            example: '["Pets allowed, Up to 20 lb"]'
            xml:
              name: PetPolicies
        ChildrenAndExtraBedsPolicies:
          type: array
          description: The policy of the property for having children stay at the property, as well as for including extra beds in the room.
          example: [Children are welcome, Cribs/infant beds (surcharge)]
          items:
            type: string
            description: The policy of the property for having children stay at the property, as well as for including extra beds in the room.
            example: Children are welcome, Cribs/infant beds (surcharge)
            xml:
              name: ChildrenAndExtraBedsPolicies
      description: Container for Hotel policy information.
    HotelReference:
      required:
        - HotelId
        - RoomKey
      type: object
      properties:
        HotelId:
          type: string
          description: Unique id to represent a hotel
          example: "2163007"
        RoomKey:
          type: string
          description: Unique id to represent Room
          example: CgUyMDIzMBIuCgkyMDEzMDQ1OTcSCTIwNjMyNzYwMRoCMjQqCDIwMTcwNzI1MggyMDE3MDcyNioDCgEy
      description: Container for Hotel Reference information
    LodgingAmenity:
      required:
        - Id
        - Name
      type: object
      properties:
        Id:
          type: string
          description: The identification of a property amenity.
          example: "2065"
        Name:
          type: string
          description: The description of a property amenity.
          example: Business center
      description: The amenities of the rateplan.
    Media:
      type: object
      properties:
        Type:
          type: string
          description: |-
            type of the media. So far there is only one option:
            1: Image
          example: "1"
        Title:
          type: string
          description: Image title
          example: Guestroom
        Size:
          type: string
          description: |-
            Image size
            You can find a link to the complete list of Supported Images Sizes in the Related Links section at the bottom of the page.
          example: t
        Url:
          type: string
          description: Image URL
          example: https://images.trvl-media.com/hotels/1000000/30000/20300/20230/20230_159_t.jpg
      description: Container for hotel images
    Occupant:
      type: object
      properties:
        Adults:
          type: integer
          description: |
            The number of adults in a room.
          format: int32
          example: 1
        ChildAges:
          type: array
          description: |
            The ages of children in a room.
          example:
            - 2
            - 3
            - 5
          items:
            type: integer
            description: |
              The ages of children in a room.
            format: int32
            xml:
              name: ChildAges
      description: Container of occupants. It is an array including occupants of each room.
    FlightDetailsOffer:
      required:
        - International
        - Links
        - MerchantName
        - offerToken
        - FareOptions
        - OpaqueFlight
        - OfferPrice
        - Refundable
        - SplitTicket
        - TicketType
        - UndisclosedGenderSupported
        - UnspecifiedGenderSupported
      type: object
      properties:
        offerToken:
          type: string
          description: Unique key to identify each offer.
          example: v5-21c33c9b411f87e895f9dfa8df82b535-38-1-st-v5-7b789d5a41dd7490c9ffbeaead2aa37a-3
        ReferenceId:
          type: string
          description: Key that allows the user to create a package using this flight.
          example: Flight_Reference_key_67890
        SplitTicket:
          type: boolean
          description: |-
            True if more that one ticket will be issued for this offer per passenger.
            False if only one ticket will be issued per passenger.
        MetaApiBook:
          type: boolean
          description: To indicate meta partners whether the air product is available for TAAS instant book.
        OpaqueFlight:
          type: boolean
          description: |-
            Indicate whether the air product is a opaque flight product or not.
            If true, then there will be no Segments node for this air product.
        Free24HourCancellation:
          type: boolean
          description: True if Booking can be cancelled  within 24 hours of booking.
        MerchantName:
          type: string
          description: All Merchant name appending them together with a ?*?
          example: Spirit Airlines*Frontier Airlines
        Links:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/Link'
          description: Container for deeplink URL information.
        SegmentIds:
          type: array
          description: |-
            Container for list of segment ids in a particular offer.
            For Opaque flight, no segment will be present.
          example:
            - 2816ed613aedd7513c953c33367df2e4
            - MjNfUHVibGlzaGVk
          items:
            type: string
            description: |-
              Container for list of segment ids in a particular offer.
              For Opaque flight, no segment will be present.
            example: 2816ed613aedd7513c953c33367df2e4
            xml:
              name: SegmentIds
        OfferPrice:
          $ref: '#/components/schemas/OfferPrice'
        VfopKey:
          type: string
          description: Key generated for Valid form of payment
          example: VFOP-AA
        Refundable:
          type: boolean
          description: |-
            True if flight is refundable,
            False if it's not refundable.
        RefundPenalty:
          type: array
          description: Contains refund penalty information
          items:
            $ref: '#/components/schemas/FlightDetailsRefundPenalty'
        International:
          type: boolean
          description: |-
            True, if flight is international.
            False, if flight departs and arrives within the same country
        TicketType:
          type: string
          description: Type of ticket being issued
          example: E-Ticket
        FareOptions:
          type: array
          description: Contains list of fare options
          items:
            $ref: '#/components/schemas/FareOptions'
        UndisclosedGenderSupported:
          type: boolean
          description: |-
            Whether to support undisclosed gender?
            True = support
            False = not support
        UnspecifiedGenderSupported:
          type: boolean
          description: |-
            Whether to support unspecified gender?
            True = support
            False = not support
      description: Contains list of all the available alternate fare upsell/downsell offers.
      xml:
        name: Offer
    PackageOffers:
      required:
        - Links
        - PackagedOffer
        - Price
      type: object
      properties:
        Price:
          $ref: '#/components/schemas/PackagePrice'
        Links:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/Link'
          description: Container for HATEOAS links to websites and/or API's.
        PackagedOffer:
          $ref: '#/components/schemas/PackagedOffer'
      description: |
        Container for information about the hotel used in this package offer.
    PackagePrice:
      required:
        - AverageCostPerPerson
        - Fees
        - PackageBasePrice
        - PackageTaxesAndFees
        - PackageTotalPrice
        - Savings
        - StandAloneTotalPrice
      type: object
      properties:
        PackageBasePrice:
          $ref: '#/components/schemas/Money'
        PackageTotalPrice:
          $ref: '#/components/schemas/Money'
        PackageTaxesAndFees:
          $ref: '#/components/schemas/Money'
        StandAloneTotalPrice:
          $ref: '#/components/schemas/Money'
        Fees:
          type: array
          description: |-
            Special fees attached to the package (for example, Air Service Fees).
            This amount is not included in PackageTaxesAndFees.
          items:
            $ref: '#/components/schemas/Fee'
        TotalHotelMandatoryFees:
          $ref: '#/components/schemas/Fee'
        Savings:
          $ref: '#/components/schemas/PackageSavings'
        AverageCostPerPerson:
          $ref: '#/components/schemas/Money'
      description: Container for package price information
    PackageSavings:
      required:
        - Currency
        - Value
      type: object
      description: The amount of money that the traveler is saving by booking a package over booking the same offers as standalone products.
      allOf:
        - $ref: '#/components/schemas/Money'
        - type: object
          properties:
            Value:
              type: string
              description: The value of the element being defined.
              example: "21.9"
            Currency:
              type: string
              description: The ISO 4217 Currency Code that the value is expressed in.
              example: USD
            LocalCurrencyPrice:
              $ref: '#/components/schemas/Money'
            Type:
              type: string
              description: Savings type
              example: HotelDeal
            Description:
              type: string
              description: Description of savings
              example: Book this and save $55 (7%)
    PackagedOffer:
      required:
        - FlightReferenceId
        - HotelReference
      type: object
      properties:
        HotelReference:
          type: array
          description: Container for Hotel Reference information
          items:
            $ref: '#/components/schemas/HotelReference'
        FlightReferenceId:
          type: string
          description: Flight offer id
          example: v587889e324c42342ec2ab7a8ecddc8a88
        StayDates:
          $ref: '#/components/schemas/StayDates'
        NumberOfNights:
          type: integer
          description: Number of nights guest staying in the hotel
          format: int32
          example: 4
      description: Container for Package Offer
    Promotion:
      type: object
      properties:
        Type:
          type: string
          description: 'Promotion type, possible values: PO | FN'
          example: PO
        Description:
          type: string
          description: The description of the promotion.
          example: 20%Off
        Value:
          type: number
          format: double
    RatePlan:
      required:
        - InventorySourceId
        - RatePlanId
        - RoomTypeId
      type: object
      properties:
        RoomTypeId:
          type: string
          description: The room type identifier.
          example: "200287452"
        RatePlanId:
          type: string
          description: The rate plan identifier.
          example: "201714191"
        RateRuleId:
          type: string
          description: The identifier of rate rule.
          example: "213544817"
        InventorySourceId:
          type: string
          description: The identification number of the source that provides the rate plan.
          example: "24"
        InventorySourceCode:
          type: string
          description: The source name that provided the rate plan.
          example: JT
        StayDates:
          $ref: '#/components/schemas/StayDates'
        RemainingCount:
          type: integer
          description: |-
            The number of rooms remaining through Expedia for this room type.
            NOTE: This value does NOT represent the total number of rooms remaining at the hotel property, only the number of rooms allocated to Expedia for sale by the property that currently remain in Expedia's inventory. When a hotel is listed as 'sold out' by Expedia there may still be rooms available for sale by the hotel through other channels.
            CMA Compliance Note (UK): websites in the UK that display remainingCount should make it clear to consumers that this count refers to the number of rooms remaining within Expedia inventory - NOT the number remaining at the property.
          format: int32
          example: 3
        FreeInternet:
          type: boolean
          description: |-
            Indicates whether the price of the room includes free Internet.
            (either wireless or wired)
          example: true
        FreeWiFi:
          type: boolean
          description: Indicates whether the price of the room includes free wireless Internet access.
          example: true
        FreeInternetDetails:
          type: array
          description: The localized details for the free internet amenity (only shown when FreeInternet = true).
          example:
            - Free Wireless Internet, Wired high-speed Internet-comp
          items:
            type: string
            description: The localized details for the free internet amenity (only shown when FreeInternet = true).
            example: '["Free Wireless Internet, Wired high-speed Internet-comp"]'
            xml:
              name: FreeInternetDetails
        FreeParking:
          type: boolean
          description: Indicates whether the price of the room includes free parking.
          example: true
        FreeBreakfast:
          type: boolean
          description: Indicates whether the price of the room includes free breakfast.
          example: true
        FreeBreakfastDetails:
          type: array
          description: The localized details for the free breakfast amenity (only shown when FreeBreakfast = true).
          example:
            - Full Breakfast
            - Full Board
          items:
            type: string
            description: The localized details for the free breakfast amenity (only shown when FreeBreakfast = true).
            example: '["Full Breakfast","Full Board"]'
            xml:
              name: FreeBreakfastDetails
        Amenities:
          type: array
          description: The amenities of the rateplan.
          items:
            $ref: '#/components/schemas/LodgingAmenity'
      description: Container for rate plan information.
    FlightDetailsRefundPenalty:
      required:
        - SegmentIds
      type: object
      properties:
        SegmentIds:
          type: array
          description: Contains a list of segment Ids
          example: [2816ed613aedd7513c953c33367df2e4]
          items:
            type: string
            description: Contains a list of segment Ids
            example: 2816ed613aedd7513c953c33367df2e4
            xml:
              name: SegmentIds
        PreTripChange:
          $ref: '#/components/schemas/RefundPenaltyDetail'
        PreTripCancel:
          $ref: '#/components/schemas/RefundPenaltyDetail'
        EnrouteChange:
          $ref: '#/components/schemas/RefundPenaltyDetail'
        EnrouteCancel:
          $ref: '#/components/schemas/RefundPenaltyDetail'
        Transferable:
          type: string
          enum:
            - YES
            - NO
            - UNKNOWN
        NameChangeAllowed:
          type: string
          enum:
            - YES
            - NO
            - UNKNOWN
      description: Contains refund penalty information
    RoomOccupancyPolicy:
      required:
        - MaxGuestCount
        - MinCheckInAge
      type: object
      properties:
        MaxGuestCount:
          type: integer
          description: The maximum number of guests allowed to stay in a room.
          format: int32
          example: 3
        AgeClassRestrictions:
          type: array
          description: Container for room occupancy rules based on the age of the guests.
          items:
            $ref: '#/components/schemas/AgeClassRestriction'
      description: Room occupancy policy.
    RoomType:
      required:
        - offerToken
        - RatePlanType
        - RatePlans
        - Traveler
      type: object
      properties:
        Description:
          type: string
          description: Text description of the room type.
          example: Room, 1 King Bed, City View (Seattle V)
        RatePlans:
          type: array
          description: Container for rate plan information.
          items:
            $ref: '#/components/schemas/RatePlan'
        Promotions:
          type: array
          items:
            $ref: '#/components/schemas/Promotion'
        SmokingOption:
          type: string
          description: |-
            The smoking options available for the room type.
            Options could be:
            SmokingOrNonSmoking
            Smoking
            NonSmoking
          example: SmokingOrNonSmoking
          enum:
            - SmokingOrNonSmoking
            - Smoking
            - NonSmoking
        RoomOccupancyPolicy:
          $ref: '#/components/schemas/RoomOccupancyPolicy'
        Amenities:
          type: array
          description: Container for all room amenities.
          items:
            $ref: '#/components/schemas/LodgingAmenity'
        Media:
          type: array
          description: Container for hotel images
          items:
            $ref: '#/components/schemas/Media'
    SeatChoice:
      type: object
      properties:
        Availability:
          type: string
          description: Availability of Amenity
          example: INCLUDED
          enum:
            - INCLUDED
            - NOT_AVAILABLE
            - AVAILABLE_FOR_FEE
        Restriction:
          type: string
          description: Restriction if any on SeatChoice Amenity.
          example: ONLY_AT_CHECKIN
          enum:
            - ONLY_AT_CHECKIN
      description: Contains seat choice information.
      xml:
        name: SeatChoice
    StayDates:
      required:
        - CheckInDate
        - CheckOutDate
      type: object
      properties:
        CheckInDate:
          type: string
          description: The initial day of the hotel stay in an ISO 8601 Date format [YYYY-MM-DD].
          format: date
        CheckOutDate:
          type: string
          description: The final day of the hotel stay in an ISO 8601 Date format [YYYY-MM-DD].
          format: date
      description: Container for Dates of Stay information
    FlightDetailsWarning:
      required:
        - Code
        - Description
      type: object
      properties:
        Code:
          type: string
          description: Standardized warning code.
          example: PRICE_INCREASE
        Description:
          type: string
          description: Standardized warning description message.
          example: A price change was detected.
        OriginalPrice:
          $ref: '#/components/schemas/Money'
        NewPrice:
          $ref: '#/components/schemas/Money'
        ChangedAmount:
          $ref: '#/components/schemas/Money'
    FlexSearchResponse:
      required:
        - Offers
        - TransactionId
      type: object
      properties:
        Warnings:
          type: array
          description: Container for Warning Codes.
          items:
            type: object
            properties:
              Warning:
                required:
                  - Code
                  - Description
                type: object
                properties:
                  Code:
                    type: string
                    description: Warning message code.
                    example: NO_RESULTS_FOUND
                  Description:
                    type: string
                    description: Warning message description.
                    example: No flights solutions found for the request.
                description: Container for Warning Codes.
        Offers:
          type: array
          description: |-
            Container for list of air offers.
            An offer gives trip details including flight and pricing information.
          items:
            type: object
            properties:
              Offer:
                required:
                  - DepartureDates
                  - OfferPrice
                type: object
                properties:
                  DepartureDates:
                    type: array
                    description: Container for the list of departure dates for the first Leg in each segment in chronological order.
                    example: [2021-02-19T09:12:28Z]
                    items:
                      type: string
                      description: Container for the list of departure dates for the first Leg in each segment in chronological order.
                      format: date-time
                      xml:
                        name: DepartureDates
                  OfferPrice:
                    required:
                      - TotalPrice
                      - TotalTaxesAndFees
                    type: object
                    properties:
                      TotalPrice:
                        type: object
                        properties:
                          Money:
                            required:
                              - Currency
                              - Value
                            type: object
                            properties:
                              Value:
                                type: string
                                description: The value of the element being defined.
                                example: "21.9"
                              Currency:
                                type: string
                                description: The ISO 4217 Currency Code that the value is expressed in.
                                example: USD
                            description: Container for Taxes per passenger category
                    description: |-
                      Container for price information corresponding to a particular segment
                      (Nullable in case of Opaque Flights)
                    xml:
                      name: OfferPrice
                  Segments:
                    type: array
                    description: |-
                      Container of information about each flight offer
                      Segments (the trip from one stopping place to another) are made up of Legs.
                      This will be given back in response if includeSegmentDetails=true
                    items:
                      type: object
                      properties:
                        Segment:
                          required:
                            - DepartureArrivalDayDifference
                            - Legs
                          type: object
                          properties:
                            DepartureArrivalDayDifference:
                              type: integer
                              description: This is an indicator (can have values of -1, 0, 1, 2, etc.) which depends on the relative difference between the arrival and departure dates.
                              format: int32
                              example: 0
                            AirportChange:
                              type: boolean
                              description: True if there the Segment is having a different Departure airport compared to the Arrival airport of previous Segment.
                            Legs:
                              type: array
                              description: Container information on each flight leg.
                              items:
                                type: object
                                properties:
                                  Leg:
                                    required:
                                      - ArrivalAirport
                                      - ArrivalDateTime
                                      - BookingCode
                                      - CabinClass
                                      - DepartureAirport
                                      - DepartureDateTime
                                      - FlightDuration
                                      - FlightNumber
                                      - MarketingAirlineCode
                                      - SeatMapAvailable
                                    type: object
                                    properties:
                                      DepartureAirport:
                                        type: object
                                        properties:
                                          Airport:
                                            required:
                                              - Code
                                            type: object
                                            properties:
                                              Code:
                                                type: string
                                                description: Three-letter IATA airport code for departure location
                                                example: SFO
                                            description: Container for information on the arrival airport.
                                            xml:
                                              name: Airport
                                      ArrivalAirport:
                                        type: object
                                        properties:
                                          Airport:
                                            required:
                                              - Code
                                            type: object
                                            properties:
                                              Code:
                                                type: string
                                                description: Three-letter IATA airport code for departure location
                                                example: SFO
                                            description: Container for information on the arrival airport.
                                            xml:
                                              name: Airport
                                      DepartureDateTime:
                                        type: string
                                        description: Flight departure date and time in ISO 8601 format
                                        format: date-time
                                        example: 2021-07-05T07:15:00-06:00
                                      ArrivalDateTime:
                                        type: string
                                        description: Flight landing date and time in ISO 8601 format
                                        format: date-time
                                        example: 2021-07-05T10:15:00-06:00
                                      FlightNumber:
                                        type: string
                                        description: Flight Number assigned by Carrier.
                                        example: "2537"
                                      MarketingAirlineCode:
                                        type: string
                                        description: The two-letter code of the Airline that is marketing the flight.
                                        example: AA
                                      OperatingAirlineCode:
                                        type: string
                                        description: The two-letter code of the Airline actually operating the plane.
                                        example: UA
                                      FlightDuration:
                                        type: string
                                        description: The total travel duration for this leg, expressed in ISO 8601 standard.
                                        example: PT3H58M
                                      CabinClass:
                                        type: string
                                        description: Class of service for the air leg.
                                        example: ECONOMY
                                        enum:
                                          - ECONOMY
                                          - FIRST
                                          - BUSINESS
                                          - PREMIUM_ECONOMY
                                    description: Container information on each flight leg.
                                    xml:
                                      name: Leg
                          description: |-
                            Container of information about each flight offer
                            Segments (the trip from one stopping place to another) are made up of Legs.
                            This will be given back in response if includeSegmentDetails=true
                          xml:
                            name: Segment
                description: |-
                  Container for list of air offers.
                  An offer gives trip details including flight and pricing information.
                xml:
                  name: Offer
        TransactionId:
          type: string
          description: Unique identifier for the transaction.
          example: f06edfa3-27f4-44e6-838c-b8dd3d0a3210
      xml:
        name: FlexSearchResponse
    FareCalendarResponse:
      required:
        - Offers
        - TransactionId
      type: object
      properties:
        Warnings:
          type: array
          description: Container for Warning Codes.
          items:
            $ref: '#/components/schemas/Warning'
        Offers:
          type: array
          description: |-
            Container for list of air offers.
            An offer gives total trip details including flight and pricing information.
          items:
            required:
              - DepartureDate
              - OfferPrice
            type: object
            properties:
              DepartureDate:
                type: string
                description: Flight departure date in ISO 8601 format.
                format: date-time
              OfferPrice:
                required:
                  - TotalPrice
                type: object
                properties:
                  TotalPrice:
                    $ref: '#/components/schemas/Money'
                description: |-
                  Container for offer price information.
              Segments:
                type: array
                description: |-
                  Container of information about each flight offer
                  Segments (the trip from one stopping place to another) are made up of Legs
                  This will be given back in response if includeSegmentDetails=true
                items:
                  required:
                    - Legs
                  type: object
                  properties:
                    Legs:
                      type: array
                      description: Container information on each flight leg.
                      items:
                        required:
                          - ArrivalAirport
                          - ArrivalDateTime
                          - CabinClass
                          - DepartureAirport
                          - DepartureDateTime
                          - FlightNumber
                        type: object
                        properties:
                          DepartureAirport:
                            required:
                              - Code
                            type: object
                            properties:
                              Code:
                                type: string
                                description: Three-letter IATA airport code for departure location
                                example: SFO
                            description: Container for information on the arrival airport.
                          ArrivalAirport:
                            required:
                              - Code
                            type: object
                            properties:
                              Code:
                                type: string
                                description: Three-letter IATA airport code for departure location
                                example: SFO
                            description: Container for information on the arrival airport.
                          DepartureDateTime:
                            type: string
                            description: Flight departure date and time in ISO 8601 format
                            format: date-time
                            example: 2021-07-05T07:15:00-06:00
                          ArrivalDateTime:
                            type: string
                            description: Flight landing date and time in ISO 8601 format
                            format: date-time
                            example: 2021-07-05T10:15:00-06:00
                          FlightNumber:
                            type: string
                            description: Flight Number assigned by Carrier.
                            example: "2537"
                          MarketingAirlineCode:
                            type: string
                            description: The two-letter code of the Airline that is marketing the flight.
                            example: AA
                          OperatingAirlineCode:
                            type: string
                            description: The two-letter code of the Airline actually operating the plane.
                            example: UA
                          CabinClass:
                            type: string
                            description: Class of service for the air leg.
                            example: ECONOMY
                            enum:
                              - ECONOMY
                              - FIRST
                              - BUSINESS
                              - PREMIUM_ECONOMY
                        description: Container information on each flight leg.
                  description: |-
                    Container of information about each flight offer
                    Segments (the trip from one stopping place to another) are made up of Legs
                    This will be given back in response if includeSegmentDetails=true
            description: |-
              Container for list of air offers.
              An offer gives total trip details including flight and pricing information.
        TransactionId:
          type: string
          description: Unique identifier for the transaction.
          example: f06edfa3-27f4-44e6-838c-b8dd3d0a3210
security:
  - basicAuth: []
