TUI Group Cruise Cabin availability API

The Cruise Cabin availability API from TUI Group — 1 operation(s) for cruise cabin availability.

Operations 1

POST /v2/cruises/cabinsavailability API to get available cabins #

Documentation

📖
Documentation
https://developer.tui/api-catalog/newskies-digital-api/api-description
📖
Documentation
https://developer.tui/api-catalog/newskies-digital-api/get-started
📖
Documentation
https://developer.tui/api-catalog/newskies-digital-api/simple-workflow
📖
Documentation
https://developer.tui/api-catalog/newskies-digital-api/advanced-workflow
📖
Documentation
https://developer.tui/api-catalog/newskies-digital-api/creditcard-payments
📖
Documentation
https://developer.tui/api-catalog/newskies-digital-api/backwards-compatibility
📖
Documentation
https://developer.tui/api-catalog/newskies-gonow-api/api-description
📖
Documentation
https://developer.tui/api-catalog/newskies-gonow-api/get-started
📖
Documentation
https://developer.tui/api-catalog/newskies-gonow-api/check-workflow
📖
Documentation
https://developer.tui/api-catalog/newskies-gonow-api/backwards-compatibility
📖
Documentation
https://developer.tui/api-catalog/newskies-payment-api/api-description
📖
Documentation
https://developer.tui/api-catalog/newskies-payment-api/booking-flow
📖
Documentation
https://developer.tui/api-catalog/nskcc-availability-search-api/description
📖
Documentation
https://developer.tui/api-catalog/nskcc-availability-search-api/api-details
📖
Documentation
https://developer.tui/api-catalog/nskcc-availability-search-api/technical-integration
📖
Documentation
https://developer.tui/api-catalog/nskcc-availability-search-api/code-examples
📖
Documentation
https://developer.tui/api-catalog/nskcc-availability-search-api/api-onepager
📖
Documentation
https://developer.tui/api-catalog/tui-newskies-pricefile-api/description
📖
Documentation
https://developer.tui/api-catalog/tui-newskies-pricefile-api/technical-integration
📖
Documentation
https://developer.tui/api-catalog/tui-newskies-pricefile-api/data-format
📖
Documentation
https://developer.tui/api-catalog/checkinhandler-service-api/api-description
📖
Documentation
https://developer.tui/api-catalog/checkinhandler-service-api/api-details
📖
Documentation
https://developer.tui/api-catalog/checkinhandler-service-api/technical-integration
📖
Documentation
https://developer.tui/api-catalog/tui-flight-ota-api/api-description
📖
Documentation
https://developer.tui/api-catalog/ota-content-api/api-description
📖
Documentation
https://developer.tui/api-catalog/ota-content-api/technical-details
📖
Documentation
https://developer.tui/api-catalog/ota-content-api/release-notes
📖
Documentation
https://developer.tui/api-catalog/walldy-api/api-description
📖
Documentation
https://developer.tui/api-catalog/walldy-api/api-details
📖
Documentation
https://developer.tui/api-catalog/walldy-api/technical-integration
📖
Documentation
https://developer.tui/api-catalog/walldy-api/api-onepager
📖
Documentation
https://developer.tui/api-catalog/walldy-api/release-notes
📖
Documentation
https://developer.tui/api-catalog/holidayofferscontroller-api/api-description
📖
Documentation
https://developer.tui/api-catalog/holidayofferscontroller-api/technical-integration
📖
Documentation
https://developer.tui/api-catalog/holidayofferscontroller-api/release-notes
📖
Documentation
https://developer.tui/api-catalog/meta-search-generic-api/api-description
📖
Documentation
https://developer.tui/api-catalog/partner-content-api/api-description
📖
Documentation
https://developer.tui/api-catalog/ship-content-api/api-description

Specifications

Other Resources

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/tui-group-cruise-cabin-availability-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

tui-group-cruise-cabin-availability-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Cruise Cabin availability API
  description: Cruise cabin availability API to get available cabins for a given itinerary, duration, cabin type, occupancy and board.
  version: '1.0'
  contact:
    email: NRCruiseTeam@TUIGroup.onmicrosoft.com
    name: Cruise NR API Support
  x-header: 'This APIs returns physical cabins on a cruise for given search criteria.

    '
  x-summary: 'This API returns physical cabins on a cruise that is specific to the search criteria.

    '
servers:
- url: https://prod.api.tui/v2/cruises/cabinsavailability
- url: https://pre-prod.api.tui/v2/cruises/cabinsavailability
tags:
- name: Cruise Cabin availability
paths:
  /v2/cruises/cabinsavailability:
    post:
      tags:
      - Cruise Cabin availability
      summary: API to get available cabins
      description: This API gives a list of available physical cabins and price for the given selection and occupancy.
      operationId: getCabinSelection
      parameters:
      - name: x-Correlation-Id
        in: header
        required: true
        description: Unique identifier for tracing requests (UUID format)
        schema:
          type: string
          format: uuid
          pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$
      - name: apiVersion
        description: Indicates the target version of the resource
        in: path
        required: true
        schema:
          type: string
          pattern: ^v([0-9]+)([.])([0-9]+)$
          example: v1.0
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CabinAvailabilityRequest'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CabinAvailabilityResponse'
            application/problem+json:
              schema:
                $ref: '#/components/schemas/CabinAvailabilityResponse'
        '400':
          description: Bad request
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ValidationProblem'
        '401':
          description: Not authorised
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CabinAvailabilityResponse'
            application/problem+json:
              schema:
                $ref: '#/components/schemas/CabinAvailabilityResponse'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CabinAvailabilityResponse'
            application/problem+json:
              schema:
                $ref: '#/components/schemas/CabinAvailabilityResponse'
        '500':
          description: Internal server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
        '502':
          description: One or more backend systems not available
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
components:
  schemas:
    CruiseItinerary:
      required:
      - code
      type: object
      properties:
        code:
          type: string
          example: DIS2
        name:
          type: string
          example: Treasures of the Mediterranean
        itineraryGroup:
          $ref: '#/components/schemas/CruiseItineraryGroup'
        days:
          type: array
          items:
            $ref: '#/components/schemas/CruiseItineraryDay'
    MetaInformation:
      required:
      - agentId
      - brand
      - businessRelationship
      - channel
      - currency
      - decoratedContent
      - locale
      - market
      type: object
      properties:
        locale:
          pattern: \w{2}\_\w{2}
          type: string
          example: nl_BE
        market:
          type: string
          example: BE
          enum:
          - NL
          - BE
          - FR
          - MA
          - UK
          - IE
          - DE
          - PL
          - CH
          - AT
          - SE
          - 'NO'
          - DK
          - FI
        brand:
          type: string
          example: TUI
          enum:
          - TUI
          - TUIFLY
          - VIP
          - FIRST_CHOICE
          - CRYSTAL_SKI
          - MARELLA_CRUISE
          - RIVER_CRUISE
        channel:
          type: string
          example: WEB
          enum:
          - WEB
          - PARTNERS
          - MOBILE
        businessRelationship:
          type: string
          example: B2C
          enum:
          - B2B
          - B2C
        decoratedContent:
          type: boolean
          description: If this flag is set to true, the response will contain SSR descriptions with the requested local. The default behavior is decoratedContent=false
          example: false
        currency:
          $ref: '#/components/schemas/Currency'
        agentId:
          type: string
    Person:
      required:
      - dateOfBirth
      - firstName
      - gender
      - lastName
      - nationality
      type: object
      properties:
        dateOfBirth:
          type: string
          format: date
        firstName:
          maxLength: 40
          minLength: 2
          type: string
        middleName:
          maxLength: 40
          minLength: 2
          type: string
        lastName:
          maxLength: 40
          minLength: 2
          type: string
        reference:
          type: string
        gender:
          type: string
          enum:
          - MALE
          - FEMALE
          - NUETRAL
        nationality:
          type: string
          example: BE
        vip:
          type: boolean
        lead:
          type: boolean
        infantNotBorn:
          type: boolean
          example: false
        type:
          type: string
          enum:
          - NORMAL
          - JUDICIAL
          - STAFF
          - EMERGENCY
        contactPoints:
          type: array
          items:
            $ref: '#/components/schemas/ContactPoint'
        address:
          $ref: '#/components/schemas/Address'
        phoneNumber:
          $ref: '#/components/schemas/PhoneNumber'
        email:
          type: string
        marketingPreferences:
          type: array
          items:
            type: string
            enum:
            - EMAIL
            - TEXT_MESSAGE
            - TELEPHONE
            - POST
    Ship:
      required:
      - code
      type: object
      properties:
        code:
          type: string
          example: DIS2
        name:
          type: string
          example: Discovery 2
        cruiseLine:
          type: string
          example: TUI Cruise line
    PriceDetail:
      required:
      - breakdown
      - total
      type: object
      properties:
        breakdown:
          $ref: '#/components/schemas/PriceBreakdown'
        total:
          type: array
          items:
            $ref: '#/components/schemas/Price'
    ContactPoint:
      required:
      - category
      - contactPointId
      - contactType
      - priority
      type: object
      properties:
        contactPointId:
          type: string
        priority:
          type: string
          enum:
          - Emergency
          - First
          - Second
          - Third
        category:
          type: string
          enum:
          - Personal
          - Business
        contactType:
          type: string
          enum:
          - PHONE
          - EMAIL
          - ADDRESS
      discriminator:
        propertyName: contactType
    Item:
      required:
      - id
      - itemType
      type: object
      properties:
        id:
          type: string
          description: Item id.
        itemType:
          type: string
          enum:
          - FLIGHT
          - OPTIONS
          - STAY
          - TRANSFER
          - INSURANCE
          - EXTRAS
      description: Details of the product associated with the assignment.
      example: 1
    CabinAvailabilityRequest:
      required:
      - metaInformation
      - cruise
      type: object
      properties:
        metaInformation:
          $ref: '#/components/schemas/MetaInformation'
        cruise:
          $ref: '#/components/schemas/Cruise'
        flights:
          type: array
          description: Flights are mandatory for cruise and flight bookings.
          items:
            $ref: '#/components/schemas/Flight'
        inventory:
          $ref: '#/components/schemas/CabinPackageInventory'
    Flight:
      required:
      - directions
      - id
      - prices
      type: object
      properties:
        id:
          type: string
        directions:
          maxItems: 2
          minItems: 1
          type: array
          items:
            $ref: '#/components/schemas/FlightDirection'
        prices:
          $ref: '#/components/schemas/PriceDetail'
    CruiseItineraryGroup:
      required:
      - code
      - name
      type: object
      properties:
        code:
          type: string
          example: '123'
        name:
          type: string
          example: Group name
    FlightSegment:
      required:
      - arrivalDate
      - arrivalPoint
      - arrivalTime
      - capacityGroups
      - departureDate
      - departurePoint
      - departureTime
      - duration
      - flightNo
      - id
      - marketingCarrier
      - operatingCarrier
      - sectors
      - specialServiceRequests
      type: object
      properties:
        departureDate:
          type: string
          format: date
          example: '2024-03-28'
        departureTime:
          $ref: '#/components/schemas/LocalTime'
        arrivalDate:
          type: string
          format: date
          example: '2024-03-29'
        arrivalTime:
          $ref: '#/components/schemas/LocalTime'
        id:
          type: string
        operatingCarrier:
          maxLength: 3
          minLength: 2
          type: string
          example: TU
        marketingCarrier:
          maxLength: 3
          minLength: 2
          type: string
          example: TU
        flightNo:
          pattern: \d{1,4}
          type: string
          description: if value will come with spaces it will be trimmed, e.g. " 111"->"111"
        departurePoint:
          $ref: '#/components/schemas/Point'
        arrivalPoint:
          $ref: '#/components/schemas/Point'
        duration:
          type: integer
          description: Duration in minutes
          format: int32
          example: 123
        sectors:
          type: array
          items:
            $ref: '#/components/schemas/Sector'
        specialServiceRequests:
          type: array
          items:
            oneOf:
            - $ref: '#/components/schemas/BaseOption'
            - $ref: '#/components/schemas/BaggageOption'
            - $ref: '#/components/schemas/SeatsOption'
        capacityGroups:
          type: array
          items:
            $ref: '#/components/schemas/CapacityGroup'
        cabinClass:
          type: string
          example: M
        bookingClass:
          type: string
          example: M
        sourcingSystem:
          type: string
          example: MULTICOM
    FlightDirection:
      required:
      - id
      - prices
      - segments
      - travellers
      - type
      type: object
      properties:
        duration:
          type: integer
          description: duration in minutes
          format: int32
          example: 123
        id:
          type: string
        type:
          type: string
          enum:
          - OUTBOUND
          - INBOUND
        travellers:
          type: array
          items:
            $ref: '#/components/schemas/Traveller'
        segments:
          type: array
          items:
            $ref: '#/components/schemas/FlightSegment'
        downstreamRefs:
          type: array
          items:
            $ref: '#/components/schemas/DownstreamRef'
        prices:
          $ref: '#/components/schemas/PriceDetail'
    ShoreExcursion:
      required:
      - code
      - id
      - travellers
      type: object
      properties:
        id:
          type: string
        code:
          type: string
          example: Treasures of the Mediterranean
        name:
          type: string
          example: Ride to mountain
        portVisit:
          $ref: '#/components/schemas/PortVisit'
        travellers:
          maxItems: 2147483647
          minItems: 1
          type: array
          items:
            $ref: '#/components/schemas/TravellerRef'
        prices:
          maxItems: 2147483647
          minItems: 1
          type: array
          items:
            $ref: '#/components/schemas/Price'
    Point:
      required:
      - codes
      - name
      - type
      type: object
      properties:
        codes:
          type: array
          items:
            $ref: '#/components/schemas/PointCode'
        name:
          type: string
          example: London Heathrow
        type:
          type: string
          enum:
          - HOTEL
          - AIRPORT
          - PORT
          - POI
          - RESORT
          - CITY
          - DESTINATION
          - REGION
          - COUNTRY
          - CONTINENT
    CabinPackageInventory:
      type: object
      description: Package inventory information for cabin availability requests. Contains supplier product details including promotional codes that can override system-configured promotional codes.
      required:
      - supplierProduct
      properties:
        supplierProduct:
          $ref: '#/components/schemas/CabinSupplierProduct'
    LocalTime:
      type: object
      properties:
        hour:
          type: integer
          format: int32
        minute:
          type: integer
          format: int32
        second:
          type: integer
          format: int32
        nano:
          type: integer
          format: int32
      example: '11:00:00'
    ServiceBundle:
      required:
      - code
      - id
      type: object
      properties:
        id:
          type: string
        code:
          type: string
          example: GALA_DINNER
        excursions:
          type: array
          items:
            $ref: '#/components/schemas/ShoreExcursion'
        events:
          type: array
          items:
            $ref: '#/components/schemas/Event'
        travellers:
          type: array
          items:
            $ref: '#/components/schemas/TravellerRef'
        prices:
          maxItems: 2147483647
          minItems: 1
          type: array
          items:
            $ref: '#/components/schemas/Price'
    Cruise:
      required:
      - id
      - sailings
      - travellers
      type: object
      properties:
        id:
          type: string
        sailings:
          maxItems: 2147483647
          minItems: 1
          type: array
          items:
            $ref: '#/components/schemas/Sailing'
        travellers:
          maxItems: 2147483647
          minItems: 1
          type: array
          items:
            $ref: '#/components/schemas/TravellerRef'
        prices:
          $ref: '#/components/schemas/PriceDetail'
    Supplement:
      required:
      - code
      - prices
      type: object
      properties:
        code:
          type: string
          example: GPS
        name:
          type: string
          example: GPS indicator
        included:
          type: boolean
          example: true
        mandatory:
          type: boolean
          example: true
        travellers:
          maxItems: 2147483647
          minItems: 1
          type: array
          items:
            $ref: '#/components/schemas/TravellerRef'
        prices:
          $ref: '#/components/schemas/PriceDetail'
    CruiseItineraryDay:
      required:
      - dayNo
      type: object
      properties:
        code:
          type: string
          example: DAY1_DESC
        dayNo:
          type: integer
          format: int32
          example: 1
        portVisits:
          type: array
          items:
            $ref: '#/components/schemas/PortVisit'
    Assignment:
      required:
      - item
      type: object
      properties:
        travellerId:
          type: string
          example: adt1
        item:
          $ref: '#/components/schemas/Item'
      description: An assignment object that includes details about the traveller and product related to the message.
    Cabin:
      required:
      - cabinNo
      - cabinType
      type: object
      properties:
        deck:
          type: string
          example: '1'
        cabinNo:
          type: string
          example: '10002'
        cabinType:
          $ref: '#/components/schemas/CabinType'
        travellers:
          type: array
          items:
            $ref: '#/components/schemas/TravellerRef'
        prices:
          $ref: '#/components/schemas/PriceDetail'
    PhoneNumber:
      required:
      - countryCode
      - countryISOCode
      - number
      type: object
      properties:
        countryCode:
          type: string
          example: '+32'
        number:
          type: string
          example: '50334002'
        countryISOCode:
          type: string
          description: in case of NR this field is not taken into account and skipped
          example: BE
    Currency:
      required:
      - currencyCode
      type: object
      properties:
        currencyCode:
          maxLength: 3
          minLength: 3
          type: string
    Event:
      required:
      - code
      - id
      - travellers
      type: object
      properties:
        id:
          type: string
        code:
          type: string
          example: GALA_DINNER
        name:
          type: string
          example: Gala Dinner
        itineraryDay:
          type: integer
          format: int32
        travellers:
          maxItems: 2147483647
          minItems: 1
          type: array
          items:
            $ref: '#/components/schemas/TravellerRef'
        prices:
          maxItems: 2147483647
          minItems: 1
          type: array
          items:
            $ref: '#/components/schemas/Price'
    PointCode:
      required:
      - code
      - type
      type: object
      properties:
        code:
          type: string
          example: LHR
        type:
          type: string
          example: IATA
    CabinBoardRate:
      required:
      - boardType
      - cabinType
      - sequenceNumber
      - travellers
      type: object
      properties:
        sequenceNumber:
          type: string
          example: '1'
        cabinType:
          $ref: '#/components/schemas/CabinType'
        boardType:
          type: string
          enum:
          - A24
          - AB
          - AI
          - AI+
          - BB
          - CB
          - FB
          - FB+
          - HB
          - HB+
          - IT
          - PI
          - RO
          - SC
          - SC+
          - SSC
          - GT06-AI
        rateCode:
          type: string
          example: TUI
        travellers:
          maxItems: 2147483647
          minItems: 1
          type: array
          items:
            $ref: '#/components/schemas/TravellerRef'
        prices:
          $ref: '#/components/schemas/PriceDetail'
        cabins:
          type: array
          items:
            $ref: '#/components/schemas/Cabin'
    BaggageOption:
      required:
      - category
      - code
      - downstreamRefs
      - id
      - maxWeight
      - travellers
      type: object
      allOf:
      - $ref: '#/components/schemas/BaseOption'
      - type: object
        properties:
          minWeight:
            type: string
            description: Minimum weight required for baggage.
            example: '0'
          maxWeight:
            type: string
            description: Maximum weight allowed for baggage.
            example: '20'
    SeatsOption:
      required:
      - category
      - code
      - downstreamRefs
      - id
      - travellers
      type: object
      allOf:
      - $ref: '#/components/schemas/BaseOption'
      - type: object
        properties:
          seatColumn:
            type: string
            description: Seat Column number.
            example: '1'
          seatRow:
            type: string
            description: Seat Row number.
            example: '7'
    PortVisit:
      required:
      - port
      type: object
      properties:
        port:
          $ref: '#/components/schemas/Point'
        portInTime:
          $ref: '#/components/schemas/LocalTime'
        portOutTime:
          $ref: '#/components/schemas/LocalTime'
    Address:
      required:
      - city
      - countryIsoCode
      - houseNumber
      - postcode
      - streetName
      type: object
      properties:
        houseNumber:
          type: string
        streetName:
          type: string
        addressLine2:
          type: string
          description: For UK - optional. FlightOnly (WR) - not presented.
        city:
          type: string
        postcode:
          type: string
        countryIsoCode:
          type: string
        buildingName:
          type: string
          description: Packages (NR) - not presented. FlightOnly (WR) - optional.
    ParseState:
      type: object
    Theme:
      required:
      - code
      type: object
      properties:
        code:
          type: string
          example: FOODIE
        name:
          type: string
          example: Food Heroes
    Price:
      required:
      - currency
      - priceCategory
      - value
      type: object
      properties:
        code:
          type: string
          example: POPM
        priceType:
          type: string
          example: PER_ADULT
          enum:
          - PER_ADULT
          - PER_CHILD
          - PER_INFANT
          - PER_PAX
          - PER_BOOKING
          - PER_ITEM
        priceCategory:
          type: string
          example: NET
          enum:
          - NET
          - TAX
          - FEE
          - DISCOUNT
          - GROSS
        aspect:
          type: string
          example: FLIGHT
          enum:
          - FLIGHT
          - SSR
          - INSURANCE
          - EXTRAS
          - TRANSFER
        value:
          type: number
          example: 100
          default: 0
        currency:
          $ref: '#/components/schemas/Currency'
        travellers:
          type: array
          items:
            $ref: '#/components/schemas/Traveller'
    Problem:
      type: object
      properties:
        message:
          type: string
        location:
          $ref: '#/components/schemas/Location'
        parseState:
          $ref: '#/components/schemas/ParseState'
        rootCause:
          type: object
          properties:
            cause:
              type: object
              properties:
                stackTrace:
                  type: array
                  items:
                    type: object
                    properties:
                      classLoaderName:
                        type: string
                      moduleName:
                        type: string
                      moduleVersion:
                        type: string
                      methodName:
                        type: string
                      fileName:
                        type: string
                      lineNumber:
                        type: integer
                        format: int32
                      nativeMethod:
                        type: boolean
                      className:
                        type: string
                message:
                  type: string
                suppressed:
                  type: array
                  items:
                    type: object
                    properties:
                      stackTrace:
                        type: array
                        items:
                          type: object
                          properties:
                            classLoaderName:
                              type: string
                            moduleName:
                              type: string
                            moduleVersion:
                              type: string
                            methodName:
                              type: string
                            fileName:
                              type: string
                            lineNumber:
                              type: integer
                              format: int32
                            nativeMethod:
                              type: boolean
                            className:
                              type: string
                      message:
                        type: string
                      localizedMessage:
                        type: string
                localizedMessage:
                  type: string
            stackTrace:
              type: array
              items:
                type: object
                properties:
                  classLoaderName:
                    type: string
                  moduleName:
                    type: string
                  moduleVersion:
                    type: string
                  methodName:
                    type: string
                  fileName:
                    type: string
                  lineNumber:
                    type: integer
                    format: int32
                  nativeMethod:
                    type: boolean
                  className:
                    type: string
            message:
              type: string
            suppressed:
              type: array
              items:
                type: object
                properties:
                  stackTrace:
                    type: array
                    items:
                      type: object
                      properties:
                        classLoaderName:
                          type: string
                        moduleName:
                          type: string
                        moduleVersion:
                          type: string
                        methodName:
                          type: string
                        fileName:
                          type: string
                        lineNumber:
                          type: integer
                          format: int32
                        nativeMethod:
                          type: boolean
                        className:
                          type: string
                  message:
                    type: string
                  localizedMessage:
                    type: string
            localizedMessage:
              type: string
        resourceDescription:
          type: string
    CabinSupplierProduct:
      type: object
      description: Supplier product information for cabin availability requests. Contains only the promo code field as other supplier product details are not required for cabin availability.
      properties:
        promoCode:
          type: string
          example: BBRB
          description: Optional promotional code to be applied to the cabin booking
    Location:
      type: object
      properties:
        resource:
          type: string
          format: binary
        source:
          type: object
    BaseOption:
      required:
      - category
      - code
      - downstreamRefs
      - id
      - travellers
      type: object
      properties:
        id:
          type: string
          example: 26929514-237c-11ed-861d-0242bd120002
        code:
          maxLength: 25
          minLength: 1
          type: string
          example: POPM
        category:
          type: string
          example: CABINS
          enum:
          - ANIMALS
          - ASSISTANCE
          - BAGGAGE
          - CABINS
          - FAST
          - LOUNGE
          - MEALS
          - MISC
          - SEATS
          - SPORTS
        included:
          type: boolean
          description: indicates if SSR is default one
          example: true
        upgradable:
          type: boolean
          description: indicates it replaces included or upgraded option
          example: false
        travellers:
          maxItems: 2147483647
          minItems: 1
          type: array
          items:
            $ref: '#/components/schemas/Traveller'
        prices:
          type: array
          items:
            $ref: '#/components/schemas/Price'
        downstreamRefs:
          maxItems: 2147483647
          minItems: 1
          type: array
          items:
            $ref: '#/components/schemas/DownstreamRef'
      discriminator:
        propertyName: category
    Duration:
      required:
      - checkInDate
      - checkOutDate
      type: object
      properties:
        checkInDate:
          type: string
          format: date
          example: '2023-06-07'
        checkInTime:
          $ref: '#/components/schemas/LocalTime'
        checkOutDate:
          type: string
          format: date
          example: '2023-06-14'
        checkOutTime:
          $ref: '#/components/schemas/LocalTime'
    Sailing:
      required:
      - cabinBoardRates
      - duration
      - itinerary
      - ship
      type: object
      properties:
        id:
          type: string
        ship:
          $ref: '#/components/schemas/Ship'
        itinerary:
          $ref: '#/components/schemas/CruiseItinerary'
        cabinBoardRates:
          type: array
          items:
            $ref: '#/components/schemas/CabinBoardRate'
        duration:
          $ref: '#/components/schemas/Duration'
        theme:
          $ref: '#/components/schemas/Theme'
        serviceBundles:
          type: array
          items:
            $ref: '#/components/schemas/ServiceBundle'
        excursions:
          type: array
          items:
            $ref: '#/components/schemas/ShoreExcursion'
        events:
          type: array
          items:
            $ref: '#/components/schemas/Event'
        supplements:
          type: array
          items:
            $ref: '#/components/schemas/Supplement'
    PriceBreakdown:
      type: object
      properties:
        fare:
          type: array
          items:
            $ref: '#/components/schemas/Price'
        tax:
          type: array
          items:
            $ref: '#/components/schemas/Price'
        discount:
          type: array
          items:
            $ref: '#/components/schemas/Price'
        fee:
          type: array
          items:
            $ref: '#/components/schemas/Price'
        total:
          type: array
          items:
            $ref: '#/components/schemas/Price'
    CapacityGroup:
      required:
      - code
      - ssrAssociations
      - type
      type: object
      properties:
        code:
          maxLength: 5
          minLength: 1
          type: string
          description: Capacity group code configured within the application
          example: SPEQ
        type:
          type: string
          example: SHARED
          enum:
          - UNLIMITED
          - INDIVIDUAL
          - SHARED
        sharedCapacity:
          type: integer
          description: Value provided by downstream options provider system that identifies total capacity for whole group.
          format: int32
          example: 10
        ssrAssociations:
          type: array
          items:
            $ref: '#/components/schemas/CapacityAssociation'
    Message:
      required:
      - code
      - text
      - type
      type: object
      properties:
        type:
          type: string
          example: GENERAL
          enum:
          - GENERAL
          - PRICE_JUMP
        text:
          type: string
          description: The detailed text of the message.
        code:
          type: string
          description: Message code that identifies what particular use case this message is about.
          example: OPTIONS-123456
        assignments:
          maxItems: 2147483647
          minItems: 1
          type: array
          description: A list of assignments related to the message (particular traveller or product).
          items:
            $ref: '#/components/schemas/Assignment'
      description: A message object that contains extra information about endpoint execution for 200 responses.
      discriminator:
 

# --- truncated at 32 KB (35 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/tui-group/refs/heads/main/openapi/tui-group-cruise-cabin-availability-api-openapi.yml