Expedia Lodging API

API for lodging supply and property management within the Expedia Group partner network.

OpenAPI Specification

expedia-lodging-product-openapi-original.yml Raw ↑
openapi: 3.0.1
info:
  title: Expedia Group Product API
  description: |
    The Product API will enable Expedia lodging partners to read, create and edit room types and rate plans via APIs, without having to use Partner Central or contact their market manager. </br><br/>To start experimenting, please use your existing EQC credentials and properties.
  contact:
    name: Lodging Connectivity
    url: https://expediaconnectivity.com/developer
    email: [email protected]
  version: "2.0"
servers:
  - url: https://services.expediapartnercentral.com/
tags:
  - name: Property
    description: The property resource
  - name: Rate Plan
    description: The rate plan resource
  - name: Rate Verification Thresholds
    description: Manage room types Rate Verification Thresholds
  - name: Room Type
    description: Manage room types
  - name: Room Type Amenities
    description: Manage room type amenities
paths:
  /products/properties:
    get:
      tags:
        - Property
      summary: Expedia Group Obtain a list of properties
      operationId: getProperties
      parameters:
        - name: status
          in: query
          description: Status filter. String. Only supported value is "all".
          schema:
            type: string
        - name: offset
          in: query
          description: Pagination offset. Integer starting at 0
          schema:
            type: string
            default: "0"
        - name: limit
          in: query
          description: Pagination limit. Integer between 1 and 200.
          schema:
            type: string
            default: "20"
      responses:
        "200":
          description: OK
          content:
            application/vnd.expedia.eps.product-v2+json:
              schema:
                $ref: '#/components/schemas/ResponseWrapperDTO«List«PropertyDTO»»'
      security:
        - Basic: []
  /products/properties/{propertyId}:
    get:
      tags:
        - Property
      summary: Expedia Group Read a single property
      operationId: getProperty
      parameters:
        - name: propertyId
          in: path
          description: Expedia Property ID
          required: true
          schema:
            type: string
      responses:
        "200":
          description: OK
          content:
            application/vnd.expedia.eps.product-v2+json:
              schema:
                $ref: '#/components/schemas/ResponseWrapperDTO«PropertyDTO»'
      security:
        - Basic: []
  /properties/{propertyId}/roomTypes:
    get:
      tags:
        - Room Type
      summary: Expedia Group Obtain a list of room types for a given property
      operationId: getRoomTypes
      parameters:
        - name: propertyId
          in: path
          description: Expedia Property ID
          required: true
          schema:
            type: string
      responses:
        "200":
          description: OK
          content:
            application/vnd.expedia.eps.product-v3+json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/RoomType'
        default:
          description: Error
          content:
            application/vnd.expedia.eps.product-v3+json:
              schema:
                $ref: '#/components/schemas/Errors'
      security:
        - Basic: []
    post:
      tags:
        - Room Type
      summary: Expedia Group Creates a new room type
      operationId: createRoomType
      parameters:
        - name: propertyId
          in: path
          description: Expedia Property ID
          required: true
          schema:
            type: string
      requestBody:
        description: roomType
        content:
          application/vnd.expedia.eps.product-v3+json:
            schema:
              $ref: '#/components/schemas/RoomType'
        required: true
      responses:
        "201":
          description: Created
          content:
            application/vnd.expedia.eps.product-v3+json:
              schema:
                $ref: '#/components/schemas/RoomType'
        default:
          description: Error
          content:
            application/vnd.expedia.eps.product-v3+json:
              schema:
                $ref: '#/components/schemas/Errors'
      security:
        - Basic: []
      x-codegen-request-body-name: roomType
  /properties/{propertyId}/roomTypes/{roomTypeId}:
    get:
      tags:
        - Room Type
      summary: Expedia Group Read a single room type from a given property
      operationId: getRoomType
      parameters:
        - name: propertyId
          in: path
          description: Expedia Property ID
          required: true
          schema:
            type: string
        - name: roomTypeId
          in: path
          description: Room type resource ID
          required: true
          schema:
            type: string
      responses:
        "200":
          description: OK
          content:
            application/vnd.expedia.eps.product-v3+json:
              schema:
                $ref: '#/components/schemas/RoomType'
        default:
          description: Error
          content:
            application/vnd.expedia.eps.product-v3+json:
              schema:
                $ref: '#/components/schemas/Errors'
      security:
        - Basic: []
    put:
      tags:
        - Room Type
      summary: Expedia Group Modify an existing room type
      operationId: updateRoomType
      parameters:
        - name: propertyId
          in: path
          description: Expedia Property ID
          required: true
          schema:
            type: string
        - name: roomTypeId
          in: path
          description: Room type resource ID
          required: true
          schema:
            type: string
      requestBody:
        description: roomType
        content:
          application/vnd.expedia.eps.product-v3+json:
            schema:
              $ref: '#/components/schemas/RoomType'
        required: true
      responses:
        "200":
          description: OK
          content:
            application/vnd.expedia.eps.product-v3+json:
              schema:
                $ref: '#/components/schemas/RoomType'
        default:
          description: Error
          content:
            application/vnd.expedia.eps.product-v3+json:
              schema:
                $ref: '#/components/schemas/Errors'
      security:
        - Basic: []
      x-codegen-request-body-name: roomType
    patch:
      tags:
        - Room Type
      summary: Expedia Group Patch an existing room type
      operationId: patchRoomType
      parameters:
        - name: propertyId
          in: path
          description: Expedia Property Id
          required: true
          schema:
            type: string
        - name: roomTypeId
          in: path
          description: Room type resource ID
          required: true
          schema:
            type: string
      requestBody:
        description: JSON message of partially updated room type
        content:
          application/vnd.expedia.eps.product-v3+json:
            schema:
              $ref: '#/components/schemas/RoomType'
        required: true
      responses:
        "200":
          description: OK
          content:
            application/vnd.expedia.eps.product-v3+json:
              schema:
                $ref: '#/components/schemas/RoomType'
        default:
          description: Error
          content:
            application/vnd.expedia.eps.product-v3+json:
              schema:
                $ref: '#/components/schemas/Errors'
      security:
        - Basic: []
      x-codegen-request-body-name: roomTypeBody
  /properties/{propertyId}/roomTypes/{roomTypeId}/amenities:
    get:
      tags:
        - Room Type Amenities
      summary: Expedia Group Read a single room type's amenities
      operationId: getRoomTypeAmenities
      parameters:
        - name: propertyId
          in: path
          description: Expedia Property ID
          required: true
          schema:
            type: string
        - name: roomTypeId
          in: path
          description: Room type resource ID. Integer
          required: true
          schema:
            type: string
      responses:
        "200":
          description: OK
          content:
            application/vnd.expedia.eps.product-v2+json:
              schema:
                $ref: '#/components/schemas/ResponseWrapperDTO«List«RoomTypeAmenityDTO»»'
      security:
        - Basic: []
    put:
      tags:
        - Room Type Amenities
      summary: Expedia Group Set room type amenities to an existing room type
      operationId: setRoomTypeAmenities
      parameters:
        - name: propertyId
          in: path
          description: Expedia Property Id
          required: true
          schema:
            type: string
        - name: roomTypeId
          in: path
          description: Room type resource ID
          required: true
          schema:
            type: string
      requestBody:
        description: JSON message with the room type amenities
        content:
          application/vnd.expedia.eps.product-v2+json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/RoomTypeAmenityDTO'
        required: true
      responses:
        "200":
          description: OK
          content:
            application/vnd.expedia.eps.product-v2+json:
              schema:
                $ref: '#/components/schemas/ResponseWrapperDTO«List«RoomTypeAmenityDTO»»'
      security:
        - Basic: []
      x-codegen-request-body-name: roomTypeAmenityDTOs
  /properties/{propertyId}/roomTypes/{roomTypeId}/ratePlans:
    get:
      tags:
        - Rate Plan
      summary: Expedia Group Obtain a list of rate plans
      operationId: getRatePlans
      parameters:
        - name: propertyId
          in: path
          description: Expedia Property ID
          required: true
          schema:
            type: string
        - name: roomTypeId
          in: path
          description: Room type resource ID
          required: true
          schema:
            type: string
        - name: status
          in: query
          description: Status filter. String. Only supported value is "all".
          schema:
            type: string
      responses:
        "200":
          description: OK
          content:
            application/vnd.expedia.eps.product-v2+json:
              schema:
                $ref: '#/components/schemas/ResponseWrapperDTO«List«RatePlanDTO»»'
      security:
        - Basic: []
    post:
      tags:
        - Rate Plan
      summary: Expedia Group Creates a new rate plan
      operationId: createRatePlan
      parameters:
        - name: propertyId
          in: path
          description: Expedia Property ID
          required: true
          schema:
            type: string
        - name: roomTypeId
          in: path
          description: Room type resource ID
          required: true
          schema:
            type: string
      requestBody:
        description: JSON message describing the new rate plan
        content:
          application/vnd.expedia.eps.product-v2+json:
            schema:
              $ref: '#/components/schemas/RatePlanDTO'
        required: true
      responses:
        "201":
          description: Created
          content:
            application/vnd.expedia.eps.product-v2+json:
              schema:
                $ref: '#/components/schemas/ResponseWrapperDTO«RatePlanDTO»'
      security:
        - Basic: []
      x-codegen-request-body-name: ratePlanDTO
  /properties/{propertyId}/roomTypes/{roomTypeId}/ratePlans/{ratePlanId}:
    get:
      tags:
        - Rate Plan
      summary: Expedia Group Read a single rate plan
      operationId: getRatePlan
      parameters:
        - name: propertyId
          in: path
          description: Expedia Property ID
          required: true
          schema:
            type: string
        - name: roomTypeId
          in: path
          description: Room type resource ID
          required: true
          schema:
            type: string
        - name: ratePlanId
          in: path
          description: Rate plan resource ID
          required: true
          schema:
            type: string
      responses:
        "200":
          description: OK
          content:
            application/vnd.expedia.eps.product-v2+json:
              schema:
                $ref: '#/components/schemas/ResponseWrapperDTO«RatePlanDTO»'
      security:
        - Basic: []
    put:
      tags:
        - Rate Plan
      summary: Expedia Group Modify an existing rate plan
      operationId: updateRatePlan
      parameters:
        - name: propertyId
          in: path
          description: Expedia Property ID
          required: true
          schema:
            type: string
        - name: roomTypeId
          in: path
          description: Room type resource ID
          required: true
          schema:
            type: string
        - name: ratePlanId
          in: path
          description: Rate plan resource ID
          required: true
          schema:
            type: string
      requestBody:
        description: JSON message of modified rate plan
        content:
          application/vnd.expedia.eps.product-v2+json:
            schema:
              $ref: '#/components/schemas/RatePlanDTO'
        required: true
      responses:
        "200":
          description: OK
          content:
            application/vnd.expedia.eps.product-v2+json:
              schema:
                $ref: '#/components/schemas/ResponseWrapperDTO«RatePlanDTO»'
      security:
        - Basic: []
      x-codegen-request-body-name: ratePlan
    delete:
      tags:
        - Rate Plan
      summary: Expedia Group Delete an existing rate plan
      operationId: deleteRatePlan
      parameters:
        - name: propertyId
          in: path
          description: Expedia Property ID
          required: true
          schema:
            type: string
        - name: roomTypeId
          in: path
          description: Room type resource ID
          required: true
          schema:
            type: string
        - name: ratePlanId
          in: path
          description: Rate plan resource ID
          required: true
          schema:
            type: string
      responses:
        "204":
          description: No Content
          content: {}
      security:
        - Basic: []
    patch:
      tags:
        - Rate Plan
      summary: Expedia Group Patch an existing rate plan
      operationId: patchRatePlan
      parameters:
        - name: propertyId
          in: path
          description: Expedia Property ID
          required: true
          schema:
            type: string
        - name: roomTypeId
          in: path
          description: Room type resource ID
          required: true
          schema:
            type: string
        - name: ratePlanId
          in: path
          description: Rate plan resource ID
          required: true
          schema:
            type: string
      requestBody:
        description: JSON message of partially updated rate plan
        content:
          application/vnd.expedia.eps.product-v2+json:
            schema:
              type: string
        required: true
      responses:
        "200":
          description: OK
          content:
            application/vnd.expedia.eps.product-v2+json:
              schema:
                $ref: '#/components/schemas/ResponseWrapperDTO«RatePlanDTO»'
      security:
        - Basic: []
      x-codegen-request-body-name: ratePlan
  /properties/{propertyId}/roomTypes/{roomTypeId}/rateThresholds:
    get:
      tags:
        - Rate Verification Thresholds
      summary: Expedia Group Read a single room type's rate verification thresholds
      operationId: getRateVerificationThresholds
      parameters:
        - name: propertyId
          in: path
          description: Expedia Property ID
          required: true
          schema:
            type: string
        - name: roomTypeId
          in: path
          description: Room type resource ID. Integer
          required: true
          schema:
            type: string
      responses:
        "200":
          description: OK
          content:
            application/vnd.expedia.eps.product-v2+json:
              schema:
                $ref: '#/components/schemas/ResponseWrapperDTO«RateVerificationThresholdsDTO»'
      security:
        - Basic: []
components:
  schemas:
    ServiceFeesPerPersonDTO:
      required:
        - ageCategory
        - dateEnd
        - dateStart
        - isTaxable
      type: object
      properties:
        ageCategory:
          type: string
          description: The age category for the service fees
          enum:
            - Adult
            - ChildAgeA
            - ChildAgeB
            - ChildAgeC
            - ChildAgeD
            - Infant
        amountPerNight:
          type: number
          description: "Per night service charge. Min value 0.000, accepts up to 3 decimal points"
          format: double
        amountPerStay:
          type: number
          description: "Per stay service charge. Min value 0.000, accepts up to 3 decimal points"
          format: double
        dateEnd:
          type: string
          description: Date at which this amount will be not effective anymore.
          format: date
        dateStart:
          type: string
          description: "Date at which this fee started being applicable, can be in the past"
          format: date
        isTaxable:
          type: boolean
          description: "If the service fee is taxable. Values: true/false"
          example: false
    DistributionRuleDTO:
      required:
        - distributionModel
      type: object
      properties:
        compensation:
          $ref: '#/components/schemas/CompensationRuleDTO'
        distributionModel:
          type: string
          description: "Distribution model adopted by the rate plan, matching property configuration. ExpediaCollect: indicates that when customers book this rate plan, they will pay Expedia. HotelCollect: indicates that when customers book this rate plan, they will pay the property. Note: if a product can be sold as both ExpediaCollect and HotelCollect, there will be 2 distribution rules under the rate plan to indicate this"
          enum:
            - HotelCollect
            - ExpediaCollect
        expediaId:
          type: string
          description: "String, min 1, max 50 characters. Expedia rate plan ID that will be specified in booking messages and that should be used to manage avail/rates if this set of distribution rules is marked as manageable."
        manageable:
          type: boolean
          description: "Cannot be provided in a create request. Default to yes for HotelCollect-only or ExpediaCollect-only rate plans. For ExpediaTravelerPreference rate plans, if rate acquisition type is net, ExpediaCollect will default to true; if rate acquisition type is Sell/LAR, HotelCollect will default to true."
          readOnly: true
          example: false
        partnerCode:
          type: string
          description: "Unique partner identifier for the rate plan. For a given room type, this code has to be unique per distribution model (e.g. for all ExpediaCollect rate plan distribution rules under this room, this code has to be unique). Uniqueness will be validated by Expedia during create or update operations. Accepted characters are a-z, A-Z, 0-9, '.', '_' and '-'"
    RateVerificationThresholdsDTOLinks:
      type: object
      properties:
        self:
          $ref: '#/components/schemas/LinkDTO'
    ErrorDTO:
      type: object
      properties:
        code:
          type: integer
          format: int32
        message:
          type: string
    ApiError:
      type: object
      properties:
        code:
          type: integer
          format: int32
        message:
          type: string
    PeriodDTO:
      required:
        - dateEnd
        - dateStart
      type: object
      properties:
        dateEnd:
          type: string
          description: Ending date of the period. Format is YYYY-MM-DD.
          format: date
        dateStart:
          type: string
          description: Starting date of the period. Format is YYYY-MM-DD.
          format: date
    PropertyAddressDTO:
      type: object
      properties:
        city:
          type: string
          description: City in which the property is located
        countryCode:
          type: string
          description: "ISO 3166-1 Alpha 3 country code, for the country where the property is located"
        line1:
          type: string
          description: First line of address
        line2:
          type: string
          description: "Second line of address, not always available"
        postalCode:
          type: string
          description: "Postal or State Code, might not be available"
        state:
          type: string
          description: "State/Province, which is optional and thus might not be available"
    CancelPolicyExceptionDTO:
      required:
        - endDate
        - startDate
      type: object
      properties:
        endDate:
          type: string
          description: "Format: YYYY-MM-DD. Cancel penalty exception's end date"
          format: date
        penalties:
          type: array
          description: Definition of the exception penalties applied
          items:
            $ref: '#/components/schemas/PenaltyDTO'
        startDate:
          type: string
          description: "Format: YYYY-MM-DD. Cancel penalty exception's starting date"
          format: date
    RatePlanDTOLinks:
      type: object
      properties:
        depositPolicy:
          $ref: '#/components/schemas/LinkDTO'
        derivedRatePlans:
          type: array
          description: List of URLs that point to the derived Rate Plans. These Rate Plans have their rates and availability derived from this Rate Plan.
          items:
            $ref: '#/components/schemas/LinkDTO'
        parentRatePlan:
          $ref: '#/components/schemas/LinkDTO'
        self:
          $ref: '#/components/schemas/LinkDTO'
    AdditionalGuestAmountDTO:
      required:
        - ageCategory
      type: object
      properties:
        ageCategory:
          type: string
          description: The age category for the additional guests
          enum:
            - Adult
            - ChildAgeA
            - ChildAgeB
            - ChildAgeC
            - ChildAgeD
            - Infant
        amount:
          type: number
          description: "Min value 0.000, accepts up to 3 decimal points"
          format: double
        dateEnd:
          type: string
          description: "Date at which this amount will not be effective anymore. If no end date defined, will be returned as 2079-06-06."
          format: date
        dateStart:
          type: string
          description: "Date at which this amount started being applicable, can be in the past"
          format: date
        percent:
          type: number
          description: "Min value 0.0, Max value 1.0"
          format: double
    RateVerificationThresholdsDTO:
      type: object
      properties:
        _links:
          $ref: '#/components/schemas/RateVerificationThresholdsDTOLinks'
        maxAmount:
          type: number
          description: "Defines maximum acceptable rates. If the rate is higher than this maximum value, the AR rate update will be ignored and a warning will be returned."
          format: double
        minAmount:
          type: number
          description: "Defines minimum acceptable rates. If the rate is lower than this minimum value, the AR rate update will be ignored and a warning will be returned."
          format: double
        source:
          type: string
          description: "Defines how the minimum and maximum amounts were calculated. It is either RecentBookings (thresholds calculated using last 10 reservations, and applying multiplication and division factor to find maximum and minimum values) or Manual (manually defined by Expedia). RecentReservation is Expedia's default method."
          enum:
            - RecentBookings
            - ManualOverride
        type:
          type: string
          description: "Type of the rate verification thresholds. The only possible value is: SellLAR"
          enum:
            - NetRate
            - SellLAR
    CompensationRuleDTO:
      required:
        - minAmount
        - percent
      type: object
      properties:
        exceptions:
          type: array
          description: "Depending on the contractual agreement between Expedia and the partner, compensation can vary based on different criteria. This array of exceptions will reflect this"
          items:
            $ref: '#/components/schemas/CompensationExceptionRuleDTO'
        minAmount:
          type: number
          description: Minimum amount. Accepts up to 3 decimal points. Only applicable to ExpediaCollect distribution rules
          format: double
        percent:
          type: number
          description: "Compensation percentage applied by default. Expressed as a value. Between 0 and 1, accepts up to 4 decimal points"
          format: double
    RoomTypeAmenityDTO:
      required:
        - code
      type: object
      properties:
        code:
          type: string
          description: Uniquely identifies an amenity
        detailCode:
          type: string
          description: "Adds precision or qualifies the amenity. Mandatory for some amenity, optional for other and prohibited by the rest of the amenities."
        value:
          type: number
          description: "Number. Adds precision to the amenity. Mandatory for some amenity, optional for other and prohibited by the rest of the amenities."
    ServiceFeesPerStayDTO:
      required:
        - isTaxable
      type: object
      properties:
        amountPerNight:
          type: number
          description: "Per night service charge. Min value 0.000, accepts up to 3 decimal points"
          format: double
        amountPerStay:
          type: number
          description: "Per stay service charge. Min value 0.000, accepts up to 3 decimal points"
          format: double
        isTaxable:
          type: boolean
          description: "If the service fee is taxable. Values: true/false"
          example: false
        percent:
          type: number
          description: "Percentage of the base rate. Value between 0 and 1, accepts up to 4 decimal points"
          format: double
    ResponseWrapperDTO«List«RatePlanDTO»»:
      type: object
      properties:
        entity:
          type: array
          items:
            $ref: '#/components/schemas/RatePlanDTO'
        errors:
          type: array
          items:
            $ref: '#/components/schemas/ErrorDTO'
    ResponseWrapperDTO«List«PropertyDTO»»:
      type: object
      properties:
        entity:
          type: array
          items:
            $ref: '#/components/schemas/PropertyDTO'
        errors:
          type: array
          items:
            $ref: '#/components/schemas/ErrorDTO'
    RnsAttributesDTO:
      type: object
      properties:
        accessibility:
          type: boolean
          description: Attribute that determines if room is considered wheelchair accessible
          example: false
        area:
          type: string
          description: Attributed used to highlight the location of the room
        bedroomDetails:
          type: string
          description: Attribute that describes details of the bedroom used to compose the name of the room
        customLabel:
          type: string
          description: Free text that can be appended to the name generated by the attributes. Use of this attribute is discouraged (see full spec). Max 37 characters
        featuredAmenity:
          type: string
          description: Attribute used to highlight a feature of the room on its name
        includeBedType:
          type: boolean
          description: Attribute that determines whether or not to include bed type on the room name
          example: false
        includeSmokingPref:
          type: boolean
          description: Attribute that determines if room has smoking preference
          example: false
        roomClass:
          type: string
          description: "Attribute that described the class of room, which is used to compose the name"
        typeOfRoom:
          type: string
          description: "Attribute that determines the type of room, which is used to compose the name"
        view:
          type: string
          description: Attribute that gives additional information about the view of the room
    PenaltyDTO:
      type: object
      properties:
        amount:
          type: number
          description: "Min value 0.000 (3 decimal points). The amount provided here should be based on the property rate acquisition type. If the property rate acquisition type is Net, the rate provided here should be net of Expedia compensation. If it is SellLAR, the rate should be what the customer will be charged (inclusive of Expedia compensation). Used to define a flat amount that would be charged as a cancel or change penalty. This would normally replace a per-stay fee, but it can also be added on top of a per-stay fee if that is what the partner requires"
          format: double
        deadline:
          type: integer
          description: "Number of hours prior to the arrival of the guest. When set to 0, it means up until end of the day of arrival. Min 0, Max 32767"
          format: int32
        perStayFee:
          type: string
          description: Fee that will be charged if the customer cancels within the specified deadline.
          enum:
            - None
            - 1stNightRoomAndTax
            - 2NightsRoomAndTax
            - 10PercentCostOfStay
            - 20PercentCostOfStay
            - 30PercentCostOfStay
            - 40PercentCostOfStay
            - 50PercentCostOfStay
            - 60PercentCostOfStay
            - 70PercentCostOfStay
            - 80PercentCostOfStay
            - 90PercentCostOfStay
            - FullCostOfStay
    RatePlanDTO:
      required:
        - distributionRules
        - name
        - occupantsForBaseRate
      type: object
      properties:
        _links:
          $ref: '#/components/schemas/RatePlanDTOLinks'
        additionalGuestAmounts:
          type: array
          description: "Array of additional guest amounts. Up to 6 can be specified, 1 per category. Only 1 amount can be given per category, for all dates"
          items:
            $ref: '#/components/schemas/AdditionalGuestAmountDTO'
        bookDateEnd:
          type: string
          description: "Date at which this rate plan stops being available for searching on any Expedia POS. Format YYYY-MM-DD. If not restricted, will be returned as 2079-06-06. If in 2079, indicates this rate plan book end date is unrestricted"
          format: date
        bookDateStart:
          type: string
          description: "Date at which this rate plan starts being available for searching on any Expedia POS. If in the past, indicates rate plan book date start is not restricted. Accepted format: YYYY-MM-DD. If not restricted, will be returned as 1900-01-01"
          format: date
        cancelPolicy:
          $ref: '#/components/schemas/CancelPolicyDTO'
        creationDateTime:
          type: string
          description: Date at which the rate plan has been created. The date is formatted in the ISO 8601 format.
          format: date-time
          readOnly: true
        depositRequired:
          type: boolean
          description: Indicates if a deposit is required upon booking. This flag is only available for Rate Plan with business models HotelCollect or ExpediaTravelerPreference.
          example: false
        distributionRules:
          type: array
          description: "Used to provide information about how this rate plan can be sold (ExpediaCollect, HotelCollect or both)."
          items:
            $ref: '#/components/schemas/DistributionRuleDTO'
        lastUpdateDateTime:
          type: string
          description: Date of the last modifications to this rate plan. The date is formatted in the ISO 8601 format.
          format: date-time
          readOnly: true
        maxAdvBookDays:
          typ

# --- truncated at 32 KB (58 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/expedia-group/refs/heads/main/openapi/expedia-lodging-product-openapi-original.yml