openapi: 3.0.3 info: title: Ship Content API description: API for querying ship details. version: "1.0.0" contact: email: NRCruiseTeam@TUIGroup.onmicrosoft.com name: "Cruise NR API Support" x-header: | API for querying ship details. x-summary: | API for querying ship details. servers: - url: https://prod.api.tui/cruises/ship - url: https://pre-prod.api.tui/cruises/ship paths: /graphql: post: summary: Get ship data description: Ship Content API provides information about cabin types, boards, and deck plan. This graphQL endpoint can be used to execute queries to fetch the specific information related to ship. requestBody: required: true content: application/json: schema: type: object properties: query: type: string description: GraphQL query string for fetching ship details. example: "query MyQuery { getShip(code: 150103) { boardTypes { code title variants { composition { additionalInformation name type } } } cabins { bathroom { facts { key text } } bedroom { facts { key text } } cabinNumbers { deck { images { caption category order url } number } cabinNumber { number facts { key text } } } code general { facts { key text } occupancy { max } } images { caption category order url } name } code name decks { number } } }" responses: '200': description: Successful response content: application/json: schema: type: object properties: data: type: object properties: getShip: type: object properties: name: type: string code: type: string '400': description: Invalid request '500': description: Server error content: application/json: schema: type: object properties: data: type: object example: null errors: type: array items: type: object properties: path: type: string example: null locations: type: array items: type: object properties: line: type: string example: 3 column: type: string example: 5 sourceName: type: string example: null message: type: string example: "error message" components: schemas: Ship: type: object properties: code: type: string name: type: string boardTypes: type: array items: type: object properties: code: type: string title: type: string variants: type: array items: type: object properties: composition: type: object properties: additionalInformation: type: string name: type: string type: type: string cabins: type: array items: type: object properties: code: type: string bathroom: type: object properties: facts: type: array items: type: object properties: key: type: string text: type: string bedroom: type: object properties: facts: type: array items: type: object properties: key: type: string text: type: string cabinNumbers: type: array items: type: object properties: cabinNumber: type: array items: type: object properties: number: type: integer facts: type: array items: type: object properties: key: type: string text: type: string deck: type: object properties: number: type: string images: type: array items: type: object properties: caption: type: string category: type: string url: type: string order: type: integer general: type: object properties: occupancy: type: object properties: max: type: integer facts: type: array items: type: object properties: key: type: string text: type: string images: type: array items: type: object properties: caption: type: string category: type: string order: type: integer url: type: string name: type: string decks: type: array items: type: object properties: number: type: string images: type: array items: type: object properties: caption: type: string order: type: integer url: type: string category: type: string