> ## Documentation Index
> Fetch the complete documentation index at: https://docs.d-edge.com/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> This site documents the D-EDGE APIs for technology partners (web agencies, OTAs, PMS and RMS vendors, booking and CRM tools). It is written for developers integrating with hotels that use the D-EDGE platform.
> Seven APIs, grouped by domain. Connectivity: Channel Manager API (distribute a hotel's inventory to your channel and send bookings back). Pricing & Availability: Best Price API (best offers to highlight), Quotation API (all bookable offers for a stay), Daily Rates API (daily availability between two dates). Booking: Booking Engine API (a hotel's full direct booking funnel), Gift Shop API (gift vouchers from catalogue to payment). Guest Management: CRM API (guest profiles).
> Pick the API by the need: to display prices, use the Best Price API or the Daily Rates API; to quote a specific stay, use the Quotation API; to book, use the Booking Engine API; to sell gift vouchers, use the Gift Shop API; to manage guest profiles, use the CRM API; to receive hotel inventory and send bookings back as a distribution channel, use the Channel Manager API.
> Base URLs, hotel identifiers, and credentials are delivered by the D-EDGE partnership team during onboarding. Do not invent base URLs, endpoints, parameters, or example credentials that do not appear on these pages.
> Authentication differs per API: OAuth 1.0 for Best Price, Quotation, Daily Rates, and Booking Engine; an X-API-KEY header for Gift Shop; OAuth 2.0 client credentials for CRM; partner-defined credentials carried in the XML message for the Channel Manager API. Read each API's Authentication page before writing code.
> A mock environment returns realistic but fictitious data without credentials. The Postman and Insomnia collections on the API collections page target it by default. Use it for exploration and tests, never for production traffic.
> Use the official names exactly: D-EDGE, D-EDGE platform, Channel Manager API, partnership team. Do not use Back Office or Extranet.
> Each API has a Changelog page. Check it for the current behaviour before relying on an older answer. For questions these pages do not answer, direct the reader to the Contact us page.

# Provides rooms availabilities

> Provides rooms availabilities matching the session context



## OpenAPI

````yaml booking-engine-api/open-api/booking-engine-api.json GET /v2/{sessionId}/search/rooms
openapi: 3.0.1
info:
  title: Booking Engine API
  version: v2
servers:
  - url: https://{apiBaseUrl}
    variables:
      apiBaseUrl:
        default: api.example.com
        description: Base URL delivered by D-EDGE during partnership setup
security: []
tags:
  - name: Basket
  - name: Booking
  - name: Configuration
  - name: Description
  - name: Loyalty
  - name: Promotion
  - name: Resources
  - name: Search
  - name: Session
paths:
  /v2/{sessionId}/search/rooms:
    get:
      tags:
        - Search
      summary: Provides rooms availabilities matching the session context.
      description: "Rooms availabilities could be searched only if a selectedHotelId has been specified in the session context.\r\n            \r\nThe **X-AVP-Properties** header attribute can contain some or all the following values, separated with | character:\r\n* `Description`\r\n* `FetchExtendedStay`\r\n* `FetchReducedStay`\r\n* `IncludeBasketRooms`\r\n* `AlternativeGuests`\r\n* `ShowOnlyMultiRoomRates`\r\n            \r\nThe **X-AVP-DescriptionType** header attribute can contain one of the following values:\r\n* `text/html` (default)\r\n* `text/plain`\r\n* `text/x-markdown`\r\n            \r\nThe **X-AVP-PictureTemplates** should contains the list of picture templates requested, separated with | character."
      operationId: Search_GetRooms
      parameters:
        - name: X-AVP-Properties
          in: header
          description: The properties required in the response.
          required: false
          schema:
            type: string
        - name: X-AVP-DescriptionType
          in: header
          description: Mime type of the descriptions.
          required: false
          schema:
            type: string
        - name: X-AVP-PictureTemplates
          in: header
          description: The picture templates.
          required: false
          schema:
            type: string
        - name: pageNumber
          in: query
          description: The number of the requested page.
          required: false
          schema:
            format: int32
            type: integer
        - name: pageSize
          in: query
          description: The number of results per response.
          required: false
          schema:
            format: int32
            type: integer
        - name: guestPosition
          in: query
          description: The index of a room which corresponds to the `index` of a guest.
          required: false
          schema:
            format: int32
            type: integer
        - name: X-AVP-Impersonation
          in: header
          description: ''
          required: false
          schema:
            type: string
        - name: sessionId
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Search.Room.HubSearchRoomResult'
              examples:
                response:
                  value:
                    paging:
                      currentPageNumber: 1
                      pageSize: 10
                      resultsCount: 30
                      totalResultsCount: 50
                    rooms:
                      - roomId: 12345
                        name: Chambre 1
                        displayType: Room
                        availabilityType: Available
                        description:
                          summary: []
                          pictures: []
                          amenities:
                            - text: Baignoire
                              value: Bathtub
                          beds:
                            - type:
                                text: Lit double
                                value: Double
                              size:
                                text: Grande chambre
                                value:
                                  type: Size200By200Cm
                                  width: 200
                                  length: 200
                              count: 2
                              twoPersonConvertible: false
                          bedConfigurations:
                            - configurationId: a11625ad-03d2-44d3-b27e-404c375f5a12
                              description: 1 Lit simple
                            - configurationId: 969473bf-447c-4c4d-bff9-b0fef06c580d
                              description: 1 Lit double, 2 Lits simples
                          area:
                            value: 0
                          type: Triple
                        rates:
                          - rateId: 20260608;20260613;12345
                            dailyPrice: {}
                            price:
                              totalPrice:
                                converted:
                                  text: 100 €
                                  value:
                                    amount: 100
                                    currency: EUR
                                original:
                                  text: 100 €
                                  value:
                                    amount: 100
                                    currency: EUR
                              crossedOutPrice:
                                converted:
                                  text: 200 €
                                  value:
                                    amount: 200
                                    currency: EUR
                                original:
                                  text: 200 €
                                  value:
                                    amount: 200
                                    currency: EUR
                              discountType: CrossedOut
                              promoCode:
                                offerCodeId: 0304170d-3558-4e37-a97e-7264ba3d490a
                                code: ''
                                description: Last minute discount
                                nominal:
                                  converted:
                                    text: 113 $
                                    value:
                                      amount: 113
                                      currency: USD
                                  original:
                                    text: 100 €
                                    value:
                                      amount: 100
                                      currency: EUR
                                percent:
                                  text: ''
                                  value: 0
                                calculationMode: Nominal
                                isPublic: true
                                isApplied: true
                                isMobile: false
                                isFlashSales: false
                                displayCountdown: false
                                endDate: '2026-06-03T08:05:26.9556815Z'
                            availableQuantity: 5
                            taxes:
                              included:
                                amount:
                                  value:
                                    amount: 0
                                    currency: EUR
                                details: []
                              excluded:
                                amount:
                                  value:
                                    amount: 0
                                    currency: EUR
                                details: []
                              onSite:
                                amount:
                                  text: 100 €
                                  value:
                                    amount: 100
                                    currency: EUR
                                details:
                                  - name: Une taxe
                                    type: CityTax
                                    description: 2€ par jour
                                    amount:
                                      converted:
                                        value:
                                          amount: 2
                                          currency: EUR
                                      original:
                                        value:
                                          amount: 2
                                          currency: EUR
                                    dailyTotalAmounts:
                                      - value:
                                          converted:
                                            text: 2,50 €
                                            value:
                                              amount: 2.5
                                              currency: EUR
                                          original:
                                            text: 2 $
                                            value:
                                              amount: 2
                                              currency: USD
                                        start: '2026-06-08'
                                        end: '2026-06-13'
                                    applyToEntity: false
                            occupancy:
                              occupancyId: 0
                              isDefault: true
                              definition:
                                text: 2 personnes
                                value:
                                  isDetailed: false
                                  personCount: 2
                                  adultCount: 0
                                  childCount: 0
                                  infantCount: 0
                            internetIncluded: Included
                            breakfastIncluded: None
                            description:
                              code: RATE_CODE
                              name: Nom du rate
                              forceDisplayName: false
                              isPrivate: false
                              sortOrder: 0
                              summary:
                                - text: Rate summary
                                  value: PlainText
                              cancelConditions:
                                name:
                                  - text: Cancel conditions name Default format
                                    value: Default
                                  - text: Cancel conditions name Short format
                                    value: Short
                                summary:
                                  - text: Cancel conditions summary Default format
                                    value: Default
                              qualifier:
                                text: Chambre simple
                                value: RoomOnly
                              bookingFees:
                                percent: 100
                                nominal: 0
                              deposit:
                                depositType: CreditCardNumber
                                percent: 100
                              pictures:
                                - templates:
                                    - name: TEMPLATE1
                                      url: http://url/to/template1/image1
                                    - name: TEMPLATE2
                                      url: http://url/to/template2/image1
                                  sortOrder: 1
                                - templates:
                                    - name: TEMPLATE1
                                      url: http://url/to/template1/image2
                                    - name: TEMPLATE2
                                      url: http://url/to/template2/image2
                                  sortOrder: 2
                              mealPlans:
                                - id: 12345
                                  name: All Inclusive
                                  information:
                                    gratuitousnessType:
                                      value: None
                                    pricingModel:
                                      text: Per Adult and per Children
                                      value: PerPerson
                                    category:
                                      text: All Inclusive
                                      value: AllInclusive
                                    personTypeRestriction:
                                      value: Adult
                                    sortOrder: 0
                                    summaries:
                                      - text: |
                                          <p>
                                          Blah blah blah
                                          </p>
                                        value: Html
                                      - text: Blah blah blah
                                        value: PlainText
                                    pictures:
                                      - templates:
                                          - name: TEMPLATE1
                                            url: http://url/to/template1/image1
                                          - name: TEMPLATE2
                                            url: http://url/to/template2/image1
                                        sortOrder: 1
                                      - templates:
                                          - name: TEMPLATE
                                            url: http://url/to/template1/image2
                                          - name: TEMPLATE2
                                            url: http://url/to/template2/image2
                                        sortOrder: 2
                            isLoyalty: false
                            membershipLevel: 0
                            canUseRedemption: false
                            redemptionQuantity: 0
                            availabilityInfo:
                              reason: None
                              minStay: 0
                              maxStay: 0
                        defaultOccupancy:
                          occupancyId: 0
                          isDefault: true
                          definition:
                            text: 2 personnes
                            value:
                              isDetailed: false
                              personCount: 2
                              adultCount: 0
                              childCount: 0
                              infantCount: 0
                        sortOrder: 1
                    unavailabilityType: None
                    crossSellUrl: ''
                    filters:
                      - type:
                          text: Types de chambre
                          value: RoomTypes
                        values:
                          - text: Chambre triple
                            value: Triple
                    sortOrders:
                      - text: Tri par défaut
                        value: Default
                      - text: Du moins cher au plus cher
                        value: AscendingPrice
                      - text: Du plus cher au moins cher
                        value: DescendingPrice
                    alternativeGuestsAllocation: []
            text/json:
              schema:
                $ref: '#/components/schemas/Search.Room.HubSearchRoomResult'
              examples:
                response:
                  value:
                    paging:
                      currentPageNumber: 1
                      pageSize: 10
                      resultsCount: 30
                      totalResultsCount: 50
                    rooms:
                      - roomId: 12345
                        name: Chambre 1
                        displayType: Room
                        availabilityType: Available
                        description:
                          summary: []
                          pictures: []
                          amenities:
                            - text: Baignoire
                              value: Bathtub
                          beds:
                            - type:
                                text: Lit double
                                value: Double
                              size:
                                text: Grande chambre
                                value:
                                  type: Size200By200Cm
                                  width: 200
                                  length: 200
                              count: 2
                              twoPersonConvertible: false
                          bedConfigurations:
                            - configurationId: a11625ad-03d2-44d3-b27e-404c375f5a12
                              description: 1 Lit simple
                            - configurationId: 969473bf-447c-4c4d-bff9-b0fef06c580d
                              description: 1 Lit double, 2 Lits simples
                          area:
                            value: 0
                          type: Triple
                        rates:
                          - rateId: 20260608;20260613;12345
                            dailyPrice: {}
                            price:
                              totalPrice:
                                converted:
                                  text: 100 €
                                  value:
                                    amount: 100
                                    currency: EUR
                                original:
                                  text: 100 €
                                  value:
                                    amount: 100
                                    currency: EUR
                              crossedOutPrice:
                                converted:
                                  text: 200 €
                                  value:
                                    amount: 200
                                    currency: EUR
                                original:
                                  text: 200 €
                                  value:
                                    amount: 200
                                    currency: EUR
                              discountType: CrossedOut
                              promoCode:
                                offerCodeId: 0304170d-3558-4e37-a97e-7264ba3d490a
                                code: ''
                                description: Last minute discount
                                nominal:
                                  converted:
                                    text: 113 $
                                    value:
                                      amount: 113
                                      currency: USD
                                  original:
                                    text: 100 €
                                    value:
                                      amount: 100
                                      currency: EUR
                                percent:
                                  text: ''
                                  value: 0
                                calculationMode: Nominal
                                isPublic: true
                                isApplied: true
                                isMobile: false
                                isFlashSales: false
                                displayCountdown: false
                                endDate: '2026-06-03T08:05:26.9556815Z'
                            availableQuantity: 5
                            taxes:
                              included:
                                amount:
                                  value:
                                    amount: 0
                                    currency: EUR
                                details: []
                              excluded:
                                amount:
                                  value:
                                    amount: 0
                                    currency: EUR
                                details: []
                              onSite:
                                amount:
                                  text: 100 €
                                  value:
                                    amount: 100
                                    currency: EUR
                                details:
                                  - name: Une taxe
                                    type: CityTax
                                    description: 2€ par jour
                                    amount:
                                      converted:
                                        value:
                                          amount: 2
                                          currency: EUR
                                      original:
                                        value:
                                          amount: 2
                                          currency: EUR
                                    dailyTotalAmounts:
                                      - value:
                                          converted:
                                            text: 2,50 €
                                            value:
                                              amount: 2.5
                                              currency: EUR
                                          original:
                                            text: 2 $
                                            value:
                                              amount: 2
                                              currency: USD
                                        start: '2026-06-08'
                                        end: '2026-06-13'
                                    applyToEntity: false
                            occupancy:
                              occupancyId: 0
                              isDefault: true
                              definition:
                                text: 2 personnes
                                value:
                                  isDetailed: false
                                  personCount: 2
                                  adultCount: 0
                                  childCount: 0
                                  infantCount: 0
                            internetIncluded: Included
                            breakfastIncluded: None
                            description:
                              code: RATE_CODE
                              name: Nom du rate
                              forceDisplayName: false
                              isPrivate: false
                              sortOrder: 0
                              summary:
                                - text: Rate summary
                                  value: PlainText
                              cancelConditions:
                                name:
                                  - text: Cancel conditions name Default format
                                    value: Default
                                  - text: Cancel conditions name Short format
                                    value: Short
                                summary:
                                  - text: Cancel conditions summary Default format
                                    value: Default
                              qualifier:
                                text: Chambre simple
                                value: RoomOnly
                              bookingFees:
                                percent: 100
                                nominal: 0
                              deposit:
                                depositType: CreditCardNumber
                                percent: 100
                              pictures:
                                - templates:
                                    - name: TEMPLATE1
                                      url: http://url/to/template1/image1
                                    - name: TEMPLATE2
                                      url: http://url/to/template2/image1
                                  sortOrder: 1
                                - templates:
                                    - name: TEMPLATE1
                                      url: http://url/to/template1/image2
                                    - name: TEMPLATE2
                                      url: http://url/to/template2/image2
                                  sortOrder: 2
                              mealPlans:
                                - id: 12345
                                  name: All Inclusive
                                  information:
                                    gratuitousnessType:
                                      value: None
                                    pricingModel:
                                      text: Per Adult and per Children
                                      value: PerPerson
                                    category:
                                      text: All Inclusive
                                      value: AllInclusive
                                    personTypeRestriction:
                                      value: Adult
                                    sortOrder: 0
                                    summaries:
                                      - text: |
                                          <p>
                                          Blah blah blah
                                          </p>
                                        value: Html
                                      - text: Blah blah blah
                                        value: PlainText
                                    pictures:
                                      - templates:
                                          - name: TEMPLATE1
                                            url: http://url/to/template1/image1
                                          - name: TEMPLATE2
                                            url: http://url/to/template2/image1
                                        sortOrder: 1
                                      - templates:
                                          - name: TEMPLATE
                                            url: http://url/to/template1/image2
                                          - name: TEMPLATE2
                                            url: http://url/to/template2/image2
                                        sortOrder: 2
                            isLoyalty: false
                            membershipLevel: 0
                            canUseRedemption: false
                            redemptionQuantity: 0
                            availabilityInfo:
                              reason: None
                              minStay: 0
                              maxStay: 0
                        defaultOccupancy:
                          occupancyId: 0
                          isDefault: true
                          definition:
                            text: 2 personnes
                            value:
                              isDetailed: false
                              personCount: 2
                              adultCount: 0
                              childCount: 0
                              infantCount: 0
                        sortOrder: 1
                    unavailabilityType: None
                    crossSellUrl: ''
                    filters:
                      - type:
                          text: Types de chambre
                          value: RoomTypes
                        values:
                          - text: Chambre triple
                            value: Triple
                    sortOrders:
                      - text: Tri par défaut
                        value: Default
                      - text: Du moins cher au plus cher
                        value: AscendingPrice
                      - text: Du plus cher au moins cher
                        value: DescendingPrice
                    alternativeGuestsAllocation: []
        '400':
          description: The session code is invalid
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/BookingEngine.Hub.Service.Examples.Session.InvalidSessionErrorResponse
              examples:
                response:
                  value:
                    code: InvalidHotelId
            text/json:
              schema:
                $ref: >-
                  #/components/schemas/BookingEngine.Hub.Service.Examples.Session.InvalidSessionErrorResponse
              examples:
                response:
                  value:
                    code: InvalidHotelId
        '401':
          description: >-
            Authentication header is invalid or does not give access to the
            operation
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/BookingEngine.Hub.Service.Controllers.ErrorResponse_BookingEngine.Hub.Service.Config.SecurityErrorType_
            text/json:
              schema:
                $ref: >-
                  #/components/schemas/BookingEngine.Hub.Service.Controllers.ErrorResponse_BookingEngine.Hub.Service.Config.SecurityErrorType_
components:
  schemas:
    Search.Room.HubSearchRoomResult:
      required:
        - paging
        - rooms
        - crossSellUrl
        - filters
        - sortOrders
        - alternativeGuestsAllocation
        - unavailabilityType
      type: object
      properties:
        paging:
          default:
            currentPageNumber: 0
            pageSize: 0
            resultsCount: 0
            totalResultsCount: 0
          allOf:
            - $ref: '#/components/schemas/Search.HubSearchResultPaging'
        rooms:
          default: []
          type: array
          items:
            $ref: '#/components/schemas/Search.Room.HubSearchRoomResultRoom'
        unavailabilityType:
          $ref: '#/components/schemas/Search.Room.HubSearchRoomUnavailabilityType'
        crossSellUrl:
          default: ''
          type: string
        filters:
          default: []
          type: array
          items:
            $ref: >-
              #/components/schemas/Search.HubSearchFilter_Search.HubSearchRoomFilterType_
        sortOrders:
          default: []
          type: array
          items:
            $ref: >-
              #/components/schemas/Common.HubValueText_Search.Room.HubRoomSortType_
        resultsFor:
          $ref: '#/components/schemas/Search.Room.HubSearchRoomResultFor'
        alternativeGuestsAllocation:
          default: []
          type: array
          items:
            $ref: '#/components/schemas/Session.HubBookingGuests'
    BookingEngine.Hub.Service.Examples.Session.InvalidSessionErrorResponse:
      required:
        - code
      type: object
      properties:
        code:
          default: InvalidSessionId
          type: string
        message:
          type: string
    BookingEngine.Hub.Service.Controllers.ErrorResponse_BookingEngine.Hub.Service.Config.SecurityErrorType_:
      allOf:
        - $ref: >-
            #/components/schemas/BookingEngine.Hub.Service.Controllers.ErrorResponse
        - required:
            - code
          type: object
          properties:
            code:
              $ref: >-
                #/components/schemas/BookingEngine.Hub.Service.Config.SecurityErrorType
    Search.HubSearchResultPaging:
      required:
        - currentPageNumber
        - pageSize
        - resultsCount
        - totalResultsCount
      type: object
      properties:
        currentPageNumber:
          format: int32
          type: integer
        pageSize:
          format: int32
          type: integer
        resultsCount:
          format: int32
          type: integer
        totalResultsCount:
          format: int32
          type: integer
    Search.Room.HubSearchRoomResultRoom:
      required:
        - description
        - rates
        - defaultOccupancy
        - roomId
        - displayType
        - availabilityType
        - sortOrder
      type: object
      properties:
        roomId:
          $ref: '#/components/schemas/HotelBusiness.RoomId'
        productId:
          type: string
        name:
          type: string
        displayType:
          $ref: '#/components/schemas/Search.Room.HubSearchRoomDisplayType'
        availabilityType:
          $ref: '#/components/schemas/Search.Room.HubRoomAvailabilityType'
        description:
          default:
            summary: []
            pictures: []
            amenities: []
            beds: []
            bedConfigurations: []
            area:
              value: 0
            type: None
          allOf:
            - $ref: '#/components/schemas/Search.Room.HubSearchRoomResultDescription'
        rates:
          default: []
          type: array
          items:
            $ref: '#/components/schemas/Search.Room.HubSearchRoomResultRate'
        defaultOccupancy:
          default:
            occupancyId: 0
            isDefault: false
            definition: {}
          allOf:
            - $ref: '#/components/schemas/Description.Room.HubRoomOccupancy'
        sortOrder:
          format: int32
          type: integer
    Search.Room.HubSearchRoomUnavailabilityType:
      description: >-
        Reason why a room appears as unavailable in the search result.


        - **None** — No unavailability reason applies.

        - **NoAvailability** — The room has no availability for the requested
        search context.

        - **NoAvailabilityWithFilters** — The room has no availability once the
        current search filters are applied.

        - **NoAvailabilityWithCrossSell** — The room has no availability but
        cross-sell alternatives are proposed.

        - **NoAvailabilityWithSelectedRoom** — The room has no availability
        given the currently selected room.

        - **NoAvailabilityWithSelectedRate** — The room has no availability
        given the currently selected rate.

        - **NoAvailabilityWithSelectedRoomAndRate** — The room has no
        availability given both the currently selected room and rate.

        - **NoAvailabilityWithRoomInBasket** — The room has no availability
        given other rooms already added to the basket.

        - **NoAvailabilityWithSelectedGuests** — The room has no availability
        for the requested guest composition.

        - **AvailabilityWithAlternativeGuests** — The room is available only if
        the guest composition is adjusted.
      enum:
        - None
        - NoAvailability
        - NoAvailabilityWithFilters
        - NoAvailabilityWithCrossSell
        - NoAvailabilityWithSelectedRoom
        - NoAvailabilityWithSelectedRate
        - NoAvailabilityWithSelectedRoomAndRate
        - NoAvailabilityWithRoomInBasket
        - NoAvailabilityWithSelectedGuests
        - AvailabilityWithAlternativeGuests
      type: string
    Search.HubSearchFilter_Search.HubSearchRoomFilterType_:
      allOf:
        - $ref: '#/components/schemas/Search.HubSearchFilter'
        - required:
            - type
          type: object
          properties:
            type:
              $ref: >-
                #/components/schemas/Common.HubValueText_Search.HubSearchRoomFilterType_
    Common.HubValueText_Search.Room.HubRoomSortType_:
      allOf:
        - $ref: '#/components/schemas/Common.HubValueText'
        - required:
            - value
          type: object
          properties:
            value:
              $ref: '#/components/schemas/Search.Room.HubRoomSortType'
    Search.Room.HubSearchRoomResultFor:
      required:
        - guest
        - selectedOccupancy
      type: object
      properties:
        guest:
          default: {}
          allOf:
            - $ref: >-
                #/components/schemas/Common.HubValueText_Search.Room.HubRoomGuest_
        selectedOccupancy:
          default:
            definition: {}
          allOf:
            - $ref: '#/components/schemas/Description.Room.HubRoomSelectedOccupancy'
    Session.HubBookingGuests:
      description: Describes the details of the guests count.
      required:
        - adults
        - children
        - infants
        - position
        - memberLevel
      type: object
      properties:
        adults:
          format: int32
          type: integer
        children:
          format: int32
          type: integer
        infants:
          format: int32
          type: integer
        childrenAges:
          type: array
          items:
            format: int32
            type: integer
        position:
          $ref: '#/components/schemas/Common.HubGuestPosition'
        memberLevel:
          format: int32
          type: integer
    BookingEngine.Hub.Service.Controllers.ErrorResponse:
      type: object
      properties:
        message:
          type: string
    BookingEngine.Hub.Service.Config.SecurityErrorType:
      description: >-
        Category of security failure returned when authentication or
        authorization is rejected.
      enum:
        - InvalidUserAuthentication
        - InvalidUserRoles
        - InvalidPermissions
      type: string
    HotelBusiness.RoomId:
      format: int32
      type: integer
    Search.Room.HubSearchRoomDisplayType:
      description: Whether search results are displayed as a room or an accommodation.
      enum:
        - Room
        - Accommodation
      type: string
    Search.Room.HubRoomAvailabilityType:
      description: >-
        Availability status of a room in a search result.


        - **Available** — Room is available for the requested stay.

        - **BookingRequest** — Booking must be confirmed with the hotel
        (on-request).

        - **ExtendedStay** — Room is available only if the stay is extended
        beyond the requested dates.

        - **ReducedStay** — Room is available only if the stay is shortened
        compared with the requested dates.

        - **NotAvailable** — Room is not available for the requested stay.
      enum:
        - Available
        - BookingRequest
        - ExtendedStay
        - ReducedStay
        - NotAvailable
      type: string
    Search.Room.HubSearchRoomResultDescription:
      required:
        - summary
        - pictures
        - amenities
        - beds
        - bedConfigurations
        - area
        - type
      type: object
      properties:
        summary:
          default: []
          type: array
          items:
            $ref: >-
              #/components/schemas/Common.HubValueText_Common.HubDescriptionType_
        pictures:
          default: []
          type: array
          items:
            $ref: '#/components/schemas/Common.HubPicture'
        amenities:
          default: []
          type: array
          items:
            $ref: '#/components/schemas/Common.HubValueText_Common.HubRoomAmenityId_'
        beds:
          default: []
          type: array
          items:
            $ref: '#/components/schemas/Description.Room.HubRoomBed'
        bedConfigurations:
          default: []
          type: array
          items:
            $ref: '#/components/schemas/Description.Room.HubBeddingConfiguration'
        area:
          default:
            value: 0
          allOf:
            - $ref: '#/components/schemas/Common.HubValueText_System.Decimal_'
        type:
          $ref: '#/components/schemas/HotelBusiness.Configuration.RoomType'
    Search.Room.HubSearchRoomResultRate:
      required:
        - rateId
        - dailyPrice
        - price
        - taxes
        - occupancy
        - description
        - availabilityInfo
        - availableQuantity
        - internetIncluded
        - breakfastIncluded
        - isLoyalty
        - membershipLevel
        - canUseRedemption
        - redemptionQuantity
      type: object
      properties:
        rateId:
          default: ''
          allOf:
            - $ref: >-
                #/components/schemas/Library.Temporality.ITemporal_HotelBusiness.RateId_
        offerId:
          type: string
        dailyPrice:
          default: {}
          allOf:
            - $ref: '#/components/schemas/Search.Room.HubSearchRoomDailyPrice'
        price:
          default:
            totalPrice:
              converted:
                value:
                  amount: 0
              original:
                value:
                  amount: 0
            crossedOutPrice:
              converted:
                value:
                  amount: 0
              original:
                value:
                  amount: 0
            discountType: None
          allOf:
            - $ref: '#/components/schemas/Search.HubAvailabilityPrice'
        availableQuantity:
          format: int32
          type: integer
        taxes:
          default:
            included:
              amount:
                value:
                  amount: 0
              details: []
            excluded:
              amount:
                value:
                  amount: 0
              details: []
            onSite:
              amount:
                value:
                  amount: 0
              details: []
          allOf:
            - $ref: '#/components/schemas/Common.HubSearchTaxes'
        occupancy:
          default:
            occupancyId: 0
            isDefault: false
            definition: {}
          allOf:
            - $ref: '#/components/schemas/Description.Room.HubRoomOccupancy'
        internetIncluded:
          $ref: '#/components/schemas/Search.HubServiceStatus'
        breakfastIncluded:
          $ref: '#/components/schemas/Search.HubServiceStatus'
        description:
          default:
            forceDisplayName: false
            isPrivate: false
            sortOrder: 0
            summary: []
            cancelConditions: {}
            qualifier:
              value: RoomOnly
            bookingFees:
              percent: 0
              nominal: 0
            deposit:
              depositType: Nothing
              percent: 0
            pictures: []
            mealPlans: []
          allOf:
            - $ref: >-
                #/components/schemas/Search.Room.HubSearchRoomResultRateDescription
        isLoyalty:
          type: boolean
        membershipLevel:
          format: int32
          type: integer
        canUseRedemption:
          type: boolean
        redemptionQuantity:
          format: int32
          type: integer
        availabilityInfo:
          default:
            reason: None
            minStay: 0
            maxStay: 0
          allOf:
            - $ref: >-
                #/components/schemas/Search.Room.HubSearchRoomResultRateAvailabilityInfo
    Description.Room.HubRoomOccupancy:
      required:
        - definition
        - occupancyId
        - isDefault
      type: object
      properties:
        occupancyId:
          $ref: '#/components/schemas/HotelBusiness.OccupancyId'
        isDefault:
          type: boolean
        definition:
          default: {}
          allOf:
            - $ref: >-
                #/components/schemas/Common.HubValueText_Description.Common.HubOccupancyDefinition_
    Search.HubSearchFilter:
      type: object
      properties:
        values:
          type: array
          items:
            $ref: '#/components/schemas/Common.HubValueText_System.String_'
    Common.HubValueText_Search.HubSearchRoomFilterType_:
      allOf:
        - $ref: '#/components/schemas/Common.HubValueText'
        - required:
            - value
          type: object
          properties:
            value:
              $ref: '#/components/schemas/Search.HubSearchRoomFilterType'
    Common.HubValueText:
      type: object
      properties:
        text:
          type: string
    Search.Room.HubRoomSortType:
      description: Sort order applied to a room search result.
      enum:
        - Default
        - DescendingPrice
        - AscendingPrice
      type: string
    Common.HubValueText_Search.Room.HubRoomGuest_:
      allOf:
        - $ref: '#/components/schemas/Common.HubValueText'
        - type: object
          properties:
            value:
              $ref: '#/components/schemas/Search.Room.HubRoomGuest'
    Description.Room.HubRoomSelectedOccupancy:
      required:
        - definition
      type: object
      properties:
        definition:
          default: {}
          allOf:
            - $ref: >-
                #/components/schemas/Common.HubValueText_Description.Common.HubOccupancyDefinition_
    Common.HubGuestPosition:
      format: int32
      type: integer
    Common.HubValueText_Common.HubDescriptionType_:
      allOf:
        - $ref: '#/components/schemas/Common.HubValueText'
        - required:
            - value
          type: object
          properties:
            value:
              $ref: '#/components/schemas/Common.HubDescriptionType'
    Common.HubPicture:
      required:
        - templates
        - sortOrder
      type: object
      properties:
        templates:
          default: []
          type: array
          items:
            $ref: '#/components/schemas/Common.HubPictureTemplate'
        sortOrder:
          format: int32
          type: integer
    Common.HubValueText_Common.HubRoomAmenityId_:
      allOf:
        - $ref: '#/components/schemas/Common.HubValueText'
        - required:
            - value
          type: object
          properties:
            value:
              $ref: '#/components/schemas/Common.HubRoomAmenityId'
    Description.Room.HubRoomBed:
      required:
        - count
        - twoPersonConvertible
      type: object
      properties:
        type:
          $ref: >-
            #/components/schemas/Common.HubValueText_Description.Room.HubBedType_
        size:
          $ref: >-
            #/components/schemas/Common.HubValueText_Description.Room.HubRoomBedSize_
        count:
          format: int32
          type: integer
        twoPersonConvertible:
          type: boolean
    Description.Room.HubBeddingConfiguration:
      required:
        - configurationId
      type: object
      properties:
        configurationId:
          format: uuid
          type: string
          example: 00000000-0000-0000-0000-000000000000
        description:
          type: string
    Common.HubValueText_System.Decimal_:
      allOf:
        - $ref: '#/components/schemas/Common.HubValueText'
        - required:
            - value
          type: object
          properties:
            value:
              format: decimal
              type: number
    HotelBusiness.Configuration.RoomType:
      enum:
        - None
        - Single
        - Double
        - Twin
        - Triple
        - Quadruple
        - FamilyRoom
        - JuniorSuite
        - Suite
        - Apartment
        - Studio
        - Villa
        - Other
      type: string
    Library.Temporality.ITemporal_HotelBusiness.RateId_:
      pattern: ^(\d{8};\d{8};\d+)(#(\d{8};\d{8};\d+))*$
      type: string
    Search.Room.HubSearchRoomDailyPrice:
      type: object
      properties:
        dailyOriginalPrice:
          type: array
          items:
            $ref: >-
              #/components/schemas/Search.Room.TemporalValue_Common.ConvertedMoney_
        dailyRoomPrice:
          type: array
          items:
            $ref: >-
              #/components/schemas/Search.Room.TemporalValue_Common.ConvertedMoney_
        dailyTotalPrice:
          type: array
          items:
            $ref: >-
              #/components/schemas/Search.Room.TemporalValue_Common.ConvertedMoney_
        dailyCrossedOutPrice:
          type: array
          items:
            $ref: >-
              #/components/schemas/Search.Room.TemporalValue_Common.ConvertedMoney_
    Search.HubAvailabilityPrice:
      required:
        - totalPrice
        - crossedOutPrice
        - discountType
      type: object
      properties:
        totalPrice:
          default:
            converted:
              value:
                amount: 0
            original:
              value:
                amount: 0
          allOf:
            - $ref: '#/components/schemas/Common.ConvertedMoney'
        crossedOutPrice:
          default:
            converted:
              value:
                amount: 0
            original:
              value:
                amount: 0
          allOf:
            - $ref: '#/components/schemas/Common.ConvertedMoney'
        discountType:
          $ref: '#/components/schemas/Search.HubSearchResultRoomRateDiscountType'
        promoCode:
          $ref: '#/components/schemas/Search.HubAvailabilityPriceOfferCode'
    Common.HubSearchTaxes:
      required:
        - included
        - excluded
        - onSite
      type: object
      properties:
        included:
          default:
            amount:
              value:
                amount: 0
            details: []
          allOf:
            - $ref: '#/components/schemas/Common.HubTax'
        excluded:
          default:
            amount:
              value:
                amount: 0
            details: []
          allOf:
            - $ref: '#/components/schemas/Common.HubTax'
        onSite:
          default:
            amount:
              value:
                amount: 0
            details: []
          allOf:
            - $ref: '#/components/schemas/Common.HubTax'
    Search.HubServiceStatus:
      description: >-
        Availability of a service (rate qualifier, amenity, etc.) in a search
        result.


        - **None** — Status is not declared.

        - **Included** — Service is included in the rate at no extra charge.

        - **WithCharge** — Service is available but comes with an additional
        charge.

        - **NotAvailable** — Service is not available.
      enum:
        - None
        - Included
        - WithCharge
        - NotAvailable
      type: string
    Search.Room.HubSearchRoomResultRateDescription:
      required:
        - summary
        - cancelConditions
        - qualifier
        - bookingFees
        - deposit
        - pictures
        - mealPlans
        - forceDisplayName
        - isPrivate
        - sortOrder
      type: object
      properties:
        code:
          type: string
        name:
          type: string
        forceDisplayName:
          type: boolean
        isPrivate:
          type: boolean
        sortOrder:
          format: int32
          type: integer
        summary:
          default: []
          type: array
          items:
            $ref: >-
              #/components/schemas/Common.HubValueText_Common.HubDescriptionType_
        cancelConditions:
          default: {}
          allOf:
            - $ref: '#/components/schemas/Common.HubCancelConditionResult'
        qualifier:
          default:
            value: RoomOnly
          allOf:
            - $ref: >-
                #/components/schemas/Common.HubValueText_Description.Rate.HubRateQualifier_
        bookingFees:
          default:
            percent: 0
            nominal: 0
          allOf:
            - $ref: >-
                #/components/schemas/Description.Rate.HubRateSellingConditionsBookingFees
        deposit:
          default:
            depositType: Nothing
            percent: 0
          allOf:
            - $ref: >-
                #/components/schemas/Description.Rate.HubRateSellingConditionsDeposit
        pictures:
          default: []
          type: array
          items:
            $ref: '#/components/schemas/Common.HubPicture'
        mealPlans:
          default: []
          type: array
          items:
            $ref: '#/components/schemas/Description.MealPlan.HubMealPlanDescription'
    Search.Room.HubSearchRoomResultRateAvailabilityInfo:
      required:
        - reason
        - minStay
        - maxStay
      type: object
      properties:
        reason:
          $ref: >-
            #/components/schemas/Search.Room.HubSearchRoomResultRateAvailabilityReason
        minStay:
          format: int32
          type: integer
        maxStay:
          format: int32
          type: integer
    HotelBusiness.OccupancyId:
      format: int32
      type: integer
    Common.HubValueText_Description.Common.HubOccupancyDefinition_:
      allOf:
        - $ref: '#/components/schemas/Common.HubValueText'
        - type: object
          properties:
            value:
              $ref: '#/components/schemas/Description.Common.HubOccupancyDefinition'
    Common.HubValueText_System.String_:
      allOf:
        - $ref: '#/components/schemas/Common.HubValueText'
        - type: object
          properties:
            value:
              type: string
    Search.HubSearchRoomFilterType:
      description: Facet used to narrow down a room search result.
      enum:
        - Undefined
        - RoomTypes
        - AccommodationTypes
        - RateTypes
        - BedTypes
        - Amenities
      type: string
    Search.Room.HubRoomGuest:
      required:
        - position
        - totalCount
      type: object
      properties:
        position:
          $ref: '#/components/schemas/Common.HubGuestPosition'
        totalCount:
          format: int32
          type: integer
    Common.HubDescriptionType:
      description: Markup format used for rich-text description fields returned by the API.
      enum:
        - Html
        - Markdown
        - PlainText
      type: string
    Common.HubPictureTemplate:
      type: object
      properties:
        name:
          type: string
        url:
          type: string
    Common.HubRoomAmenityId:
      description: >-
        In-room amenity offered by a hotel room. Values are grouped in ranges by
        category (general, bathroom, appliances).
      enum:
        - NonSmoking
        - AirConditioning
        - MiniBar
        - Soundproof
        - SafeBox
        - IroningBoard
        - DisabledPersonAmenities
        - Terrace
        - Balcony
        - Loggia
        - Phone
        - Bathroom
        - HairDryer
        - Shower
        - Bathtub
        - Bidet
        - Television
        - FlatScreenTelevision
        - ThemedTelevisionChannels
        - DvdPlayer
        - InternetAccess
        - WirelessInternetAccess
        - Radio
        - AlarmClock
        - Computer
        - Printer
        - Fax
      type: string
    Common.HubValueText_Description.Room.HubBedType_:
      allOf:
        - $ref: '#/components/schemas/Common.HubValueText'
        - required:
            - value
          type: object
          properties:
            value:
              $ref: '#/components/schemas/Description.Room.HubBedType'
    Common.HubValueText_Description.Room.HubRoomBedSize_:
      allOf:
        - $ref: '#/components/schemas/Common.HubValueText'
        - type: object
          properties:
            value:
              $ref: '#/components/schemas/Description.Room.HubRoomBedSize'
    Search.Room.TemporalValue_Common.ConvertedMoney_:
      allOf:
        - $ref: '#/components/schemas/Search.Room.TemporalValue'
        - type: object
          properties:
            value:
              $ref: '#/components/schemas/Common.ConvertedMoney'
    Common.ConvertedMoney:
      required:
        - converted
        - original
      type: object
      properties:
        converted:
          default:
            value:
              amount: 0
          allOf:
            - $ref: '#/components/schemas/Common.HubValueText_Library.Money_'
        original:
          default:
            value:
              amount: 0
          allOf:
            - $ref: '#/components/schemas/Common.HubValueText_Library.Money_'
    Search.HubSearchResultRoomRateDiscountType:
      description: >-
        Type of discount displayed on a room rate in the search result.


        - **None** — No discount is displayed.

        - **DiscountCode** — Discount granted by a promotional code entered by
        the end user.

        - **CrossedOut** — Original price.

        - **FreeNight** — Discount is expressed as one or more free nights.
      enum:
        - None
        - DiscountCode
        - CrossedOut
        - FreeNight
      type: string
    Search.HubAvailabilityPriceOfferCode:
      required:
        - offerCodeId
        - calculationMode
        - isPublic
        - isApplied
        - isMobile
        - isFlashSales
        - displayCountdown
        - endDate
      type: object
      properties:
        offerCodeId:
          $ref: '#/components/schemas/HotelBusiness.OfferCode.Common.OfferCodeId'
        code:
          type: string
        description:
          type: string
        nominal:
          $ref: '#/components/schemas/Common.ConvertedMoney'
        percent:
          $ref: '#/components/schemas/Common.HubValueText_HotelBusiness.Percent_'
        calculationMode:
          $ref: '#/components/schemas/Common.HubDiscountCalculationMode'
        isPublic:
          type: boolean
        isApplied:
          type: boolean
        isMobile:
          type: boolean
        isFlashSales:
          type: boolean
        displayCountdown:
          type: boolean
        endDate:
          format: date-time
          type: string
    Common.HubTax:
      required:
        - amount
        - details
      type: object
      properties:
        amount:
          default:
            value:
              amount: 0
          allOf:
            - $ref: '#/components/schemas/Common.HubValueText_Library.Money_'
        details:
          default: []
          type: array
          items:
            $ref: '#/components/schemas/Common.HubTaxDetail'
    Common.HubCancelConditionResult:
      type: object
      properties:
        name:
          type: array
          items:
            $ref: >-
              #/components/schemas/Common.HubValueText_Common.HubCancelConditionTermsFormat_
        summary:
          type: array
          items:
            $ref: >-
              #/components/schemas/Common.HubValueText_Common.HubCancelConditionTermsFormat_
    Common.HubValueText_Description.Rate.HubRateQualifier_:
      allOf:
        - $ref: '#/components/schemas/Common.HubValueText'
        - required:
            - value
          type: object
          properties:
            value:
              $ref: '#/components/schemas/Description.Rate.HubRateQualifier'
    Description.Rate.HubRateSellingConditionsBookingFees:
      required:
        - percent
        - nominal
      type: object
      properties:
        percent:
          $ref: '#/components/schemas/HotelBusiness.Percent'
        nominal:
          format: decimal
          type: number
    Description.Rate.HubRateSellingConditionsDeposit:
      required:
        - depositType
        - percent
      type: object
      properties:
        depositType:
          $ref: >-
            #/components/schemas/Description.Rate.HubRateSellingConditionsDepositType
        percent:
          $ref: '#/components/schemas/HotelBusiness.Percent'
    Description.MealPlan.HubMealPlanDescription:
      required:
        - information
        - id
      type: object
      properties:
        rates:
          type: array
          items:
            $ref: '#/components/schemas/HotelBusiness.RateId'
        id:
          $ref: '#/components/schemas/HotelBusiness.ExtraId'
        name:
          type: string
        information:
          default:
            gratuitousnessType:
              value: None
            pricingModel:
              value: None
            category:
              value: None
            personTypeRestriction:
              value: None
            sortOrder: 0
            summaries: []
            pictures: []
          allOf:
            - $ref: '#/components/schemas/Description.MealPlan.HubMealPlanInformation'
    Search.Room.HubSearchRoomResultRateAvailabilityReason:
      description: >-
        Reason why a rate is filtered out of a room search result.


        - **None** — No reason declared.

        - **MinStay** — The stay is shorter than the minimum stay required by
        the rate.

        - **MaxStay** — The stay is longer than the maximum stay allowed by the
        rate.
      enum:
        - None
        - MinStay
        - MaxStay
      type: string
    Description.Common.HubOccupancyDefinition:
      required:
        - isDetailed
        - personCount
        - adultCount
        - childCount
        - infantCount
      type: object
      properties:
        isDetailed:
          type: boolean
        personCount:
          format: int32
          type: integer
        adultCount:
          format: int32
          type: integer
        childCount:
          format: int32
          type: integer
        infantCount:
          format: int32
          type: integer
        childrenAges:
          type: array
          items:
            format: int32
            type: integer
    Description.Room.HubBedType:
      description: Bed configuration offered by a room, ordered from smallest to largest.
      enum:
        - SingleSofa
        - Single
        - SmallDouble
        - DoubleSofa
        - Double
        - QueenSize
        - KingSize
        - SuperKingSize
        - SingleKingSize
      type: string
    Description.Room.HubRoomBedSize:
      required:
        - type
        - width
        - length
      type: object
      properties:
        type:
          $ref: '#/components/schemas/Description.Room.HubBedSizeType'
        width:
          format: int32
          type: integer
        length:
          format: int32
          type: integer
    Search.Room.TemporalValue:
      type: object
      properties:
        start:
          type: string
          readOnly: true
        end:
          type: string
          readOnly: true
    Common.HubValueText_Library.Money_:
      allOf:
        - $ref: '#/components/schemas/Common.HubValueText'
        - type: object
          properties:
            value:
              $ref: '#/components/schemas/Library.Money'
    HotelBusiness.OfferCode.Common.OfferCodeId:
      format: uuid
      type: string
    Common.HubValueText_HotelBusiness.Percent_:
      allOf:
        - $ref: '#/components/schemas/Common.HubValueText'
        - required:
            - value
          type: object
          properties:
            value:
              $ref: '#/components/schemas/HotelBusiness.Percent'
    Common.HubDiscountCalculationMode:
      description: >-
        How a discount amount is computed against the base price.


        - **None** — No discount computation applies.

        - **PercentageWithoutExtras** — Percentage discount applied to the rate
        excluding extras.

        - **Percentage** — Percentage discount applied to the whole basket
        including extras.

        - **Nominal** — Flat monetary amount subtracted from the price.
      enum:
        - None
        - PercentageWithoutExtras
        - Percentage
        - Nominal
      type: string
    Common.HubTaxDetail:
      required:
        - type
        - applyToEntity
      type: object
      properties:
        name:
          type: string
        type:
          $ref: '#/components/schemas/Common.HubTaxType'
        description:
          type: string
        amount:
          $ref: '#/components/schemas/Common.ConvertedMoney'
        dailyTotalAmounts:
          type: array
          items:
            $ref: >-
              #/components/schemas/Search.Room.TemporalValue_Common.ConvertedMoney_
        applyToEntity:
          type: boolean
    Common.HubValueText_Common.HubCancelConditionTermsFormat_:
      allOf:
        - $ref: '#/components/schemas/Common.HubValueText'
        - required:
            - value
          type: object
          properties:
            value:
              $ref: '#/components/schemas/Common.HubCancelConditionTermsFormat'
    Description.Rate.HubRateQualifier:
      description: >-
        Meal-plan and package qualifier attached to a rate.


        - **RoomOnly** — Room only, no meals or services included.

        - **BreakfastIncluded** — Breakfast included.

        - **HalfBoard** — Half board included (breakfast plus one other main
        meal).

        - **FullBoard** — Full board included (breakfast, lunch and dinner).

        - **AllInclusive** — All-inclusive: meals and most beverages included.

        - **SelfCatering** — Self-catering accommodation with cooking
        facilities.

        - **Package** — Non-refundable package rate.

        - **BreakfastIncludedPackage** — Package rate with breakfast included.

        - **HalfBoardPackage** — Package rate with half board included.

        - **FullBoardPackage** — Package rate with full board included.

        - **AllInclusivePackage** — All-inclusive package rate.

        - **SelfCateringPackage** — Self-catering package rate.
      enum:
        - RoomOnly
        - BreakfastIncluded
        - HalfBoard
        - FullBoard
        - AllInclusive
        - SelfCatering
        - Package
        - BreakfastIncludedPackage
        - HalfBoardPackage
        - FullBoardPackage
        - AllInclusivePackage
        - SelfCateringPackage
      type: string
    HotelBusiness.Percent:
      format: decimal
      type: number
    Description.Rate.HubRateSellingConditionsDepositType:
      description: >-
        How the deposit required to guarantee a booking is defined.


        - **Nothing** — No deposit required.

        - **CreditCardNumber** — Credit card number is collected but no funds
        are captured up-front.

        - **FirstNightWithoutExtras** — Amount of the first night excluding
        extras is captured as deposit.

        - **PercentageWithoutExtras** — A percentage of the room rate (excluding
        extras) is captured as deposit.

        - **PercentageWithExtras** — A percentage of the full booking (including
        extras) is captured as deposit.
      enum:
        - Nothing
        - CreditCardNumber
        - FirstNightWithoutExtras
        - PercentageWithoutExtras
        - PercentageWithExtras
      type: string
    HotelBusiness.RateId:
      format: int32
      type: integer
    HotelBusiness.ExtraId:
      format: int32
      type: integer
    Description.MealPlan.HubMealPlanInformation:
      required:
        - gratuitousnessType
        - pricingModel
        - category
        - personTypeRestriction
        - summaries
        - pictures
        - sortOrder
      type: object
      properties:
        gratuitousnessType:
          default:
            value: None
          allOf:
            - $ref: >-
                #/components/schemas/Common.HubValueText_Description.Extra.HubExtraGratuitousnessType_
        pricingModel:
          default:
            value: None
          allOf:
            - $ref: >-
                #/components/schemas/Common.HubValueText_Description.MealPlan.HubMealPlanPricingModel_
        category:
          default:
            value: None
          allOf:
            - $ref: >-
                #/components/schemas/Common.HubValueText_Description.MealPlan.HubMealPlanCategory_
        personTypeRestriction:
          default:
            value: None
          allOf:
            - $ref: >-
                #/components/schemas/Common.HubValueText_Description.MealPlan.HubMealPlanPersonTypeRestriction_
        sortOrder:
          format: int32
          type: integer
        summaries:
          default: []
          type: array
          items:
            $ref: >-
              #/components/schemas/Common.HubValueText_Common.HubDescriptionType_
        pictures:
          default: []
          type: array
          items:
            $ref: '#/components/schemas/Common.HubPicture'
    Description.Room.HubBedSizeType:
      description: >-
        Standardised bed dimensions in centimetres. Each value encodes the bed's
        width and length; use Custom when the dimensions do not match any
        preset.
      enum:
        - Custom
        - Size80By190Cm
        - Size90By190Cm
        - Size90By200Cm
        - Size91By188Cm
        - Size91By191Cm
        - Size99By191Cm
        - Size100By190Cm
        - Size100By200Cm
        - Size120By190Cm
        - Size120By200Cm
        - Size135By200Cm
        - Size137By188Cm
        - Size137By191Cm
        - Size140By190Cm
        - Size140By195Cm
        - Size140By200Cm
        - Size150By200Cm
        - Size152By198Cm
        - Size153By203Cm
        - Size154By195Cm
        - Size160By190Cm
        - Size160By200Cm
        - Size167By203Cm
        - Size170By190Cm
        - Size170By195Cm
        - Size180By190Cm
        - Size180By200Cm
        - Size183By198Cm
        - Size183By203Cm
        - Size183By213Cm
        - Size194By195Cm
        - Size194By203Cm
        - Size194By205Cm
        - Size200By200Cm
        - Size203By203Cm
      type: string
    Library.Money:
      required:
        - amount
        - currency
      type: object
      properties:
        amount:
          format: decimal
          type: number
        currency:
          type: string
    Common.HubTaxType:
      description: >-
        Category of tax or fee applied to a booking. Values map 1:1 to the
        underlying CRS tax classification.


        - **RateTax** — Tax computed on the room rate amount.

        - **ExtraTax** — Tax computed on a booking extra.

        - **OtherTax** — Fallback bucket for taxes that do not map to a more
        specific type.

        - **TouristTax** — Tourist tax collected on behalf of a tourism
        authority.

        - **CityTax** — Tax levied by the city hosting the hotel.

        - **StateTax** — Tax levied at the state or regional level.

        - **StayTax** — Tax computed on the stay (typically per person per
        night).

        - **VAT** — Value-added tax.

        - **LocalTax** — Locally-defined tax collected by the hotel.

        - **GeneralServiceTax** — General service tax as defined by local tax
        regulation.

        - **GovernmentTax** — Tax levied by the national or federal government.

        - **ServiceCharge** — Service charge added by the hotel (distinct from a
        general service tax).

        - **AccommodationTax** — Tax computed on the accommodation portion of
        the booking.

        - **ConsumptionTax** — Consumption tax as defined by local tax
        regulation.

        - **Custom** — Custom tax freely defined by the hotel.

        - **ResortFee** — Mandatory resort fee (common in US properties).

        - **ServiceFee** — Fixed service fee applied to the booking.

        - **CleaningFee** — Housekeeping or cleaning fee.

        - **CustomFee** — Custom fee freely defined by the hotel.
      enum:
        - RateTax
        - ExtraTax
        - OtherTax
        - TouristTax
        - CityTax
        - StateTax
        - StayTax
        - VAT
        - LocalTax
        - GeneralServiceTax
        - GovernmentTax
        - ServiceCharge
        - AccommodationTax
        - ConsumptionTax
        - Custom
        - ResortFee
        - ServiceFee
        - CleaningFee
        - CustomFee
      type: string
    Common.HubCancelConditionTermsFormat:
      description: Format used to render cancellation condition terms shown to end users.
      enum:
        - Default
        - Short
      type: string
    Common.HubValueText_Description.Extra.HubExtraGratuitousnessType_:
      allOf:
        - $ref: '#/components/schemas/Common.HubValueText'
        - required:
            - value
          type: object
          properties:
            value:
              $ref: >-
                #/components/schemas/Description.Extra.HubExtraGratuitousnessType
    Common.HubValueText_Description.MealPlan.HubMealPlanPricingModel_:
      allOf:
        - $ref: '#/components/schemas/Common.HubValueText'
        - required:
            - value
          type: object
          properties:
            value:
              $ref: >-
                #/components/schemas/Description.MealPlan.HubMealPlanPricingModel
    Common.HubValueText_Description.MealPlan.HubMealPlanCategory_:
      allOf:
        - $ref: '#/components/schemas/Common.HubValueText'
        - required:
            - value
          type: object
          properties:
            value:
              $ref: '#/components/schemas/Description.MealPlan.HubMealPlanCategory'
    Common.HubValueText_Description.MealPlan.HubMealPlanPersonTypeRestriction_:
      allOf:
        - $ref: '#/components/schemas/Common.HubValueText'
        - required:
            - value
          type: object
          properties:
            value:
              $ref: >-
                #/components/schemas/Description.MealPlan.HubMealPlanPersonTypeRestriction
    Description.Extra.HubExtraGratuitousnessType:
      description: |-
        Whether an extra is charged, included in the rate, or offered for free.

        - **None** — Extra is charged normally.
        - **Included** — Extra is included in the rate at no additional cost.
        - **Free** — Extra is available free of charge.
        - **Offered** — Extra is offered as a gift by the hotel.
      enum:
        - None
        - Included
        - Free
        - Offered
      type: string
    Description.MealPlan.HubMealPlanPricingModel:
      description: >-
        How a meal plan's price is computed against the guests staying in the
        room.


        - **None** — Meal plan price is not scoped to a guest category.

        - **PerPerson** — Charged per guest (adults, children and infants).

        - **PerAdult** — Charged per adult only.

        - **PerChild** — Charged per child only.
      enum:
        - None
        - PerPerson
        - PerAdult
        - PerChild
      type: string
    Description.MealPlan.HubMealPlanCategory:
      description: >-
        Category of a meal plan offered with a rate.


        - **None** — Meal plan is not categorised.

        - **Breakfast** — Breakfast only.

        - **MorningSnack** — Morning snack served between breakfast and lunch.

        - **Brunch** — Brunch (combined breakfast and lunch).

        - **Lunch** — Lunch only.

        - **AfternoonSnack** — Afternoon snack served between lunch and dinner.

        - **Dinner** — Dinner only.

        - **HalfBoard** — Half board: breakfast plus one other main meal
        (typically dinner).

        - **FullBoard** — Full board: breakfast, lunch and dinner included.

        - **AllInclusive** — All-inclusive: meals and most beverages included.
      enum:
        - None
        - Breakfast
        - MorningSnack
        - Brunch
        - Lunch
        - AfternoonSnack
        - Dinner
        - HalfBoard
        - FullBoard
        - AllInclusive
      type: string
    Description.MealPlan.HubMealPlanPersonTypeRestriction:
      description: |-
        Guest categories to which a meal plan applies.

        - **None** — No restriction is declared.
        - **Adult** — Applies to adults only.
        - **Child** — Applies to children only.
        - **Infant** — Applies to infants only.
        - **All** — Applies to all guest categories.
      enum:
        - None
        - Adult
        - Child
        - Infant
        - All
      type: string

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.