openapi: 3.1.0
info:
  title: Book for Work API
  description: >+

    Welcome to Book for Work API! Before reading the documentation please

    make sure you read the tab Getting Started.


    ## Authentication


    All endpoints require HMAC-SHA256 signature authentication via

    the `Authorization` header:


    **Format**: `Authorization: API-Key={key},Signature={hmac_signature},

    Timestamp={unix_timestamp}`


    **Steps to generate signature**:

    1. Generate the current Unix timestamp (UTC, seconds).

    2. Create the signing message by concatenating the following values
       **in this exact order with no separators**:
       ```
       {api_key}{secret}{timestamp}
       ```
    3. Generate an HMAC-SHA256 signature using the API secret as the HMAC key.

    4. Encode the signature as a hexadecimal string.

    5. Include the API key, signature, and timestamp in the `Authorization`
    header.


    Requests are rejected if the timestamp differs from the server time

    by more than 5 minutes.

  contact:
    name: Book for Work
    email: support@bookforwork.com
  version: 1.0.0
servers:
  - url: /api/v1
  - url: https://bookforwork.com
    description: BFW API Production server
  - url: https://staging.bookforwork.com
    description: BFW API Staging server
paths:
  /properties/availability:
    get:
      tags:
        - Availability
      summary: Search Property Availability
      description: Search for available rooms across multiple properties.
      operationId: get_availability_properties_availability_get
      parameters:
        - name: checkin
          in: query
          required: true
          schema:
            type: string
            format: date
            description: 'Check-in date. Type: `String`, format: `(YYYY-MM-DD)`'
            title: Checkin
          description: 'Check-in date. Type: `String`, format: `(YYYY-MM-DD)`'
        - name: checkout
          in: query
          required: true
          schema:
            type: string
            format: date
            description: 'Check-out date. Type: `String`, format: `(YYYY-MM-DD)`'
            title: Checkout
          description: 'Check-out date. Type: `String`, format: `(YYYY-MM-DD)`'
        - name: property_id
          in: query
          required: true
          schema:
            type: array
            items:
              type: integer
            description: >-
              List of property IDs to check the availability for. Maximum 200
              properties (IDs) per search. Type: List of integers, Example:
              `[1011, 2402, 3813]`.
            title: Property Id
          description: >-
            List of property IDs to check the availability for. Maximum 200
            properties (IDs) per search. Type: List of integers, Example:
            `[1011, 2402, 3813]`.
        - name: occupancy
          in: query
          required: true
          schema:
            type: array
            items:
              type: string
            description: >-
              List of occupancy strings (e.g., `'2'`, `'2-9,4'`) for each room.
              Occupancy strings format is
              `numberOfAdults-firstChildAge,nextChildAge`. Example 2-9,4 -> 2
              adults, 1 child 9 yo, 1 child 4 yo.
            title: Occupancy
          description: >-
            List of occupancy strings (e.g., `'2'`, `'2-9,4'`) for each room.
            Occupancy strings format is
            `numberOfAdults-firstChildAge,nextChildAge`. Example 2-9,4 -> 2
            adults, 1 child 9 yo, 1 child 4 yo.
        - name: authorization
          in: header
          required: true
          schema:
            type: string
            description: >-
              Authorization header with HMAC signature. Format:
              API-Key={key},Signature={hmac_signature},Timestamp={unix_timestamp}
            examples:
              - >-
                API-Key=a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9t0,Signature=d8e3f4a5b6c7d8e9f0a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3,Timestamp=1234567890
            title: Authorization
          description: >-
            Authorization header with HMAC signature. Format:
            API-Key={key},Signature={hmac_signature},Timestamp={unix_timestamp}
      responses:
        '200':
          description: Successful availability search
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AvailabilityResponse'
        '401':
          description: Invalid or missing API credentials
          content:
            application/json:
              examples:
                invalid_api_credentials:
                  summary: Invalid API credentials
                  value:
                    detail: Invalid API credentials
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: Company account is not active
          content:
            application/json:
              examples:
                company_account_not_active:
                  summary: Company account is not active
                  value:
                    detail: Company account is not active
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '422':
          description: Validation error (missing or invalid parameters)
          content:
            application/json:
              examples:
                validation_error:
                  summary: Validation error
                  value:
                    detail:
                      - type: missing
                        loc:
                          - header
                          - authorization
                        msg: Field required
              schema:
                $ref: '#/components/schemas/ErrorResponse'
  /properties/content/:
    get:
      tags:
        - Content
      summary: Get Properties List by Country
      description: >-
        Retrieve paginated list of active properties filtered by country code. 


        **Pagination**: Page size is fixed at 200 items per page. The `total`
        field in response represents the **total number of properties** (not
        pages). To calculate the number of pages, use: `total_pages = total /
        page_size`.
      operationId: get_hotels_properties_content__get
      parameters:
        - name: country_code
          in: query
          required: true
          schema:
            type: string
            minLength: 2
            maxLength: 2
            pattern: ^[A-Z]{2}$
            description: 'Type: String, ISO 3166-1 alpha-2 country code (e.g., ''US'', ''DE'')'
            title: Country Code
          description: 'Type: String, ISO 3166-1 alpha-2 country code (e.g., ''US'', ''DE'')'
        - name: language_code
          in: query
          required: false
          schema:
            enum:
              - en
              - it
            type: string
            default: en
            title: Language Code
        - name: page
          in: query
          required: false
          schema:
            type: integer
            minimum: 1
            description: 'Page number - Type: `Integer`, Example: `1`'
            default: 1
            title: Page
          description: 'Page number - Type: `Integer`, Example: `1`'
        - name: authorization
          in: header
          required: true
          schema:
            type: string
            description: >-
              Authorization header with HMAC signature. Format:
              API-Key={key},Signature={hmac_signature},Timestamp={unix_timestamp}
            examples:
              - >-
                API-Key=a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9t0,Signature=d8e3f4a5b6c7d8e9f0a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3,Timestamp=1234567890
            title: Authorization
          description: >-
            Authorization header with HMAC signature. Format:
            API-Key={key},Signature={hmac_signature},Timestamp={unix_timestamp}
      responses:
        '200':
          description: Successful properties list retrieval
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HotelListResponse'
        '401':
          description: Invalid or missing API credentials
          content:
            application/json:
              examples:
                invalid_api_credentials:
                  summary: Invalid API credentials
                  value:
                    detail: Invalid API credentials
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: Company account is not active
          content:
            application/json:
              examples:
                company_account_not_active:
                  summary: Company account is not active
                  value:
                    detail: Company account is not active
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '422':
          description: Validation error (missing or invalid parameters)
          content:
            application/json:
              examples:
                validation_error:
                  summary: Validation error
                  value:
                    detail:
                      - type: missing
                        loc:
                          - header
                          - authorization
                        msg: Field required
              schema:
                $ref: '#/components/schemas/ErrorResponse'
  /properties/content/{hotel_id}:
    get:
      tags:
        - Content
      summary: Get Property Details by ID
      description: >-
        Retrieve complete property information by ID. Returns all hotel details
        including descriptions, images, themes, attributes, amenities, and
        rooms.
      operationId: get_hotel_detail_properties_content__hotel_id__get
      parameters:
        - name: hotel_id
          in: path
          required: true
          schema:
            type: integer
            description: >-
              Hotel Id to get all the details - Type: `Integer`, Example:
              `75843`
            title: Hotel Id
          description: 'Hotel Id to get all the details - Type: `Integer`, Example: `75843`'
        - name: language_code
          in: query
          required: false
          schema:
            enum:
              - en
              - it
            type: string
            default: en
            title: Language Code
        - name: authorization
          in: header
          required: true
          schema:
            type: string
            description: >-
              Authorization header with HMAC signature. Format:
              API-Key={key},Signature={hmac_signature},Timestamp={unix_timestamp}
            examples:
              - >-
                API-Key=a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9t0,Signature=d8e3f4a5b6c7d8e9f0a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3,Timestamp=1234567890
            title: Authorization
          description: >-
            Authorization header with HMAC signature. Format:
            API-Key={key},Signature={hmac_signature},Timestamp={unix_timestamp}
      responses:
        '200':
          description: Successful hotel detail retrieval
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HotelDetailResponse'
        '401':
          description: Invalid or missing API credentials
          content:
            application/json:
              examples:
                invalid_api_credentials:
                  summary: Invalid API credentials
                  value:
                    detail: Invalid API credentials
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: Company account is not active
          content:
            application/json:
              examples:
                company_account_not_active:
                  summary: Company account is not active
                  value:
                    detail: Company account is not active
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Property not found or inactive
          content:
            application/json:
              examples:
                property_not_found:
                  summary: Property not found or inactive
                  value:
                    detail: Property not found or inactive
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '422':
          description: Validation error (missing or invalid parameters)
          content:
            application/json:
              examples:
                validation_error:
                  summary: Validation error
                  value:
                    detail:
                      - type: missing
                        loc:
                          - header
                          - authorization
                        msg: Field required
              schema:
                $ref: '#/components/schemas/ErrorResponse'
  /price-check:
    get:
      tags:
        - Booking
      summary: Price Check for bookings
      description: >-
        Price check for a specific availability search by its Option ID. Option
        ID should be chosen among Room IDs returned by the search endpoint
        inside Room objects. If there is a price change status you will see the
        change in the pricing and null otherwise.
      operationId: get_price_check_price_check_get
      parameters:
        - name: option_id
          in: query
          required: true
          schema:
            type: string
            description: >-
              Option Id needed for this price check request. Type: `String`,
              Example:
              `'75731f0a2be62d7ffd64f4ec41a96793a918bc4003bedf17c44fcf823e80fd29'`.
            title: Option Id
          description: >-
            Option Id needed for this price check request. Type: `String`,
            Example:
            `'75731f0a2be62d7ffd64f4ec41a96793a918bc4003bedf17c44fcf823e80fd29'`.
        - name: authorization
          in: header
          required: true
          schema:
            type: string
            description: >-
              Authorization header with HMAC signature. Format:
              API-Key={key},Signature={hmac_signature},Timestamp={unix_timestamp}
            examples:
              - >-
                API-Key=a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9t0,Signature=d8e3f4a5b6c7d8e9f0a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3,Timestamp=1234567890
            title: Authorization
          description: >-
            Authorization header with HMAC signature. Format:
            API-Key={key},Signature={hmac_signature},Timestamp={unix_timestamp}
      responses:
        '200':
          description: Successful Price Check for bookings
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PriceCheckResponseForView'
        '401':
          description: Invalid or missing API credentials
          content:
            application/json:
              examples:
                invalid_api_credentials:
                  summary: Invalid API credentials
                  value:
                    detail: Invalid API credentials
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: Company account is not active
          content:
            application/json:
              examples:
                company_account_not_active:
                  summary: Company account is not active
                  value:
                    detail: Company account is not active
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '422':
          description: Validation error (missing or invalid parameters)
          content:
            application/json:
              examples:
                validation_error:
                  summary: Validation error
                  value:
                    detail:
                      - type: missing
                        loc:
                          - header
                          - authorization
                        msg: Field required
              schema:
                $ref: '#/components/schemas/ErrorResponse'
  /booking:
    post:
      tags:
        - Booking
      summary: Create a new booking
      description: >-
        Creates a new booking for a specific availability search. This endpoint
        requires the Option ID returned by the price check endpoint.
      operationId: booking_endpoint_booking_post
      parameters:
        - name: option_id
          in: query
          required: true
          schema:
            type: string
            description: >-
              Option Id returned by the price check endpoint needed for the
              booking request. Type: `String`, Example:
              `'75731f0a2be62d7ffd64f4ec41a96793a918bc4003bedf17c44fcf823e80fd29'`.
            title: Option Id
          description: >-
            Option Id returned by the price check endpoint needed for the
            booking request. Type: `String`, Example:
            `'75731f0a2be62d7ffd64f4ec41a96793a918bc4003bedf17c44fcf823e80fd29'`.
        - name: authorization
          in: header
          required: true
          schema:
            type: string
            description: >-
              Authorization header with HMAC signature. Format:
              API-Key={key},Signature={hmac_signature},Timestamp={unix_timestamp}
            examples:
              - >-
                API-Key=a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9t0,Signature=d8e3f4a5b6c7d8e9f0a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3,Timestamp=1234567890
            title: Authorization
          description: >-
            Authorization header with HMAC signature. Format:
            API-Key={key},Signature={hmac_signature},Timestamp={unix_timestamp}
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BookingRequest'
              description: Room details with guest information.
      responses:
        '201':
          description: Create a new booking
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BookingResponseToClient'
        '401':
          description: Invalid or missing API credentials
          content:
            application/json:
              examples:
                invalid_api_credentials:
                  summary: Invalid API credentials
                  value:
                    detail: Invalid API credentials
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: Company account is not active
          content:
            application/json:
              examples:
                company_account_not_active:
                  summary: Company account is not active
                  value:
                    detail: Company account is not active
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '422':
          description: Validation error (missing or invalid parameters)
          content:
            application/json:
              examples:
                validation_error:
                  summary: Validation error
                  value:
                    detail:
                      - type: missing
                        loc:
                          - header
                          - authorization
                        msg: Field required
              schema:
                $ref: '#/components/schemas/ErrorResponse'
  /cancel:
    delete:
      tags:
        - Manage Booking
      summary: Cancel Booking
      description: Cancels a specific booking by its Booking Id.
      operationId: booking_cancelation_endpoint_cancel_delete
      parameters:
        - name: booking_id
          in: query
          required: true
          schema:
            type: integer
            description: >-
              Booking Id needed for the cancel request. Type: `Integer`,
              Example: `7579`.
            title: Booking Id
          description: >-
            Booking Id needed for the cancel request. Type: `Integer`, Example:
            `7579`.
        - name: authorization
          in: header
          required: true
          schema:
            type: string
            description: >-
              Authorization header with HMAC signature. Format:
              API-Key={key},Signature={hmac_signature},Timestamp={unix_timestamp}
            examples:
              - >-
                API-Key=a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9t0,Signature=d8e3f4a5b6c7d8e9f0a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3,Timestamp=1234567890
            title: Authorization
          description: >-
            Authorization header with HMAC signature. Format:
            API-Key={key},Signature={hmac_signature},Timestamp={unix_timestamp}
      responses:
        '202':
          description: >-
            Accepted - Request is valid but the status of the booking is not
            known yet
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BookingCancelResponse'
        '204':
          description: No Content - Booking has been successfully canceled
          content:
            application/json: {}
        '401':
          description: Invalid or missing API credentials
          content:
            application/json:
              examples:
                invalid_api_credentials:
                  summary: Invalid API credentials
                  value:
                    detail: Invalid API credentials
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: Company account is not active
          content:
            application/json:
              examples:
                company_account_not_active:
                  summary: Company account is not active
                  value:
                    detail: Company account is not active
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '422':
          description: Validation error (missing or invalid parameters)
          content:
            application/json:
              examples:
                validation_error:
                  summary: Validation error
                  value:
                    detail:
                      - type: missing
                        loc:
                          - header
                          - authorization
                        msg: Field required
              schema:
                $ref: '#/components/schemas/ErrorResponse'
  /retrieve:
    get:
      tags:
        - Manage Booking
      summary: Retrieve Booking Details
      description: Retrieves the details of a specific booking by its Booking Id.
      operationId: booking_retrieval_endpoint_retrieve_get
      parameters:
        - name: booking_id
          in: query
          required: true
          schema:
            type: integer
            description: >-
              Booking Id needed for the retrieval request. Type: `Integer`,
              Example: `7579`.
            title: Booking Id
          description: >-
            Booking Id needed for the retrieval request. Type: `Integer`,
            Example: `7579`.
        - name: authorization
          in: header
          required: true
          schema:
            type: string
            description: >-
              Authorization header with HMAC signature. Format:
              API-Key={key},Signature={hmac_signature},Timestamp={unix_timestamp}
            examples:
              - >-
                API-Key=a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9t0,Signature=d8e3f4a5b6c7d8e9f0a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3,Timestamp=1234567890
            title: Authorization
          description: >-
            Authorization header with HMAC signature. Format:
            API-Key={key},Signature={hmac_signature},Timestamp={unix_timestamp}
      responses:
        '200':
          description: Successful booking details retrieval list
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RetrieveBookingResponse'
        '401':
          description: Invalid or missing API credentials
          content:
            application/json:
              examples:
                invalid_api_credentials:
                  summary: Invalid API credentials
                  value:
                    detail: Invalid API credentials
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: Company account is not active
          content:
            application/json:
              examples:
                company_account_not_active:
                  summary: Company account is not active
                  value:
                    detail: Company account is not active
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Booking not found
          content:
            application/json:
              examples:
                not_found:
                  summary: Booking not found
                  value:
                    detail: 'Sorry! We couldn''t find your booking with ID: 90.'
              schema:
                $ref: '#/components/schemas/RetrieveBookingNotFound'
        '422':
          description: Validation error (missing or invalid parameters)
          content:
            application/json:
              examples:
                validation_error:
                  summary: Validation error
                  value:
                    detail:
                      - type: missing
                        loc:
                          - header
                          - authorization
                        msg: Field required
              schema:
                $ref: '#/components/schemas/ErrorResponse'
  /static_content_reference_list:
    get:
      tags:
        - Content
      summary: Static Content Reference List
      description: >-
        Retrieves the list of static content reference in English or Italian
        language.
      operationId: static_content_endpoint_static_content_reference_list_get
      parameters:
        - name: language
          in: query
          required: true
          schema:
            type: string
            description: >-
              language needed for static content reference list. Type: `String`,
              Example: `en`.
            title: Language
          description: >-
            language needed for static content reference list. Type: `String`,
            Example: `en`.
        - name: authorization
          in: header
          required: true
          schema:
            type: string
            description: >-
              Authorization header with HMAC signature. Format:
              API-Key={key},Signature={hmac_signature},Timestamp={unix_timestamp}
            examples:
              - >-
                API-Key=a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9t0,Signature=d8e3f4a5b6c7d8e9f0a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3,Timestamp=1234567890
            title: Authorization
          description: >-
            Authorization header with HMAC signature. Format:
            API-Key={key},Signature={hmac_signature},Timestamp={unix_timestamp}
      responses:
        '200':
          description: Successful static content reference list retrieval
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AllAmenitiesResponse'
        '401':
          description: Invalid or missing API credentials
          content:
            application/json:
              examples:
                invalid_api_credentials:
                  summary: Invalid API credentials
                  value:
                    detail: Invalid API credentials
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: Company account is not active
          content:
            application/json:
              examples:
                company_account_not_active:
                  summary: Company account is not active
                  value:
                    detail: Company account is not active
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '422':
          description: Validation error (missing or invalid parameters)
          content:
            application/json:
              examples:
                validation_error:
                  summary: Validation error
                  value:
                    detail:
                      - type: missing
                        loc:
                          - header
                          - authorization
                        msg: Field required
              schema:
                $ref: '#/components/schemas/ErrorResponse'
components:
  schemas:
    AllAmenitiesResponse:
      properties:
        categories:
          items:
            $ref: '#/components/schemas/AmenityItem'
          type: array
          title: Categories
          description: List of all available categories.
          examples:
            - - id: '0'
                name: Property
              - id: '1'
                name: Hotel
        treatment_categories:
          items:
            $ref: '#/components/schemas/AmenityItem'
          type: array
          title: Treatment Categories
          description: List of all available treatment categories.
          examples:
            - - id: '0'
                name: Half Board
              - id: '1'
                name: Full Board
        room_amenities:
          items:
            $ref: '#/components/schemas/AmenityItem'
          type: array
          title: Room Amenities
          description: List of all available room amenities.
          examples:
            - - id: '0'
                name: Air conditioning
              - id: '1'
                name: Room service (limited hours)
        property_amenities:
          items:
            $ref: '#/components/schemas/AmenityItem'
          type: array
          title: Property Amenities
          description: List of all available property amenities.
          examples:
            - - id: '0'
                name: Hiking/biking trails on site
              - id: '1'
                name: Free beach shuttle
        hotel_attributes:
          items:
            $ref: '#/components/schemas/AmenityItem'
          type: array
          title: Hotel Attributes
          description: List of all available hotel attributes.
          examples:
            - - id: '0'
                name: Parking height restrictions apply
              - id: '1'
                name: Only dogs and cats are allowed
      type: object
      required:
        - categories
        - treatment_categories
        - room_amenities
        - property_amenities
        - hotel_attributes
      title: AllAmenitiesResponse
    AmenityItem:
      properties:
        id:
          type: string
          title: Id
          description: Amenity ID
          examples:
            - '0'
        name:
          type: string
          title: Name
          description: Detail of the amenity.
          examples:
            - Air conditioning
      type: object
      required:
        - id
        - name
      title: AmenityItem
    AvailabilityResponse:
      properties:
        properties:
          items:
            $ref: '#/components/schemas/Property'
          type: array
          title: Properties
          description: Availability information for requested properties
        warnings:
          items:
            type: string
          type: array
          title: Warnings
          description: List of properties not found IDs
          examples:
            - - '228934'
              - '3849405'
              - '2839404'
      type: object
      title: AvailabilityResponse
    BedGroup:
      properties:
        id:
          type: string
          title: Id
          description: Unique identifier for the bed group
          examples:
            - '37321'
        description:
          type: string
          title: Description
          description: Description of the bed configuration
          examples:
            - 1 King Bed
      type: object
      required:
        - id
        - description
      title: BedGroup
    BookStatus:
      type: string
      enum:
        - PROCESSING
        - WAITING_CONFIRMATION
        - CONFIRMED
        - NOT_CONFIRMED
        - PENDING
        - CANCELLED
      title: BookStatus
    BookingCancelResponse:
      properties:
        status:
          $ref: '#/components/schemas/Status'
          description: Status of the booking.
          examples:
            - NOT AVAILABLE
        message:
          anyOf:
            - type: string
            - type: 'null'
          title: Message
          description: The booking could not be found or is already cancelled.
          examples:
            - 'Sorry! We couldn''t find your booking with ID: 90.'
      type: object
      required:
        - status
      title: BookingCancelResponse
    BookingRequest:
      properties:
        room_detail:
          items:
            $ref: '#/components/schemas/RoomRequest'
          type: array
          title: Room Detail
          description: List of rooms with guest details.
        phone_number_prefix:
          type: string
          title: Phone Number Prefix
          description: Phone number prefix. Type - `String`.
          examples:
            - '0039'
        phone_number:
          type: string
          title: Phone Number
          description: Guest phone number. Type - `String`.
          examples:
            - '3632323278'
        email:
          anyOf:
            - type: string
              format: email
            - type: 'null'
          title: Email
          description: Guest email address. Type - `String`.
          examples:
            - francesca.mario@gmail.com
        custom_fields:
          anyOf:
            - $ref: '#/components/schemas/CustomFieldCorrespondence'
            - additionalProperties: true
              type: object
          title: Custom Fields
          description: >-
            Dynamic custom fields can be added up to 10 fields in type string.
            These fields can be added for reconciliation purposes and they will
            be added to the invoices (ex. Order Number: 37484).
          examples:
            - custom_field_1: value 1
              custom_field_2: value 2
      type: object
      required:
        - room_detail
        - phone_number_prefix
        - phone_number
      title: BookingRequest
    BookingResponseToClient:
      properties:
        status:
          $ref: '#/components/schemas/BookStatus'
          description: Status of the booking
          examples:
            - CONFIRMED
        booking_id:
          type: integer
          title: Booking Id
          description: Booking Id
          examples:
            - '626'
      type: object
      required:
        - status
        - booking_id
      title: BookingResponseToClient
    CoordinatesSchema:
      properties:
        latitude:
          type: number
          title: Latitude
          description: Latitude coordinate
          examples:
            - 40.715195
        longitude:
          type: number
          title: Longitude
          description: Longitude coordinate
          examples:
            - -74.00917
      type: object
      required:
        - latitude
        - longitude
      title: CoordinatesSchema
    CountrySchema:
      properties:
        code:
          type: string
          title: Code
          description: Country code ISO 3166-1 alpha-2 format
          examples:
            - US
        name:
          type: string
          title: Name
          description: Country name
          examples:
            - United States of America
      type: object
      required:
        - code
        - name
      title: CountrySchema
    CustomFieldCorrespondence:
      type: string
      enum:
        - custom_field_1
        - custom_field_2
        - custom_field_3
        - custom_field_4
        - custom_field_5
        - custom_field_6
        - custom_field_7
        - custom_field_8
        - custom_field_9
        - custom_field_10
      title: CustomFieldCorrespondence
    ErrorResponse:
      properties:
        detail:
          type: string
          title: Detail
      type: object
      required:
        - detail
      title: ErrorResponse
    HotelAttributeSchema:
      properties:
        id:
          type: integer
          title: Id
          description: Attribute ID
          examples:
            - 9
        name:
          type: string
          title: Name
          description: Attribute name
          examples:
            - Service animals are allowed
        value:
          anyOf:
            - type: integer
            - type: 'null'
          title: Value
          description: Attribute value
      type: object
      required:
        - id
        - name
      title: HotelAttributeSchema
    HotelDescription:
      properties:
        rooms:
          anyOf:
            - type: string
            - type: 'null'
          title: Rooms
          description: Room description
        dining:
          anyOf:
            - type: string
            - type: 'null'
          title: Dining
          description: Dining description
        headline:
          anyOf:
            - type: string
            - type: 'null'
          title: Headline
          description: Headline
        location:
          anyOf:
            - type: string
            - type: 'null'
          title: Location
          description: Location description
        amenities:
          anyOf:
            - type: string
            - type: 'null'
          title: Amenities
          description: Amenities description
        attractions:
          anyOf:
            - type: string
            - type: 'null'
          title: Attractions
          description: Nearby attractions
        business_amenities:
          anyOf:
            - type: string
            - type: 'null'
          title: Business Amenities
          description: Business amenities description
        renovations:
          anyOf:
            - type: string
            - type: 'null'
          title: Renovations
          description: Renovation information
      type: object
      title: HotelDescription
    HotelDetailResponse:
      properties:
        id:
          type: integer
          title: Id
          description: Hotel ID
          examples:
            - 255450
        name:
          type: string
          title: Name
          description: Hotel name
          examples:
            - Smyth Tribeca
        stars:
          anyOf:
            - type: number
            - type: 'null'
          title: Stars
          description: Star rating
          examples:
            - 4
        pic:
          anyOf:
            - type: string
            - type: 'null'
          title: Pic
          description: Main image URL
          examples:
            - >-
              https://i.travelapi.com/lodging/3000000/2300000/2292900/2292873/f83fa98d_z.jpg
        city:
          anyOf:
            - type: string
            - type: 'null'
          title: City
          description: City name
          examples:
            - New York
        address:
          anyOf:
            - type: string
            - type: 'null'
          title: Address
          description: Address
          examples:
            - 85 West Broadway
        state_code:
          anyOf:
            - type: string
            - type: 'null'
          title: State Code
          description: State code
          examples:
            - NY
        state_name:
          anyOf:
            - type: string
            - type: 'null'
          title: State Name
          description: State name
          examples:
            - New York
        zipcode:
          anyOf:
            - type: string
            - type: 'null'
          title: Zipcode
          description: ZIP code
          examples:
            - '10017'
        coordinates:
          anyOf:
            - $ref: '#/components/schemas/CoordinatesSchema'
            - type: 'null'
          description: GPS coordinates
        country:
          anyOf:
            - $ref: '#/components/schemas/CountrySchema'
            - type: 'null'
          description: Country information
        category:
          anyOf:
            - type: string
            - type: 'null'
          title: Category
          description: Property category
          examples:
            - Hotel
        phone_nr:
          anyOf:
            - type: string
            - type: 'null'
          title: Phone Nr
          description: Phone number
          examples:
            - 1-917-997-2700
        guest_rating_count:
          anyOf:
            - type: integer
            - type: 'null'
          title: Guest Rating Count
          description: Number of guest ratings
          examples:
            - 828
        guest_rating_overall:
          anyOf:
            - type: number
            - type: 'null'
          title: Guest Rating Overall
          description: Overall rating
          examples:
            - 8.8
        guest_rating_cleanliness:
          anyOf:
            - type: number
            - type: 'null'
          title: Guest Rating Cleanliness
          description: Cleanliness rating
          examples:
            - 9.2
        guest_rating_service:
          anyOf:
            - type: number
            - type: 'null'
          title: Guest Rating Service
          description: Service rating
          examples:
            - 9.2
        guest_rating_comfort:
          anyOf:
            - type: number
            - type: 'null'
          title: Guest Rating Comfort
          description: Comfort rating
          examples:
            - 9.2
        guest_rating_condition:
          anyOf:
            - type: number
            - type: 'null'
          title: Guest Rating Condition
          description: Condition rating
          examples:
            - 9.2
        guest_rating_location:
          anyOf:
            - type: number
            - type: 'null'
          title: Guest Rating Location
          description: Location rating
          examples:
            - 9.2
        guest_rating_neighborhood:
          anyOf:
            - type: number
            - type: 'null'
          title: Guest Rating Neighborhood
          description: Neighborhood rating
          examples:
            - 9.2
        guest_rating_amenities:
          anyOf:
            - type: number
            - type: 'null'
          title: Guest Rating Amenities
          description: Amenities rating
          examples:
            - 9.2
        guest_rating_rec_percent:
          anyOf:
            - type: number
            - type: 'null'
          title: Guest Rating Rec Percent
          description: Recommendation percentage
          examples:
            - 9.2
        check_in_begin_time:
          anyOf:
            - type: string
            - type: 'null'
          title: Check In Begin Time
          description: Check-in begin time. HH:MM:SS
          examples:
            - '15:00:00'
        check_in_end_time:
          anyOf:
            - type: string
            - type: 'null'
          title: Check In End Time
          description: Check-in end time. HH:MM:SS
          examples:
            - '23:00:00'
        check_out_time:
          anyOf:
            - type: string
            - type: 'null'
          title: Check Out Time
          description: Check-out time. HH:MM:SS
          examples:
            - '12:00:00'
        min_age:
          anyOf:
            - type: integer
            - type: 'null'
          title: Min Age
          description: Minimum age requirement
          examples:
            - 18
        instructions:
          anyOf:
            - type: string
            - type: 'null'
          title: Instructions
          description: Instructions
          examples:
            - This is a sample instruction
        special_instructions:
          anyOf:
            - type: string
            - type: 'null'
          title: Special Instructions
          description: Special instructions
          examples:
            - This is a sample special instruction
        mandatory_fees:
          anyOf:
            - type: string
            - type: 'null'
          title: Mandatory Fees
          description: Mandatory fees
          examples:
            - This is a sample mandatory fee
        optional_fees:
          anyOf:
            - type: string
            - type: 'null'
          title: Optional Fees
          description: Optional fees
          examples:
            - This is a sample optional fees
        policies:
          anyOf:
            - type: string
            - type: 'null'
          title: Policies
          description: Hotel policies
          examples:
            - This is a sample hotel policies
        description:
          anyOf:
            - $ref: '#/components/schemas/HotelDescription'
            - type: 'null'
          description: Hotel description
          examples:
            - This is a sample description
        importance:
          anyOf:
            - type: integer
            - type: 'null'
          title: Importance
          description: Importance ranking
          examples:
            - 233434
        nr_of_rooms:
          anyOf:
            - type: integer
            - type: 'null'
          title: Nr Of Rooms
          description: Number of rooms
          examples:
            - 250
        property_area_sq:
          anyOf:
            - type: number
            - type: 'null'
          title: Property Area Sq
          description: Property area in sq meters
          examples:
            - 300000
        active:
          anyOf:
            - type: boolean
            - type: 'null'
          title: Active
          description: Active status
          examples:
            - true
        created_at:
          type: string
          title: Created At
          description: Creation timestamp
          examples:
            - '2025-03-21T20:35:43.717023+00:00'
        updated_at:
          type: string
          title: Updated At
          description: Last update timestamp
          examples:
            - '2025-08-26T12:37:07.210607+00:00'
        images:
          items:
            $ref: '#/components/schemas/HotelImageSchema'
          type: array
          title: Images
          description: Hotel images
        themes:
          items:
            $ref: '#/components/schemas/HotelThemeSchema'
          type: array
          title: Themes
          description: Hotel themes
        attributes:
          items:
            $ref: '#/components/schemas/HotelAttributeSchema'
          type: array
          title: Attributes
          description: Hotel attributes
        amenities:
          items:
            $ref: '#/components/schemas/HotelPropertyAmenitySchema'
          type: array
          title: Amenities
          description: Hotel amenities
        rooms:
          items:
            $ref: '#/components/schemas/HotelRoomSchema'
          type: array
          title: Rooms
          description: Hotel rooms
      type: object
      required:
        - id
        - name
        - created_at
        - updated_at
      title: HotelDetailResponse
    HotelImageSchema:
      properties:
        id:
          type: integer
          title: Id
          description: Image ID
          examples:
            - 1938121
        link:
          type: string
          title: Link
          description: Image URL
          examples:
            - >-
              https://i.travelapi.com/lodging/3000000/2300000/2292900/2292873/f83fa98d_z.jpg
        caption:
          type: string
          title: Caption
          description: Image caption
          examples:
            - Lobby
      type: object
      required:
        - id
        - link
        - caption
      title: HotelImageSchema
    HotelListResponse:
      properties:
        country_code:
          type: string
          title: Country Code
          description: Country code
          examples:
            - US
        page:
          type: integer
          minimum: 1
          title: Page
          description: Current page number
          examples:
            - 1
        page_size:
          type: integer
          title: Page Size
          description: Page size (fixed at 200)
          examples:
            - 200
        total:
          type: integer
          minimum: 0
          title: Total
          description: >-
            Total number of properties (not pages). Calculate total pages as:
            total / page_size
          examples:
            - 60450
        hotels:
          items:
            $ref: '#/components/schemas/HotelShortInfo'
          type: array
          title: Hotels
          description: List of properties
      type: object
      required:
        - country_code
        - page
        - page_size
        - total
      title: HotelListResponse
    HotelPropertyAmenitySchema:
      properties:
        id:
          type: integer
          title: Id
          description: Amenity ID
          examples:
            - 59
        name:
          type: string
          title: Name
          description: Amenity name
          examples:
            - 24-hour front desk
        value:
          anyOf:
            - type: string
            - type: 'null'
          title: Value
          description: Amenity value
      type: object
      required:
        - id
        - name
      title: HotelPropertyAmenitySchema
    HotelRoomAmenitySchema:
      properties:
        id:
          type: integer
          title: Id
          description: Room amenity ID
          examples:
            - 153
        name:
          type: string
          title: Name
          description: Room amenity name
          examples:
            - Non-smoking
      type: object
      required:
        - id
        - name
      title: HotelRoomAmenitySchema
    HotelRoomImageSchema:
      properties:
        id:
          type: integer
          title: Id
          description: Room image ID
          examples:
            - 1683306
        link:
          type: string
          title: Link
          description: Room image URL
          examples:
            - >-
              https://i.travelapi.com/lodging/3000000/2300000/2292900/2292873/af5f733b_z.jpg
        caption:
          type: string
          title: Caption
          description: Room image caption
          examples:
            - Room
      type: object
      required:
        - id
        - link
        - caption
      title: HotelRoomImageSchema
    HotelRoomSchema:
      properties:
        id:
          type: integer
          title: Id
          description: Room ID
          examples:
            - 222938
        code:
          type: string
          title: Code
          description: Room code
          examples:
            - '1'
        name:
          type: string
          title: Name
          description: Room name
          examples:
            - Standard Room
        area_sq:
          anyOf:
            - type: integer
            - type: 'null'
          title: Area Sq
          description: Room area in sq meters
          examples:
            - 74
        max_occupancy:
          anyOf:
            - type: integer
            - type: 'null'
          title: Max Occupancy
          description: Maximum occupancy
          examples:
            - 4
        description:
          anyOf:
            - type: string
            - type: 'null'
          title: Description
          description: Room description
          examples:
            - This is a sample description
        amenities:
          items:
            $ref: '#/components/schemas/HotelRoomAmenitySchema'
          type: array
          title: Amenities
          description: Room amenities
        images:
          items:
            $ref: '#/components/schemas/HotelRoomImageSchema'
          type: array
          title: Images
          description: Room images
      type: object
      required:
        - id
        - code
        - name
      title: HotelRoomSchema
    HotelShortInfo:
      properties:
        hotel_id:
          type: integer
          title: Hotel Id
          description: Hotel ID
          examples:
            - 255450
        name:
          type: string
          title: Name
          description: Hotel name
          examples:
            - Smyth Tribeca
        city:
          type: string
          title: City
          description: City name
          examples:
            - New York
        address:
          anyOf:
            - type: string
            - type: 'null'
          title: Address
          description: Address
          examples:
            - 5th Avenue
        postal_code:
          anyOf:
            - type: string
            - type: 'null'
          title: Postal Code
          description: Postal code
          examples:
            - '19404'
        country_code:
          type: string
          title: Country Code
          description: Country code ISO 3166-1 alpha-2 format
          examples:
            - US
        coordinates:
          anyOf:
            - $ref: '#/components/schemas/CoordinatesSchema'
            - type: 'null'
          description: GPS coordinates
        last_updated:
          type: string
          title: Last Updated
          description: Last updated timestamp. ISO 8601 format
          examples:
            - '2026-11-07T16:00:00Z'
      type: object
      required:
        - hotel_id
        - name
        - city
        - country_code
        - last_updated
      title: HotelShortInfo
    HotelThemeSchema:
      properties:
        id:
          type: integer
          title: Id
          description: Theme ID
          examples:
            - 2334
        name:
          type: string
          title: Name
          description: Theme name
          examples:
            - Golf property
      type: object
      required:
        - id
        - name
      title: HotelThemeSchema
    Occupancy:
      properties:
        adults:
          type: integer
          minimum: 1
          title: Adults
          description: Number of adults
        children:
          items:
            type: integer
          type: array
          title: Children
          description: List of children ages (0-17)
      type: object
      required:
        - adults
      title: Occupancy
      description: Parsed occupancy data
    Price:
      properties:
        without_tax:
          type: string
          title: Without Tax
          description: Price without tax
          examples:
            - '3046.84'
        taxes:
          type: string
          title: Taxes
          description: Tax amount
          examples:
            - '461.67'
        sales_taxes:
          type: string
          title: Sales Taxes
          description: Sales tax amount
          examples:
            - '0.00'
        net:
          type: string
          title: Net
          description: Net price
          examples:
            - '3508.51'
        currency:
          type: string
          title: Currency
          description: Currency code
          default: EUR
          examples:
            - EUR
      type: object
      required:
        - without_tax
        - taxes
        - sales_taxes
        - net
      title: Price
    PriceCheckResponseForView:
      properties:
        status:
          $ref: '#/components/schemas/PriceCheckStatus'
          description: Status after the price check.
          examples:
            - PRICE CHANGE
        price:
          anyOf:
            - $ref: '#/components/schemas/Price'
            - type: 'null'
          description: In case of price change the new pricing information.
          examples:
            - currency: EUR
              net: '358.25'
              sales_taxes: '0.00'
              taxes: '57.10'
              without_tax: '301.15'
        booking_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Booking Id
          description: Booking id which is used as option id to make booking request.
          examples:
            - 41db9a7889ffac6b771de3141f2f923c9f655bbab0e415ead9a464e519edf5c0
      type: object
      required:
        - status
      title: PriceCheckResponseForView
    PriceCheckStatus:
      type: string
      enum:
        - AVAILABLE
        - NOT AVAILABLE
        - PRICE CHANGE
        - POLICY CHANGE
      title: PriceCheckStatus
    Property:
      properties:
        property_id:
          type: string
          title: Property Id
          description: Property ID
          examples:
            - '255450'
        status:
          type: string
          title: Status
          description: Overall availability status for the property
          examples:
            - available
        rooms:
          items:
            $ref: '#/components/schemas/Room'
          type: array
          title: Rooms
          description: Available room options
      type: object
      required:
        - property_id
        - status
      title: Property
    RetrieveBookingNotFound:
      properties:
        status:
          $ref: '#/components/schemas/Status'
          description: Status of the booking.
          examples:
            - NOT AVAILABLE
        message:
          type: string
          title: Message
          description: The booking could not be found
          examples:
            - 'Sorry! We couldn''t find your booking with ID: 90.'
      type: object
      required:
        - status
        - message
      title: RetrieveBookingNotFound
    RetrieveBookingResponse:
      properties:
        booking_id:
          type: integer
          title: Booking Id
          description: Booking ID
          examples:
            - 938
        status:
          type: string
          title: Status
          description: Status of the booking
          examples:
            - CONFIRMED
        guest_contact_number:
          type: string
          title: Guest Contact Number
          description: Guest contact number
          examples:
            - 39 56323232
        email:
          type: string
          title: Email
          description: Email of the guest
          examples:
            - francesca.mario@gmail.com
        check_in:
          type: string
          title: Check In
          description: Check-in Date
          examples:
            - '2025-12-24'
        check_out:
          type: string
          title: Check Out
          description: Check-out Date
          examples:
            - '2025-12-27'
        cancel_policy:
          type: boolean
          title: Cancel Policy
          description: Whether the booking has a cancel policy
          examples:
            - true
        penalty_date:
          anyOf:
            - type: string
            - type: 'null'
          title: Penalty Date
          description: Penalty date for booking cancelation
          examples:
            - '2025-12-18'
        price:
          $ref: '#/components/schemas/RetrievePricing'
          description: Pricing information
        package:
          type: boolean
          title: Package
          description: >-
            Whether this is a package rate. Package rates must be sold together
            with a transport service (ex. flight, rental car, train, etc.)
          examples:
            - true
        created_at:
          type: string
          title: Created At
          description: Creation date
          examples:
            - '2025-12-15'
        custom_fields:
          anyOf:
            - $ref: '#/components/schemas/CustomFieldCorrespondence'
            - additionalProperties: true
              type: object
          title: Custom Fields
          description: >-
            Dynamic custom fields can be added up to 10 fields in type string.
            These fields can be added for reconciliation purposes and they will
            be added to the invoices (ex. Order Number: 37484).
          examples:
            - custom_field_1: Value 1
              custom_field_2: Value 2
        rooms:
          items:
            $ref: '#/components/schemas/RetrieveRoom'
          type: array
          title: Rooms
          description: Information about the booked Room
      type: object
      required:
        - booking_id
        - status
        - guest_contact_number
        - email
        - check_in
        - check_out
        - cancel_policy
        - penalty_date
        - price
        - package
        - created_at
      title: RetrieveBookingResponse
    RetrievePricing:
      properties:
        total_amount:
          type: string
          title: Total Amount
          description: Total amount for the booking
          examples:
            - '626.34'
        currency:
          type: string
          title: Currency
          description: Currency
          examples:
            - USD
        payment_status:
          type: string
          title: Payment Status
          description: Payment Status of the booking
          examples:
            - PAID
      type: object
      required:
        - total_amount
        - currency
        - payment_status
      title: RetrievePricing
    RetrieveRoom:
      properties:
        room_id:
          type: integer
          title: Room Id
          description: Room ID
          examples:
            - 938
        lead_name:
          type: string
          title: Lead Name
          description: First name of the lead
          examples:
            - Francesca
        lead_last_name:
          type: string
          title: Lead Last Name
          description: Last name of the lead
          examples:
            - Mario
        special_requests:
          type: string
          title: Special Requests
          description: Special Request while booking
          examples:
            - Top floor or away from street
        room_name:
          type: string
          title: Room Name
          description: Name of the room
          examples:
            - 1 Bedroom Apartment Sea View Prestige
        bed_type:
          type: string
          title: Bed Type
          description: Type of the bed
          examples:
            - King bed
        treatments:
          items:
            $ref: '#/components/schemas/RetrieveTreatments'
          type: array
          title: Treatments
          description: Treatments
        number_of_adults:
          type: integer
          title: Number Of Adults
          description: Number of the adults
          examples:
            - 2
        child_ages:
          items:
            type: integer
          type: array
          title: Child Ages
          description: Child ages
          examples:
            - - 2
              - 3
      type: object
      required:
        - room_id
        - lead_name
        - lead_last_name
        - special_requests
        - room_name
        - bed_type
        - number_of_adults
        - child_ages
      title: RetrieveRoom
    RetrieveTreatments:
      properties:
        id:
          type: string
          title: Id
          description: Treatment ID
          examples:
            - 14
        name:
          anyOf:
            - additionalProperties: true
              type: object
            - type: 'null'
          title: Name
          description: Treatment ID
          examples:
            - en: Room_only
              it: Solo pernottamento
      type: object
      required:
        - id
        - name
      title: RetrieveTreatments
    Room:
      properties:
        id:
          type: string
          title: Id
          description: Unique room option ID. To be used for Price Check.
          examples:
            - a7c414b282c11168f16d5a3260a87238b59e8bf60e24a44bdbc021eacf2145f7
        number_of_rooms:
          type: integer
          title: Number Of Rooms
          description: >-
            Number of rooms returned based on requested occupancy. This is the
            number of rooms that will be booked when passing the above option ID
            to the booking request.
          examples:
            - 1
        occupancy_of_rooms:
          items:
            $ref: '#/components/schemas/Occupancy'
          type: array
          title: Occupancy Of Rooms
          description: >-
            Occupancy of rooms returned based on requested occupancy. This is
            the occupancy of rooms that will be booked when passing the above
            option ID to the booking request.
          examples:
            - - adults: 2
                children: []
        room_name:
          type: string
          title: Room Name
          description: Name of the room type
          examples:
            - Studio Suite (Tribeca Suite)
        status:
          type: string
          title: Status
          description: Availability status
          examples:
            - available
        refundable:
          type: boolean
          title: Refundable
          description: Whether the rate is refundable
          examples:
            - true
        cancel_penalties:
          anyOf:
            - type: string
            - type: 'null'
          title: Cancel Penalties
          description: >-
            Cancellation penalty information. Returned only if the room is
            refundable. This defines that latest available date and time to
            cancel the room free of charges. ISO 8601 format.
          examples:
            - '2026-11-07T16:00:00Z'
        package:
          type: boolean
          title: Package
          description: >-
            Whether this is a package rate. Package rates must be sold together
            with a transport service (ex. flight, rental car, train, etc.)
          examples:
            - true
        corporate:
          type: boolean
          title: Corporate
          description: >-
            Whether this is a corporate rate. Corporate rates are special rates
            that include special conditions for corporate guests (ex. free
            breakfast, delayed cancellation deadline, etc)
          examples:
            - false
        bed_groups:
          items:
            $ref: '#/components/schemas/BedGroup'
          type: array
          title: Bed Groups
          description: Bed configuration information
        price:
          $ref: '#/components/schemas/Price'
          description: Pricing information
        treatments:
          items:
            $ref: '#/components/schemas/Treatment'
          type: array
          title: Treatments
          description: Room treatments
      type: object
      required:
        - id
        - number_of_rooms
        - occupancy_of_rooms
        - room_name
        - status
        - refundable
        - package
        - corporate
        - price
      title: Room
    RoomRequest:
      properties:
        lead_first_name:
          type: string
          title: Lead First Name
          description: Lead guest first name. Type - `String`.
          examples:
            - Francesca
        lead_last_name:
          type: string
          title: Lead Last Name
          description: Lead guest last name. Type - `String`.
          examples:
            - Mario
        notes:
          anyOf:
            - type: string
            - type: 'null'
          title: Notes
          description: Any special requests or notes for the room. Type - `String`.
          examples:
            - Top floor or away from street.
      type: object
      required:
        - lead_first_name
        - lead_last_name
      title: RoomRequest
    Status:
      type: string
      enum:
        - OK
        - NOT AVAILABLE
        - PRICE CHANGE
        - POLICY CHANGE
      title: Status
    Treatment:
      properties:
        id:
          type: string
          title: Id
          description: Treatment category ID
          examples:
            - '1'
        name:
          type: string
          title: Name
          description: Treatment name
          examples:
            - Room only
      type: object
      required:
        - id
        - name
      title: Treatment
