{
  "openapi": "3.1.0",
  "info": {
    "title": "Webhook Events",
    "version": "v2"
  },
  "servers": [
    {
      "url": "https://api-ext-sboxmeta.partners.spotnana.com",
      "description": "Sandbox URL"
    }
  ],
  "security": [
    {
      "Bearer": []
    }
  ],
  "components": {
    "securitySchemes": {
      "Bearer": {
        "type": "http",
        "scheme": "bearer"
      }
    },
    "schemas": {
      "AdditionalFareAmount": {
        "type": "object",
        "title": "AdditionalFareAmount",
        "description": "Additional fare amounts like flight pass additional amount, change penalty etc.",
        "required": [
          "type",
          "fareAmount"
        ],
        "properties": {
          "type": {
            "type": "string",
            "description": "Type of additional fare amount",
            "enum": [
              "TYPE_UNKNOWN",
              "FLIGHT_PASS_AMOUNT",
              "CHANGE_FEE",
              "CANCELLATION_FEE",
              "PENALTY",
              "AIRLINE_FEE",
              "SEAT",
              "BAGGAGE"
            ],
            "example": "FLIGHT_PASS_AMOUNT",
            "x-enumDeprecated": {
              "TYPE_UNKNOWN": {
                "deprecated": true,
                "sunset": "2025-12-12"
              }
            }
          },
          "fareAmount": {
            "description": "Fare amount for this type",
            "$ref": "#/components/schemas/FareAmount"
          },
          "isIncludedInFareAmount": {
            "type": "boolean",
            "description": "Whether this additional fare amount is included in the ticket fare or not",
            "example": false
          }
        }
      },
      "AdditionalInfo": {
        "type": "object",
        "title": "AdditionalInfo",
        "description": "Additional data need to be sent along with the custom field response.",
        "discriminator": {
          "propertyName": "type",
          "mapping": {
            "VARIABLE": "#/components/schemas/Variable",
            "EXPRESSION": "#/components/schemas/Expression"
          }
        },
        "oneOf": [
          {
            "$ref": "#/components/schemas/Variable"
          },
          {
            "$ref": "#/components/schemas/Expression"
          }
        ]
      },
      "AdhocTravelerInfo": {
        "title": "AdhocTravelerInfo",
        "type": "object",
        "description": "Describes an adhoc traveler.",
        "properties": {
          "registrarUserId": {
            "description": "The registrar of the adhoc traveler.",
            "$ref": "#/components/schemas/UserId"
          },
          "externalId": {
            "type": "string",
            "description": "External Id of user",
            "example": "qwert123"
          }
        }
      },
      "AdhocTravelerInfoWrapper": {
        "title": "AdhocTravelerInfoWrapper",
        "description": "Wrapper over AdhocTravelerInfo object to be used as an identifier in a oneOf case.",
        "properties": {
          "adhocTravelerInfo": {
            "$ref": "#/components/schemas/AdhocTravelerInfo"
          }
        }
      },
      "AdhocUserInfo": {
        "type": "object",
        "title": "AdhocUserInfo",
        "description": "Basic information related to ad-hoc traveler profile.",
        "required": [
          "profileOwner"
        ],
        "properties": {
          "profileOwner": {
            "$ref": "#/components/schemas/ProfileOwner"
          },
          "isSaved": {
            "type": "boolean",
            "description": "A boolean flag to show if ad-hoc traveler is visible in search. While updating the user \nif client tries to update this field, it will throw exception.\n",
            "default": false
          }
        }
      },
      "Agent": {
        "type": "object",
        "title": "Agent",
        "description": "Agent details.",
        "required": [
          "userBasicInfo"
        ],
        "properties": {
          "role": {
            "description": "Role of user in the organization",
            "type": "string",
            "example": "SYSTEM_ADMIN"
          },
          "title": {
            "description": "Designation of user in the organization",
            "type": "string",
            "example": "Human Resources"
          },
          "office": {
            "description": "Office name where user is working",
            "type": "string",
            "example": "London or New York"
          },
          "userBasicInfo": {
            "$ref": "#/components/schemas/UserBasicInfo"
          },
          "assignedGroups": {
            "type": "array",
            "description": "Information about all the groups agent is assigned to.",
            "items": {
              "$ref": "#/components/schemas/AgentGroupBasicInfo"
            }
          },
          "assignedTasks": {
            "type": "array",
            "description": "Information about all the tasks assigned to the agent.",
            "items": {
              "$ref": "#/components/schemas/AgentTaskBasicInfo"
            }
          },
          "availabilityStatus": {
            "$ref": "#/components/schemas/AgentAvailabilityStatus"
          }
        }
      },
      "AgentAssistedTransactionFeeInfo": {
        "title": "Agent Assisted Transaction Fee Info",
        "type": "object",
        "description": "Transaction Fees when Agent is booking for Traveler.",
        "required": [
          "agentFeeType"
        ],
        "properties": {
          "agentFeeType": {
            "type": "string",
            "example": "AGENT_ASSISTED_TRANSACTION_FEE"
          },
          "transactionFeeType": {
            "$ref": "#/components/schemas/ServiceFeeTransactionType"
          },
          "calculatedAmount": {
            "$ref": "#/components/schemas/Money"
          },
          "chargeProcessorInfo": {
            "$ref": "#/components/schemas/ChargeProcessorInfo"
          }
        }
      },
      "AgentAssistedTripFeeInfo": {
        "title": "Agent Assisted Trip Fee Info",
        "type": "object",
        "description": "Trip Fees when Agent is booking for Traveler.",
        "required": [
          "agentFeeType"
        ],
        "properties": {
          "agentFeeType": {
            "type": "string",
            "example": "AGENT_ASSISTED_TRIP_FEE"
          },
          "calculatedAmount": {
            "$ref": "#/components/schemas/Money"
          },
          "chargeProcessorInfo": {
            "$ref": "#/components/schemas/ChargeProcessorInfo"
          }
        }
      },
      "AgentAvailabilityStatus": {
        "type": "string",
        "description": "Availability status of agent.",
        "enum": [
          "UNKNOWN_AVAILABILITY_STATUS",
          "AVAILABLE",
          "OFFLINE",
          "ON_BREAK"
        ],
        "default": "AVAILABLE"
      },
      "AgentBasicInfo": {
        "type": "object",
        "title": "AgentBasicInfo",
        "description": "Agent Basic information details.",
        "required": [
          "userBasicInfo"
        ],
        "properties": {
          "userBasicInfo": {
            "$ref": "#/components/schemas/UserBasicInfo"
          },
          "availabilityStatus": {
            "$ref": "#/components/schemas/AgentAvailabilityStatus"
          }
        }
      },
      "AgentContact": {
        "type": "object",
        "title": "AgentContact",
        "description": "Details of agent contact event.",
        "required": [
          "contactType",
          "contactId",
          "contactOp",
          "billable"
        ],
        "properties": {
          "contactType": {
            "description": "Mode of agent contact.",
            "$ref": "#/components/schemas/AgentContactType",
            "example": "PHONE"
          },
          "contactId": {
            "type": "string",
            "description": "Unique ID for agent contact.",
            "example": "1234567890"
          },
          "contactOp": {
            "description": "Operation that the agent performed.",
            "$ref": "#/components/schemas/AgentContactOp",
            "example": "AGENT_BOOKING"
          },
          "agentId": {
            "$ref": "#/components/schemas/UserId",
            "description": "User ID of agent."
          },
          "billable": {
            "type": "boolean",
            "description": "Is the agent contact event billable?",
            "example": true
          },
          "pnrId": {
            "type": "string",
            "description": "PNR ID (if applicable).",
            "example": "1234567890"
          },
          "travelType": {
            "description": "Travel type.",
            "$ref": "#/components/schemas/TravelType",
            "example": "AIR"
          },
          "notes": {
            "type": "string",
            "description": "Agent notes.",
            "example": "Requested by customer"
          },
          "nonBillableReason": {
            "$ref": "#/components/schemas/NonBillableReason",
            "description": "Reason for non-billable agent contact"
          }
        }
      },
      "AgentContactOp": {
        "type": "string",
        "title": "AgentContactOp",
        "description": "Agent contact operation.",
        "enum": [
          "AGENT_BOOKING",
          "AGENT_MODIFY",
          "AGENT_CANCEL",
          "AGENT_OTHER",
          "AGENT_EXCHANGE",
          "ANCILLARY_PURCHASE",
          "SHELL_PNR_CREATE",
          "SHELL_PNR_MODIFY",
          "SHELL_PNR_CANCEL",
          "SHELL_PNR_EXCHANGE",
          "MANUAL_FORM_CREATE",
          "MANUAL_FORM_MODIFY",
          "MANUAL_FORM_CANCEL",
          "MANUAL_FORM_EXCHANGE",
          "UNUSED_TICKET_MANAGEMENT"
        ]
      },
      "AgentContactType": {
        "type": "string",
        "title": "Agent contact type",
        "description": "Agent contact type",
        "enum": [
          "PHONE",
          "CHAT",
          "EMAIL"
        ]
      },
      "AgentFeeInfo": {
        "type": "object",
        "title": "AgentFeeInfo",
        "required": [
          "feeType"
        ],
        "discriminator": {
          "propertyName": "agentFeeType",
          "mapping": {
            "AGENT_ASSISTED_TRIP_FEE": "#/components/schemas/AgentAssistedTripFeeInfo",
            "AGENT_ASSISTED_TRANSACTION_FEE": "#/components/schemas/AgentAssistedTransactionFeeInfo"
          }
        },
        "oneOf": [
          {
            "$ref": "#/components/schemas/AgentAssistedTripFeeInfo"
          },
          {
            "$ref": "#/components/schemas/AgentAssistedTransactionFeeInfo"
          }
        ],
        "properties": {
          "feeType": {
            "type": "string",
            "description": "Type of the fee",
            "example": "AGENT_FEE"
          }
        }
      },
      "AgentGroupBasicInfo": {
        "type": "object",
        "title": "AgentGroupBasicInfo",
        "description": "Basic details related to agent group.",
        "required": [
          "name",
          "description"
        ],
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "description": "Agent group id."
          },
          "name": {
            "type": "string",
            "description": "Name of the agent group."
          },
          "description": {
            "type": "string",
            "description": "Description of the agent group."
          },
          "isDefault": {
            "type": "boolean",
            "default": false,
            "description": "True if group is default group for the tmc."
          }
        }
      },
      "AgentTask": {
        "type": "object",
        "required": [
          "id",
          "taskType",
          "priority",
          "status",
          "sourcePnrId",
          "source"
        ],
        "properties": {
          "id": {
            "description": "Unique task ID. This is a read only field and must not be used when the task is created.",
            "type": "string",
            "readOnly": true,
            "example": "065c77fa-900c-11ec-9eeb-0242ac170003"
          },
          "primaryTraveler": {
            "$ref": "#/components/schemas/UserBasicInfo",
            "description": "Traveler Information"
          },
          "travelArranger": {
            "$ref": "#/components/schemas/UserBasicInfo",
            "description": "The travel arranger to be contacted (if any)."
          },
          "taskType": {
            "type": "string",
            "readOnly": true,
            "example": "TAW - Tickets to print"
          },
          "priority": {
            "$ref": "#/components/schemas/Priority"
          },
          "travelStartDate": {
            "$ref": "#/components/schemas/DateTimeLocal"
          },
          "bookingDate": {
            "$ref": "#/components/schemas/DateTimeLocal"
          },
          "status": {
            "$ref": "#/components/schemas/Status"
          },
          "assignee": {
            "$ref": "#/components/schemas/UserBasicInfo",
            "description": "The agent who is assigned this task"
          },
          "organization": {
            "$ref": "#/components/schemas/OrganizationBasicInfo"
          },
          "sourcePnrId": {
            "type": "string",
            "readOnly": true,
            "example": "WIBAPI"
          },
          "tripId": {
            "type": "string",
            "readOnly": true,
            "example": "065c77fa-900c-11ec-9eeb-0242ac170003"
          },
          "source": {
            "$ref": "#/components/schemas/ThirdPartySource"
          },
          "sourceMetadata": {
            "description": "Data that is specific to the source, for Sabre it is PCC number",
            "type": "string",
            "readOnly": true,
            "example": "5XY9"
          },
          "referenceMetadata": {
            "description": "Data that is specific to the source reference, for Sabre it is the Sabre Queue number",
            "type": "string",
            "readOnly": true,
            "example": "50"
          },
          "bookingTmc": {
            "$ref": "#/components/schemas/OrganizationBasicInfo"
          },
          "contractingTmc": {
            "$ref": "#/components/schemas/OrganizationBasicInfo"
          },
          "tierAtBooking": {
            "$ref": "#/components/schemas/Tier"
          },
          "taskOrigin": {
            "$ref": "#/components/schemas/TaskOrigin"
          },
          "events": {
            "type": "array",
            "description": "Information about all the events within task.",
            "items": {
              "$ref": "#/components/schemas/EventInfo"
            }
          },
          "assignedGroup": {
            "$ref": "#/components/schemas/AgentGroupBasicInfo"
          },
          "assignedAgent": {
            "$ref": "#/components/schemas/Agent"
          },
          "taskDuration": {
            "$ref": "#/components/schemas/Duration"
          },
          "pnrId": {
            "type": "string",
            "readOnly": true,
            "example": "9199471293"
          },
          "assignedAgentBasicInfo": {
            "$ref": "#/components/schemas/AgentBasicInfo"
          },
          "description": {
            "type": "string",
            "example": "Approval timed out"
          },
          "createdAt": {
            "$ref": "#/components/schemas/DateTimeOffset"
          },
          "agentTaskResolution": {
            "$ref": "#/components/schemas/AgentTaskResolution"
          }
        }
      },
      "AgentTaskBasicInfo": {
        "type": "object",
        "title": "AgentTaskBasicInfo",
        "description": "Basic information of the agent task.",
        "required": [
          "id"
        ],
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "description": "Task ID."
          },
          "sourcePnrId": {
            "type": "string",
            "description": "Source PNR ID associated to the task."
          },
          "eventCount": {
            "type": "integer",
            "description": "Number of task events."
          },
          "tripId": {
            "type": "string",
            "description": "Trip ID associated to the task."
          },
          "type": {
            "description": "Type of task.",
            "type": "string",
            "example": "Schedule change"
          },
          "description": {
            "type": "string",
            "description": "Task type description."
          },
          "status": {
            "$ref": "#/components/schemas/Status"
          }
        }
      },
      "AgentTaskDetails": {
        "type": "object",
        "x-ignore-naming-case": true,
        "properties": {
          "event_type": {
            "type": "string",
            "description": "AGENT_TASK_DETAILS"
          },
          "operationSummary": {
            "type": "object",
            "$ref": "#/components/schemas/OperationSummary"
          },
          "operation": {
            "$ref": "#/components/schemas/AgentTaskOperationType"
          },
          "payload": {
            "$ref": "#/components/schemas/AgentTask"
          },
          "timestamp": {
            "type": "string",
            "description": "Timestamp when the event was published"
          },
          "audience": {
            "$ref": "#/components/schemas/WebhookAudience"
          }
        }
      },
      "AgentTaskOperationType": {
        "description": "Agent task operation types",
        "type": "string",
        "enum": [
          "TASK_CREATE",
          "TASK_UPDATE"
        ],
        "example": "TASK_CREATE",
        "x-enumDescriptions": {
          "TASK_CREATE": "A new agent `taskId` has been created.",
          "TASK_UPDATE": "An update has been made to an existing `taskId`."
        }
      },
      "AgentTaskResolution": {
        "type": "object",
        "required": [
          "type"
        ],
        "properties": {
          "type": {
            "$ref": "#/components/schemas/ResolutionType"
          },
          "resolutionSteps": {
            "type": "string",
            "maxLength": 1500,
            "example": "1. Check PNR status 2. Verify with airline 3. Update booking"
          }
        }
      },
      "Air": {
        "title": "Air",
        "description": "Air PNR information",
        "required": [
          "legs",
          "travelerInfos"
        ],
        "properties": {
          "legs": {
            "type": "array",
            "description": "List of legs that are part of this bookings",
            "items": {
              "$ref": "#/components/schemas/Leg"
            }
          },
          "airPnrRemarks": {
            "type": "array",
            "description": "Remarks added for the pnr.",
            "items": {
              "$ref": "#/components/schemas/AirPnrRemark"
            }
          },
          "travelerInfos": {
            "type": "array",
            "minItems": 1,
            "description": "Information about traveler bookings",
            "items": {
              "$ref": "#/components/schemas/TravelerInfo"
            }
          },
          "automatedCancellationInfo": {
            "readOnly": true,
            "$ref": "#/components/schemas/AutomatedCancellationInfo"
          },
          "automatedExchangeInfo": {
            "readOnly": true,
            "$ref": "#/components/schemas/AutomatedExchangeInfo"
          },
          "bookingMetadata": {
            "type": "object",
            "title": "BookingMetadata",
            "description": "Metadata like fare statistics for this booking",
            "properties": {
              "fareStatistics": {
                "description": "Fare statistics of all logical itineraries. In case of multi pax, only primary i.e. \nadult fare is included in stats.\n",
                "$ref": "#/components/schemas/FareStatistics"
              }
            }
          },
          "otherServiceInfos": {
            "type": "array",
            "description": "List of all the Other Service Information associated with the PNR.",
            "items": {
              "$ref": "#/components/schemas/OtherServiceInformationDetail"
            }
          },
          "holdDeadline": {
            "$ref": "#/components/schemas/HoldInfo"
          },
          "airPriceOptimizationMetadata": {
            "$ref": "#/components/schemas/AirPriceOptimizationMetadata"
          },
          "disruptedFlightDetails": {
            "type": "array",
            "description": "List of all the last confirmed flights that have changed via disruption by the airline.",
            "items": {
              "$ref": "#/components/schemas/FlightDetailInformation"
            }
          }
        }
      },
      "AirAmenity": {
        "type": "object",
        "title": "AirAmenity",
        "oneOf": [
          {
            "$ref": "#/components/schemas/SeatAmenityWrapper"
          },
          {
            "$ref": "#/components/schemas/WifiAmenityWrapper"
          },
          {
            "$ref": "#/components/schemas/PowerAmenityWrapper"
          },
          {
            "$ref": "#/components/schemas/EntertainmentAmenityWrapper"
          },
          {
            "$ref": "#/components/schemas/BeverageAmenityWrapper"
          },
          {
            "$ref": "#/components/schemas/AircraftAmenityWrapper"
          },
          {
            "$ref": "#/components/schemas/LayoutAmenityWrapper"
          },
          {
            "$ref": "#/components/schemas/FreshFoodAmenityWrapper"
          },
          {
            "$ref": "#/components/schemas/CleaningAmenityWrapper"
          },
          {
            "$ref": "#/components/schemas/MaskAmenityWrapper"
          },
          {
            "$ref": "#/components/schemas/TemperatureAmenityWrapper"
          },
          {
            "$ref": "#/components/schemas/PassengerCapacityAmenityWrapper"
          },
          {
            "$ref": "#/components/schemas/BlockedAdjacentSeatsAmenityWrapper"
          },
          {
            "$ref": "#/components/schemas/CovidTestingAmenityWrapper"
          },
          {
            "$ref": "#/components/schemas/VaccineAmenityWrapper"
          }
        ]
      },
      "AirBookingGuideline": {
        "title": "AirBookingGuideline",
        "description": "Air related guidelines",
        "type": "object",
        "properties": {
          "allowedAirports": {
            "description": "List of allowed airports for arrival of flight-in-event and departure of flight-out-event.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AirportInfo"
            }
          },
          "allowedCityCodes": {
            "description": "List of allowed city codes for arrival of flight-in-event and departure of flight-out-event. If both allowedAirports and allowedCityCodes are provided, allowedCityCodes takes precedence.",
            "type": "array",
            "items": {
              "type": "string",
              "example": "NYC"
            }
          },
          "arrivalBookingWindow": {
            "description": "Booking window for flight-in-event.",
            "$ref": "#/components/schemas/EventBookingWindow"
          },
          "departureBookingWindow": {
            "description": "Booking window for flight-out-event.",
            "$ref": "#/components/schemas/EventBookingWindow"
          },
          "allowedFlightGuidelines": {
            "description": "List of allowed flight guidelines for the event.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AllowedFlightGuideline"
            }
          }
        }
      },
      "AirBookingGuidelineWrapper": {
        "type": "object",
        "title": "AirBookingGuidelineWrapper",
        "description": "Wrapper for AirBookingGuideline",
        "properties": {
          "airBookingGuideLine": {
            "$ref": "#/components/schemas/AirBookingGuideline"
          }
        }
      },
      "AirConditioning": {
        "type": "string",
        "title": "AirConditioning",
        "description": "Whether air conditioning is available.",
        "enum": [
          "UNKNOWN_AC",
          "AC_AVAILABLE",
          "AC_NOT_AVAILABLE"
        ],
        "example": "AC_AVAILABLE"
      },
      "AirFlight": {
        "type": "object",
        "title": "AirFlight",
        "description": "Flight information of the ticket",
        "properties": {
          "arrivalDateTime": {
            "description": "Arrival date time of flight",
            "$ref": "#/components/schemas/DateTimeLocal"
          },
          "departureDateTime": {
            "description": "Departure date time of flight",
            "$ref": "#/components/schemas/DateTimeLocal"
          },
          "marketing": {
            "description": "Marketing flight number",
            "$ref": "#/components/schemas/FlightNumber"
          },
          "operating": {
            "description": "Operating flight number",
            "$ref": "#/components/schemas/FlightNumber"
          },
          "origin": {
            "description": "Airport info about the origin airport.",
            "$ref": "#/components/schemas/Airport"
          },
          "destination": {
            "description": "Airport info about the destination airport.",
            "$ref": "#/components/schemas/Airport"
          },
          "cabin": {
            "description": "Cabin class for this flight",
            "$ref": "#/components/schemas/Cabin"
          }
        }
      },
      "AirItem": {
        "type": "object",
        "title": "Item",
        "description": "This describes the details for an airItem related to a particular itemGroup.",
        "required": [
          "itemType"
        ],
        "properties": {
          "itemType": {
            "type": "string"
          },
          "airItemType": {
            "$ref": "#/components/schemas/AirItemType",
            "description": "type of the air item , could be flights or ancillary."
          },
          "flights": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AirFlight"
            }
          },
          "ancillaryTypes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TransactionAncillaryType"
            }
          },
          "oldFlights": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AirFlight"
            }
          }
        }
      },
      "AirItemType": {
        "type": "string",
        "description": "type of air item",
        "enum": [
          "FLIGHT",
          "ANCILLARY"
        ],
        "example": "FLIGHT"
      },
      "AirPnrRemark": {
        "title": "AirPnrRemark",
        "type": "object",
        "required": [
          "remarkString"
        ],
        "properties": {
          "remarkString": {
            "type": "string",
            "description": "Remark String",
            "example": "COMPLEATREMARK"
          }
        }
      },
      "AirPref": {
        "type": "object",
        "title": "AirPref",
        "description": "Travel preferences related to air travel.",
        "properties": {
          "airlinePrefs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AirlinePref"
            }
          },
          "alliancePref": {
            "$ref": "#/components/schemas/AlliancePref"
          },
          "farePref": {
            "$ref": "#/components/schemas/FarePref"
          },
          "homeAirport": {
            "type": "string",
            "example": "NEW YORK"
          },
          "mealPref": {
            "$ref": "#/components/schemas/MealPref"
          },
          "numStopPref": {
            "$ref": "#/components/schemas/NumStopsPref"
          },
          "seatAmenityPref": {
            "$ref": "#/components/schemas/SeatAmenityPref"
          },
          "seatLocationPrefs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SeatLocationPref"
            }
          },
          "preferredAirports": {
            "type": "array",
            "description": "A list of user preferred airports.",
            "items": {
              "$ref": "#/components/schemas/PreferredAirport"
            }
          }
        }
      },
      "AirPriceOptimizationMetadata": {
        "type": "object",
        "title": "AirPriceOptimizationMetadata",
        "description": "Information related to air price optimization if PNR has been rebooked.\n",
        "required": [
          "oldPnrId",
          "newPnrId",
          "oldPrice",
          "newPrice",
          "priceDrop"
        ],
        "properties": {
          "oldTickets": {
            "type": "array",
            "items": {
              "type": "string",
              "example": "0111234567890"
            },
            "description": "List of old tickets present in PNR before rebook.\nFor non-ticketed PNRs, tickets will not be present.\n"
          },
          "newTickets": {
            "type": "array",
            "items": {
              "type": "string",
              "example": "0111234567890"
            },
            "description": "List of new tickets in PNR after rebook.\nFor non-ticketed PNRs, tickets will not be present.\n"
          },
          "oldPnrId": {
            "type": "string",
            "description": "Old Spotnana PnrId of the PNR before rebook.\n",
            "example": "6789533589"
          },
          "newPnrId": {
            "type": "string",
            "description": "New Spotnana PnrId of the PNR after rebook.\nIf the same PNR has been modified during rebook, oldPnrId and newPnrId will be same.\nIf a new PNR has been booked during rebook, oldPnrId and newPnrId will be different.\n",
            "example": "6789533589"
          },
          "oldPrice": {
            "description": "Total price of the PNR before rebook.",
            "$ref": "#/components/schemas/Money"
          },
          "newPrice": {
            "description": "Total price of the PNR after rebook.",
            "$ref": "#/components/schemas/Money"
          },
          "priceDrop": {
            "description": "Total price drop during rebook process.",
            "$ref": "#/components/schemas/Money"
          },
          "penaltyPrice": {
            "description": "Penalty amount paid during rebook process.",
            "$ref": "#/components/schemas/Money"
          }
        }
      },
      "AirRequestTravelerInfo": {
        "title": "AirRequestTravelerInfo",
        "description": "The traveler identifiers. These can be either the Spotnana user IDs of the travelers or information regarding\nthe adhoc travelers.\n",
        "type": "object",
        "oneOf": [
          {
            "$ref": "#/components/schemas/UserIdWrapper"
          },
          {
            "$ref": "#/components/schemas/AdhocTravelerInfoWrapper"
          }
        ]
      },
      "AirRestrictedFaresParams": {
        "type": "object",
        "title": "AirRestrictedFaresParams",
        "properties": {
          "airRestrictedKeywords": {
            "type": "array",
            "description": "List of keywords grouped by airline",
            "items": {
              "$ref": "#/components/schemas/AirRestrictedKeyword"
            }
          }
        }
      },
      "AirRestrictedFaresParamsWrapper": {
        "type": "object",
        "title": "AirRestrictedFaresParamsWrapper",
        "properties": {
          "airRestrictedFaresParams": {
            "$ref": "#/components/schemas/AirRestrictedFaresParams"
          }
        }
      },
      "AirRestrictedKeyword": {
        "type": "object",
        "title": "AirRestrictedKeyword",
        "description": "Airline/Keyword to be restricted",
        "required": [
          "keyword"
        ],
        "properties": {
          "keyword": {
            "type": "string",
            "description": "Restricted keyword."
          },
          "airlineCode": {
            "type": "string",
            "description": "IATA airline code. If not set, the restriction applies to all airlines."
          }
        }
      },
      "AirRsvpResponse": {
        "title": "AirRsvpResponse",
        "type": "object",
        "description": "Air rsvp response",
        "properties": {
          "notNeeded": {
            "type": "boolean",
            "description": "Whether air booking is needed by the traveler or not",
            "example": true
          }
        }
      },
      "AirSeatAssignmentType": {
        "type": "string",
        "description": "The type of seat assignment",
        "enum": [
          "AUTO_ASSIGNED"
        ],
        "example": "AUTO_ASSIGNED"
      },
      "AirUpa": {
        "type": "object",
        "title": "AirUpa",
        "description": "Air UPA Info",
        "properties": {
          "headline": {
            "type": "string",
            "example": "A fully flat bed"
          },
          "upaDescription": {
            "type": "string",
            "example": "Arrive well-rested in our 180-degree flat-bed seating with illuminated seat controls."
          },
          "smallIconUrl": {
            "type": "string",
            "example": "https://d13cihc9138cdj.cloudfront.net/icons/1d571a8b-559a-4c16-8be2-088566b2adaf/small/lay-flat.png?channel_id\\u003dys18ftmp"
          },
          "largeIconUrl": {
            "type": "string",
            "example": "https://d13cihc9138cdj.cloudfront.net/icons/1d571a8b-559a-4c16-8be2-088566b2adaf/large/lay-flat.png?channel_id\\u003dys18ftmp"
          },
          "externalDetailsUrl": {
            "type": "string",
            "example": "https://www.united.com/web/en-US/content/travel/inflight/businessfirst.aspx"
          },
          "categories": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/UpaCategory"
            }
          },
          "photo": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ImageGroup"
            }
          },
          "video": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ImageGroup"
            }
          },
          "tour": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ImageGroup"
            }
          }
        }
      },
      "AirVendorCancellationInfo": {
        "title": "VendorCancellationInfo",
        "type": "object",
        "properties": {
          "airVendorCancellationObjects": {
            "type": "array",
            "description": "Vendor Cancellation",
            "items": {
              "$ref": "#/components/schemas/AirVendorCancellationObject"
            }
          }
        }
      },
      "AirVendorCancellationObject": {
        "type": "object",
        "description": "vendor cancellation object",
        "properties": {
          "vendorCancellationId": {
            "type": "string",
            "description": "Identifier returned by the vendor for a cancellation transaction"
          },
          "flightAndLegIndices": {
            "type": "array",
            "description": "Vendor Cancellation",
            "items": {
              "$ref": "#/components/schemas/FlightAndLegIndex"
            }
          }
        }
      },
      "AircraftAmenity": {
        "type": "object",
        "title": "AircraftAmenity",
        "description": "Aircraft Amenity properties",
        "properties": {
          "displayText": {
            "type": "string",
            "example": "789 (widebody)"
          },
          "aircraftType": {
            "type": "string",
            "example": "widebody"
          },
          "aircraftModel": {
            "type": "string",
            "example": "787"
          }
        }
      },
      "AircraftAmenityWrapper": {
        "type": "object",
        "title": "AircraftAmenityWrapper",
        "properties": {
          "aircraftAmenity": {
            "$ref": "#/components/schemas/AircraftAmenity"
          }
        }
      },
      "AirlineInfo": {
        "title": "AirlineInfo",
        "type": "object",
        "required": [
          "airlineCode",
          "airlineName"
        ],
        "properties": {
          "airlineCode": {
            "type": "string",
            "description": "IATA code for airline.",
            "example": "AA"
          },
          "airlineName": {
            "type": "string",
            "description": "Airline name",
            "example": "American Airlines"
          }
        }
      },
      "AirlinePref": {
        "type": "object",
        "title": "AirlinePref",
        "description": "Airline preferences.",
        "properties": {
          "airlines": {
            "type": "array",
            "items": {
              "type": "string",
              "example": "Indigo"
            }
          },
          "flightType": {
            "type": "string",
            "enum": [
              "UNKNOWN_FLIGHT_TYPE",
              "DOMESTIC",
              "INTERNATIONAL",
              "ALL"
            ],
            "example": "DOMESTIC"
          }
        }
      },
      "Airport": {
        "title": "Airport",
        "description": "Airport Details",
        "type": "object",
        "required": [
          "airportCode",
          "airportName",
          "cityCode"
        ],
        "properties": {
          "airportCode": {
            "type": "string",
            "description": "Unique code for the Airport",
            "example": "LHR"
          },
          "airportName": {
            "type": "string",
            "description": "Full Name of the Airport",
            "example": "Heathrow Airport"
          },
          "cityCode": {
            "type": "string",
            "description": "City Code for the location",
            "example": "LON"
          },
          "location": {
            "$ref": "#/components/schemas/Location"
          },
          "groupInfo": {
            "$ref": "#/components/schemas/AirportGroupInfo"
          }
        }
      },
      "AirportGroupInfo": {
        "title": "AirportGroupInfo",
        "description": "Grouping criteria for the airports in same group",
        "type": "object",
        "required": [
          "groupId",
          "mainAirportLocation"
        ],
        "properties": {
          "groupId": {
            "type": "string",
            "description": "Id of the airport group",
            "example": "NYC"
          },
          "groupCityCode": {
            "type": "string",
            "description": "City code of the airport group. If airport group does not have a recognized city code, then this field will be empty.",
            "example": "NYC"
          },
          "mainAirportLocation": {
            "description": "Location of the main airport in the group",
            "$ref": "#/components/schemas/Location"
          }
        }
      },
      "AirportInfo": {
        "title": "AirportInfo",
        "description": "Detailed information about the airport.",
        "type": "object",
        "properties": {
          "airportCode": {
            "type": "string",
            "description": "3-letter code of the airport.",
            "example": "WRA"
          },
          "airportName": {
            "type": "string",
            "description": "Full name of the airport.",
            "example": "Warder Airport"
          },
          "cityName": {
            "type": "string",
            "description": "Name of the city in which the airport is located (or is nearest to).",
            "example": "Werder"
          },
          "countryName": {
            "type": "string",
            "description": "Name of the country in which the airport is located.",
            "example": "Ethiopia"
          },
          "countryCode": {
            "type": "string",
            "description": "2-letter IATA country code associated with the airport.",
            "example": "ET"
          },
          "zoneName": {
            "type": "string",
            "description": "Name of the time zone associated with the airport.",
            "example": "Africa/Addis_Ababa"
          },
          "stateCode": {
            "type": "string",
            "description": "2-letter IATA code for the state in which the airport is located.",
            "example": "CA"
          }
        }
      },
      "Alliance": {
        "type": "string",
        "enum": [
          "UNKNOWN_ALLIANCE",
          "STAR_ALLIANCE",
          "ONEWORLD",
          "SKYTEAM",
          "VANILLA_ALLIANCE",
          "U_FLY_ALLIANCE",
          "VALUE_ALLIANCE"
        ],
        "default": "UNKNOWN_ALLIANCE",
        "example": "STAR_ALLIANCE"
      },
      "AlliancePref": {
        "type": "object",
        "title": "AlliancePref",
        "description": "Alliance preferences.",
        "required": [
          "alliances"
        ],
        "properties": {
          "alliances": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Alliance"
            }
          }
        }
      },
      "AllowedFlightGuideline": {
        "title": "AllowedFlightGuideline",
        "description": "Flight related guideline",
        "type": "object",
        "required": [
          "allowedFlightType"
        ],
        "properties": {
          "allowedFlightType": {
            "description": "The type of flight booking allowed for the event.",
            "$ref": "#/components/schemas/AllowedFlightType"
          },
          "numberOfLegs": {
            "description": "The number of legs allowed for the flight booking.",
            "type": "integer",
            "example": 2
          }
        }
      },
      "AllowedFlightType": {
        "title": "AllowedFlightType",
        "description": "The types of flight booking guidelines",
        "type": "string",
        "enum": [
          "ONE_WAY",
          "ROUND_TRIP",
          "MULTICITY"
        ],
        "example": "ROUND_TRIP"
      },
      "AncillaryFlightId": {
        "description": "Flights to which this ancillary belongs",
        "type": "object",
        "required": [
          "legIndex"
        ],
        "properties": {
          "legIndex": {
            "$ref": "#/components/schemas/AncillaryLegIndex"
          },
          "flightIndex": {
            "$ref": "#/components/schemas/AncillaryFlightIndex"
          }
        }
      },
      "AncillaryFlightIndex": {
        "type": "integer",
        "description": "Index of flight in it's leg to which this ancillary belongs. If an ancillary \nbelongs to all flights, this index should be set to -1\n",
        "format": "int32",
        "example": 0,
        "minimum": -1
      },
      "AncillaryLegIndex": {
        "type": "integer",
        "description": "Index of leg to which this ancillary belongs. If an ancillary belongs to all legs,\nthis index should be set to -1\n",
        "format": "int32",
        "example": 0,
        "minimum": -1
      },
      "AncillaryType": {
        "type": "string",
        "title": "AncillaryType",
        "description": "Type of ancillary",
        "enum": [
          "EARLY_BIRD",
          "WIFI",
          "CARBON_OFFSET"
        ],
        "example": "EARLY_BIRD"
      },
      "AnswerPair": {
        "type": "object",
        "properties": {
          "item": {
            "type": "string",
            "description": "The option selected from the list of available choices."
          },
          "value": {
            "type": "string",
            "description": "The additional input provided (by the user) while selecting one of the options."
          },
          "description": {
            "type": "string",
            "description": "Description of the selected option."
          }
        }
      },
      "AppliedCreditInfo": {
        "type": "object",
        "title": "AppliedCreditInfo",
        "description": "Information about credit redeemed in booking.",
        "required": [
          "creditId"
        ],
        "properties": {
          "creditId": {
            "type": "string",
            "description": "Unique ID of credit applied. For example, numeric ID of unused ticket.",
            "example": "0017574214321"
          },
          "creditAmount": {
            "$ref": "#/components/schemas/FareAmount",
            "description": "Total credit amount available."
          },
          "fareDifference": {
            "$ref": "#/components/schemas/Money",
            "description": "Difference between the selected fare and credit available.\nIf the fare is greater than credit available, value of this field will be positive (that amount will be charged to payment method).\nIf the fare is less than credit available, value of this field will be negative (credit balance will remain).\n"
          },
          "penalty": {
            "$ref": "#/components/schemas/Money",
            "description": "Penalty amount applied to redeem credit. This could be a change fee applied when redeeming."
          },
          "ticketType": {
            "type": "string",
            "description": "Type of credit.",
            "enum": [
              "ETICKET",
              "MCO"
            ]
          }
        }
      },
      "AppliedWaiveOffInfo": {
        "type": "object",
        "title": "Applied Waive-Off Information",
        "description": "Information about TMC fee waivers applied by an agent during checkout.",
        "properties": {
          "waiveOffAmount": {
            "description": "The amount of TMC fee that has been waived",
            "$ref": "#/components/schemas/FareAmount"
          },
          "waiveOffReason": {
            "description": "The reason provided by the agent for waiving the fee",
            "$ref": "#/components/schemas/WaiveOffFeeReason"
          }
        }
      },
      "ApprovalInfo": {
        "type": "object",
        "title": "ApprovalInfo",
        "required": [
          "approvalStatus"
        ],
        "properties": {
          "approvalStatus": {
            "type": "string",
            "description": "The approval status for the PNR",
            "enum": [
              "APPROVAL_PENDING",
              "APPROVED",
              "DENIED",
              "TIMED_OUT",
              "TIMED_OUT_REMINDER",
              "APPROVAL_NOT_REQUIRED",
              "SOFT_APPROVAL_TIMEOUT"
            ]
          },
          "approvalType": {
            "type": "string",
            "description": "Type of APPROVAL",
            "enum": [
              "APPROVAL_TYPE_UNKNOWN",
              "HARD_APPROVAL",
              "SOFT_APPROVAL",
              "PASSIVE_APPROVAL",
              "PRE_APPROVAL"
            ],
            "x-ignoreBreakingChanges": [
              "approvalType->PRE_APPROVAL"
            ],
            "example": "SOFT_APPROVAL"
          }
        }
      },
      "ApprovalType": {
        "type": "string",
        "description": "Type of APPROVAL",
        "enum": [
          "HARD_APPROVAL",
          "SOFT_APPROVAL",
          "PASSIVE_APPROVAL",
          "PRE_APPROVAL"
        ],
        "x-ignoreBreakingChanges": [
          "ApprovalType->PRE_APPROVAL"
        ],
        "example": "SOFT_APPROVAL"
      },
      "ApproverWebhookPayload": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Full name of the approver"
          },
          "email": {
            "type": "string",
            "description": "Email of the approver"
          },
          "userId": {
            "$ref": "#/components/schemas/UserId"
          }
        }
      },
      "AssessmentType": {
        "type": "string",
        "enum": [
          "NEUTRAL",
          "BENEFIT",
          "RESTRICTION",
          "FEE"
        ],
        "example": "BENEFIT"
      },
      "AutomatedCancellationInfo": {
        "type": "object",
        "description": "Info related to possible automated cancellations",
        "properties": {
          "supportedCancellations": {
            "type": "array",
            "description": "Supported automated cancellations. If this list is empty, automated cancellation is not \nsupported for this booking\n",
            "items": {
              "type": "object",
              "title": "CancellationInfo",
              "required": [
                "cancelType",
                "totalFare",
                "refund"
              ],
              "properties": {
                "cancelType": {
                  "type": "string",
                  "title": "CancelType",
                  "description": "Type of cancellation",
                  "enum": [
                    "VOID",
                    "REFUND"
                  ]
                },
                "maxCancellationDateTime": {
                  "description": "Max date time till when this cancellation is supported",
                  "$ref": "#/components/schemas/DateTimeOffset"
                },
                "totalFare": {
                  "description": "Total booking fare",
                  "$ref": "#/components/schemas/FareAmount"
                },
                "penalty": {
                  "description": "Total penalty",
                  "$ref": "#/components/schemas/Money"
                },
                "merchantFee": {
                  "description": "Non refundable merchant fee",
                  "$ref": "#/components/schemas/Money"
                },
                "refund": {
                  "description": "Total refund (totalFare - penalty - merchantFee)",
                  "$ref": "#/components/schemas/Money"
                }
              }
            }
          }
        }
      },
      "AutomatedExchangeInfo": {
        "type": "object",
        "description": "Info related to possible automated exchange",
        "properties": {
          "supportedExchanges": {
            "type": "array",
            "description": "Supported automated exchanges. If this list is empty, automated exchange is not \nsupported for this booking.\n",
            "items": {
              "type": "object",
              "title": "ExchangeInfo",
              "properties": {
                "legInfos": {
                  "type": "array",
                  "description": "List of legs supported for this exchange",
                  "minItems": 1,
                  "items": {
                    "type": "object",
                    "title": "LegInfo",
                    "required": [
                      "legIdx"
                    ],
                    "properties": {
                      "legIdx": {
                        "type": "integer",
                        "format": "int32",
                        "example": 1
                      }
                    }
                  }
                }
              }
            }
          }
        }
      },
      "BagFees": {
        "type": "object",
        "description": "This contains price info for the baggage",
        "properties": {
          "fee": {
            "$ref": "#/components/schemas/Money"
          },
          "applicability": {
            "$ref": "#/components/schemas/BagPolicyApplicability"
          }
        }
      },
      "BagPolicyApplicability": {
        "type": "string",
        "description": "This represents that the info is applicable for per bag/combined bags",
        "enum": [
          "EACH",
          "TOTAL"
        ]
      },
      "BagWeightLimit": {
        "type": "object",
        "description": "This contains weight limit details of bag",
        "properties": {
          "weightLimit": {
            "type": "array",
            "description": "Weight limit in different units",
            "items": {
              "$ref": "#/components/schemas/WeightLimit"
            }
          },
          "applicability": {
            "$ref": "#/components/schemas/BagPolicyApplicability"
          }
        }
      },
      "BaggageInfo": {
        "type": "object",
        "description": "Information about the baggage policy.",
        "properties": {
          "description": {
            "type": "string",
            "description": "Baggage policy text",
            "example": "1 checked bag, 33 lbs"
          },
          "count": {
            "type": "integer",
            "description": "Count of bags",
            "example": 3
          },
          "sizeLimitInfo": {
            "type": "array",
            "description": "Size of bag in cm",
            "items": {
              "$ref": "#/components/schemas/SizeInfo"
            }
          },
          "weightLimitInfo": {
            "type": "array",
            "description": "Array of bag weight limits",
            "items": {
              "$ref": "#/components/schemas/BagWeightLimit"
            }
          },
          "fee": {
            "type": "array",
            "description": "Array of bag weight fees",
            "items": {
              "$ref": "#/components/schemas/BagFees"
            }
          },
          "sizeLimitDescription": {
            "type": "string",
            "description": "The baggage size limit in string format.",
            "example": "55 x 35 x 25 cm"
          }
        }
      },
      "BaggagePolicy": {
        "type": "object",
        "description": "Baggage policy for this traveler.",
        "required": [
          "checkedIn",
          "carryOn"
        ],
        "properties": {
          "checkedIn": {
            "type": "array",
            "description": "Policies for checked-in baggage",
            "items": {
              "$ref": "#/components/schemas/BaggageInfo"
            }
          },
          "carryOn": {
            "type": "array",
            "description": "Policies for carry-on baggage",
            "items": {
              "$ref": "#/components/schemas/BaggageInfo"
            }
          }
        }
      },
      "BasicTripInfo": {
        "title": "BasicTripInfo",
        "description": "Basic trip info",
        "type": "object",
        "required": [
          "tripId",
          "tripName"
        ],
        "properties": {
          "tripId": {
            "type": "string",
            "description": "Spotnana trip Id",
            "example": "6926658168"
          },
          "tripName": {
            "type": "string",
            "description": "Name of the trip",
            "example": "JFK SFO Trip"
          },
          "tripDescription": {
            "type": "string",
            "description": "Trip description",
            "example": "JFK SFO Business Trip"
          },
          "applicationId": {
            "type": "string",
            "format": "uuid",
            "description": "Application id used for the trip."
          },
          "startDate": {
            "$ref": "#/components/schemas/DateModel"
          },
          "endDate": {
            "$ref": "#/components/schemas/DateModel"
          },
          "userId": {
            "description": "The user Id of the traveler to whom the trip belongs to.",
            "$ref": "#/components/schemas/UserId"
          },
          "registrarUserId": {
            "description": "The user Id of the registrar of the adhoc traveler.",
            "$ref": "#/components/schemas/UserId"
          },
          "tripMetadata": {
            "$ref": "#/components/schemas/TripMetadata"
          },
          "tripDisabledInfo": {
            "$ref": "#/components/schemas/TripDisabledInfo"
          },
          "stealthType": {
            "deprecated": true,
            "x-sunset": "2027-01-01",
            "$ref": "#/components/schemas/StealthType"
          },
          "stealthMode": {
            "$ref": "#/components/schemas/StealthMode"
          }
        }
      },
      "BedType": {
        "type": "string",
        "title": "BedType",
        "description": "Bed types.",
        "enum": [
          "UNKNOWN_BED_TYPE",
          "DOUBLE",
          "FUTON",
          "KING",
          "MURPHY",
          "QUEEN",
          "SOFA",
          "TATAMI_MATS",
          "TWIN",
          "SINGLE",
          "FULL",
          "RUN_OF_THE_HOUSE",
          "DORM",
          "WATER",
          "PULL_OUT",
          "TWIN_XL"
        ],
        "example": "SINGLE"
      },
      "BeverageAmenity": {
        "type": "object",
        "title": "BeverageAmenity",
        "description": "Beverage amenity option properties.",
        "properties": {
          "displayText": {
            "type": "string",
            "example": "Premium alcohol beverages provided"
          },
          "beverageType": {
            "type": "string",
            "example": "premium alcoholic"
          },
          "alcoholCost": {
            "type": "string",
            "example": "free"
          }
        }
      },
      "BeverageAmenityWrapper": {
        "type": "object",
        "title": "BeverageAmenityWrapper",
        "properties": {
          "beverageAmenity": {
            "$ref": "#/components/schemas/BeverageAmenity"
          }
        }
      },
      "BlockedAdjacentSeatsAmenity": {
        "type": "object",
        "title": "BlockedAdjacentSeatsAmenity",
        "description": "Passenger Capacity Amenity properties",
        "properties": {
          "displayText": {
            "type": "string",
            "example": "No blocked adjacent seats"
          },
          "blockedAdjacentSeatsDescription": {
            "type": "string",
            "example": "Adjacent seats are not blocked on this flight"
          },
          "blockedAdjacentSeatsAttrDescription": {
            "type": "string",
            "example": "no"
          }
        }
      },
      "BlockedAdjacentSeatsAmenityWrapper": {
        "type": "object",
        "title": "BlockedAdjacentSeatsAmenityWrapper",
        "properties": {
          "blockedAdjacentSeatsAmenity": {
            "$ref": "#/components/schemas/BlockedAdjacentSeatsAmenity"
          }
        }
      },
      "BoardingPass": {
        "type": "object",
        "title": "BoardingPass",
        "description": "Boarding pass information for the corresponding flight.",
        "properties": {
          "legIndex": {
            "type": "integer",
            "description": "Index of leg to which this boarding pass belongs.",
            "format": "int32",
            "example": 0,
            "minimum": 0
          },
          "flightIndex": {
            "type": "integer",
            "description": "Index of flight in it's leg to which this boarding pass belongs.",
            "format": "int32",
            "example": 0,
            "minimum": 0
          },
          "boardingPriority": {
            "type": "string",
            "description": "Boarding Priority for airlines like Southwest which have open seating.",
            "example": "A"
          },
          "boardingZone": {
            "type": "string",
            "description": "Boarding zone for airlines like Southwest which have open seating.",
            "example": "16"
          }
        }
      },
      "BookerInfo": {
        "title": "BookerInfo",
        "description": "Booker Details",
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Name of the Booker",
            "example": "Harry Potter"
          },
          "email": {
            "type": "string",
            "description": "Email of the Booker",
            "example": "harry@spotnana.com"
          },
          "role": {
            "type": "string",
            "description": "User facing role of the Booker",
            "enum": [
              "UNKNOWN_ROLE",
              "AGENT",
              "TRAVEL_MANAGER",
              "TRAVELER",
              "REGISTRAR",
              "ADMIN"
            ],
            "x-ignoreBreakingChanges": [
              "StatusEnum->ADMIN"
            ],
            "example": "AGENT"
          },
          "tmcName": {
            "type": "string",
            "description": "Name of the Tmc booker belongs to",
            "example": "Spotnana Technology"
          }
        }
      },
      "Booking": {
        "type": "object",
        "title": "Booking",
        "description": "Info about all booked items",
        "properties": {
          "seats": {
            "type": "array",
            "title": "Seat",
            "description": "Seat booking info",
            "items": {
              "type": "object",
              "properties": {
                "legIdx": {
                  "type": "integer",
                  "description": "Index of leg to which this seat belongs",
                  "format": "int32",
                  "example": 0,
                  "minimum": 0
                },
                "flightIdx": {
                  "type": "integer",
                  "description": "Index of flight in it's leg to which this seat belongs",
                  "format": "int32",
                  "example": 0,
                  "minimum": 0
                },
                "amount": {
                  "$ref": "#/components/schemas/Money",
                  "description": "Total seat price"
                },
                "number": {
                  "type": "string",
                  "description": "Assigned seat number",
                  "example": "32A"
                },
                "status": {
                  "$ref": "#/components/schemas/FlightSeatStatus",
                  "description": "Seat booking status"
                },
                "sourceStatus": {
                  "type": "string",
                  "description": "Raw status code of the seat. E.g. HK, KK.",
                  "example": "HK"
                },
                "assignmentType": {
                  "$ref": "#/components/schemas/AirSeatAssignmentType",
                  "description": "The type of seat assignment."
                }
              }
            }
          },
          "luggageDetails": {
            "type": "array",
            "description": "Additional luggage info",
            "items": {
              "$ref": "#/components/schemas/LuggageInfo"
            }
          },
          "otherAncillaries": {
            "type": "array",
            "description": "Ancillaries other than seat and luggage",
            "items": {
              "type": "object",
              "required": [
                "flightIds",
                "status",
                "type"
              ],
              "properties": {
                "type": {
                  "$ref": "#/components/schemas/AncillaryType"
                },
                "legIndex": {
                  "$ref": "#/components/schemas/AncillaryLegIndex",
                  "deprecated": true,
                  "x-sunset": "2026-07-01"
                },
                "flightIndex": {
                  "$ref": "#/components/schemas/AncillaryFlightIndex",
                  "deprecated": true,
                  "x-sunset": "2026-07-01"
                },
                "fare": {
                  "$ref": "#/components/schemas/FareAmount",
                  "description": "Fare for this ancillary"
                },
                "status": {
                  "type": "string",
                  "description": "Status of this ancillary",
                  "enum": [
                    "ANCILLARY_STATUS_UNKNOWN",
                    "CONFIRMED",
                    "PENDING",
                    "CANCELLED",
                    "ELIGIBLE",
                    "NOT_APPLICABLE"
                  ],
                  "example": "CONFIRMED"
                },
                "flightIds": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/AncillaryFlightId"
                  }
                }
              }
            }
          },
          "itinerary": {
            "type": "object",
            "title": "Itinerary",
            "description": "Info about booked itinerary",
            "readOnly": true,
            "properties": {
              "totalFare": {
                "$ref": "#/components/schemas/FareAmount",
                "description": "Total itinerary fare including flights, ancillaries and extras. This does not \ninclude service fee\n"
              },
              "totalFlightsFare": {
                "$ref": "#/components/schemas/FareAmount",
                "description": "Total flights fare"
              },
              "totalSeatFare": {
                "$ref": "#/components/schemas/Money",
                "description": "Total fare for seats"
              },
              "totalLuggageFare": {
                "$ref": "#/components/schemas/Money",
                "description": "Total fare for luggage"
              },
              "totalMerchantFees": {
                "$ref": "#/components/schemas/Money",
                "description": "Total merchant fees"
              },
              "totalAirlineFees": {
                "$ref": "#/components/schemas/Money",
                "description": "Total card or sevice fee charged by airline"
              },
              "otherCharges": {
                "$ref": "#/components/schemas/Money",
                "description": "Charges other than flight, seat and luggage"
              },
              "flightFareBreakup": {
                "type": "array",
                "description": "Ticket level flight fare breakup",
                "items": {
                  "type": "object",
                  "title": "FlightFareBreakup",
                  "properties": {
                    "legIndices": {
                      "type": "array",
                      "description": "List of legs for this fare info",
                      "items": {
                        "type": "integer",
                        "format": "int32",
                        "example": 1
                      }
                    },
                    "flightsFare": {
                      "description": "Total flight fare for the above legs",
                      "$ref": "#/components/schemas/FareAmount"
                    }
                  }
                }
              },
              "fareComponents": {
                "type": "array",
                "description": "List of fare component details for this itinerary",
                "items": {
                  "$ref": "#/components/schemas/FareComponentDetail"
                }
              },
              "otherAncillaryFares": {
                "type": "array",
                "description": "Fare breakup for ancillaries other than seat and luggage",
                "items": {
                  "$ref": "#/components/schemas/OtherAncillaryFare"
                }
              }
            }
          },
          "otherCharges": {
            "type": "array",
            "title": "Other",
            "description": "Extra charges over flight fare, seat and luggage.",
            "items": {
              "type": "object",
              "required": [
                "amount",
                "type"
              ],
              "properties": {
                "amount": {
                  "$ref": "#/components/schemas/Money",
                  "description": "Total amount for extra item"
                },
                "type": {
                  "type": "string",
                  "description": "Name of extra item",
                  "example": "Meal"
                }
              }
            }
          }
        }
      },
      "BookingDetails": {
        "type": "object",
        "title": "BookingDetails",
        "description": "Booking information",
        "properties": {
          "pnrId": {
            "type": "string",
            "description": "PNR Id"
          },
          "pnrVersion": {
            "type": "integer",
            "format": "int32",
            "description": "Version number associated with the PNR"
          },
          "tripUsageType": {
            "type": "string",
            "description": "Trip Usage Type",
            "enum": [
              "TRIP_USAGE_TYPE_UNKNOWN",
              "STANDARD",
              "EVENT"
            ]
          },
          "source": {
            "description": "Third party source",
            "$ref": "#/components/schemas/ThirdPartySource"
          },
          "sourcePnrId": {
            "type": "string",
            "description": "Source PNR Id from thirdparty source"
          }
        }
      },
      "BookingFeeInfo": {
        "type": "object",
        "title": "BookingFeeInfo",
        "required": [
          "feeType"
        ],
        "discriminator": {
          "propertyName": "bookingFeeType",
          "mapping": {
            "TRIP_FEE": "#/components/schemas/TripFeeInfo",
            "TRANSACTION_FEE": "#/components/schemas/TransactionFeeInfo",
            "VALUE_ADDED_SERVICE_FEE": "#/components/schemas/ValueAddedServiceFeeInfo",
            "OTHER_FEE": "#/components/schemas/OtherFeeInfo"
          }
        },
        "oneOf": [
          {
            "$ref": "#/components/schemas/TripFeeInfo"
          },
          {
            "$ref": "#/components/schemas/TransactionFeeInfo"
          },
          {
            "$ref": "#/components/schemas/ValueAddedServiceFeeInfo"
          },
          {
            "$ref": "#/components/schemas/OtherFeeInfo"
          }
        ],
        "properties": {
          "feeType": {
            "type": "string",
            "description": "Type of the fee",
            "example": "BOOKING_FEE"
          }
        }
      },
      "BookingHistory": {
        "title": "BookingHistory",
        "description": "Booking History",
        "properties": {
          "bookerInfo": {
            "$ref": "#/components/schemas/BookerInfo",
            "description": "Booker Information"
          },
          "bookingInfo": {
            "$ref": "#/components/schemas/BookingInfo",
            "description": "Booking Information"
          }
        }
      },
      "BookingInfo": {
        "title": "BookingInfo",
        "description": "Booking Details",
        "type": "object",
        "properties": {
          "updatedDateTime": {
            "description": "Date Time when the booking was created/updated",
            "$ref": "#/components/schemas/DateTimeOffset"
          },
          "status": {
            "type": "string",
            "description": "User facing status of the booking in history",
            "enum": [
              "UNKNOWN_STATUS",
              "BOOKED",
              "EXCHANGED",
              "UPDATED",
              "CANCELLED",
              "FINALIZED",
              "UNFINALIZED",
              "AIR_SCHEDULE_CHANGE_ACCEPTED"
            ],
            "x-ignoreBreakingChanges": [
              "StatusEnum->FINALIZED",
              "StatusEnum->UNFINALIZED",
              "StatusEnum->AIR_SCHEDULE_CHANGE_ACCEPTED"
            ],
            "example": "BOOKED"
          },
          "bookingSourceClient": {
            "type": "string",
            "description": "Client on which this booking was created/updated",
            "enum": [
              "ANDROID_APP",
              "ANDROID_WEB",
              "ANDROID_EMBED",
              "IOS_APP",
              "IOS_WEB",
              "IOS_EMBED",
              "WEB"
            ]
          }
        }
      },
      "BookingStatusType": {
        "title": "BookingStatusType",
        "description": "Booking status of the travel.",
        "type": "string",
        "enum": [
          "BOOKED",
          "NOT_BOOKED",
          "OPTED_OUT"
        ],
        "example": "BOOKED"
      },
      "BoolWrapper": {
        "type": "object",
        "title": "BoolWrapper",
        "properties": {
          "b": {
            "type": "boolean"
          }
        }
      },
      "BucketEmailPreferences": {
        "type": "object",
        "title": "BucketEmailPreferences",
        "description": "Email communication preferences based on bucket types.",
        "required": [
          "bucketTypes"
        ],
        "properties": {
          "bucketTypes": {
            "type": "array",
            "description": "List of email bucket types.",
            "items": {
              "$ref": "#/components/schemas/EmailBucketType"
            }
          },
          "isEnabled": {
            "type": "boolean",
            "description": "Indicates whether emails are disabled.",
            "default": false
          },
          "toEmails": {
            "type": "array",
            "description": "List of email address to be included in emails.",
            "items": {
              "type": "string",
              "format": "email",
              "example": "example@email.com"
            }
          },
          "ccEmails": {
            "type": "array",
            "description": "List of email address to be cc-ed in emails.",
            "items": {
              "type": "string",
              "format": "email",
              "example": "example@email.com"
            }
          },
          "bccEmails": {
            "type": "array",
            "description": "List of email address to be bcc-ed in emails.",
            "items": {
              "type": "string",
              "format": "email",
              "example": "example@email.com"
            }
          }
        }
      },
      "BusinessInfo": {
        "type": "object",
        "title": "BusinessInfo",
        "description": "User business information.",
        "required": [
          "organizationRef",
          "legalEntityRef"
        ],
        "properties": {
          "departmentRef": {
            "$ref": "#/components/schemas/Reference"
          },
          "designation": {
            "type": "string",
            "example": "MANAGER"
          },
          "email": {
            "type": "string",
            "format": "email",
            "example": "user@business.com"
          },
          "employeeId": {
            "description": "Unique employee id. Can use email if a company don't use employee ids.",
            "type": "string",
            "example": "101"
          },
          "gradeRef": {
            "$ref": "#/components/schemas/Reference"
          },
          "legalEntityRef": {
            "$ref": "#/components/schemas/Reference"
          },
          "managerRef": {
            "$ref": "#/components/schemas/Reference"
          },
          "officeRef": {
            "$ref": "#/components/schemas/Reference"
          },
          "organizationRef": {
            "$ref": "#/components/schemas/Reference"
          },
          "phoneNumbers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PhoneNumber"
            }
          },
          "costCenterRef": {
            "$ref": "#/components/schemas/Reference"
          },
          "countryCode": {
            "type": "string",
            "description": "alpha-2 or alpha-3 ISO country code.",
            "example": "USA"
          },
          "workerType": {
            "$ref": "#/components/schemas/WorkerType"
          },
          "accountingCode": {
            "type": "string",
            "description": "Code used for accounting.",
            "example": "123"
          },
          "companySpecifiedAttributes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CompanySpecifiedAttribute"
            }
          },
          "designatedApproverRefs": {
            "type": "array",
            "description": "A list of references for designated approvers.",
            "items": {
              "$ref": "#/components/schemas/Reference"
            }
          },
          "authorizerEmail": {
            "type": "string",
            "description": "Email address to be used as approval authorizer, when a manager is not present.",
            "example": "example@email.com"
          }
        }
      },
      "BuyerInfo": {
        "type": "object",
        "title": "BuyerInfo",
        "description": "Buyer of items mentioned in the invoice.",
        "required": [
          "name",
          "address"
        ],
        "properties": {
          "name": {
            "description": "Name of buyer, usually a traveler.",
            "type": "string",
            "example": "John Doe"
          },
          "address": {
            "description": "Address of buyer. Could be office, legal entity or org address.",
            "type": "string",
            "example": "115 Broadway Suite 04-101,\nNew York, NY 10006"
          },
          "taxId": {
            "description": "Tax number for the seller, for ex GSTN in India",
            "type": "string",
            "example": "TXG239023092",
            "deprecated": true,
            "x-sunset": "2026-07-01"
          },
          "idInfo": {
            "type": "array",
            "description": "The seller ID information.",
            "items": {
              "$ref": "#/components/schemas/IdInfo"
            }
          }
        }
      },
      "CO2EmissionDetail": {
        "type": "object",
        "title": "CO2EmissionDetail",
        "description": "CO2 emission details for the flight.",
        "required": [
          "emissionValue"
        ],
        "properties": {
          "emissionValue": {
            "type": "number",
            "format": "double",
            "description": "Estimated C02 emissions value for selected flight and seating class, per passenger (in tons)",
            "example": 10
          },
          "averageEmissionValue": {
            "type": "number",
            "format": "double",
            "description": "Average estimated C02 emissions per passenger for same route (in tons)",
            "example": 10
          },
          "flightDistanceKm": {
            "type": "number",
            "format": "double",
            "description": "Total distance flown by the flight in kilometres.",
            "example": 10
          },
          "isApproximate": {
            "type": "boolean",
            "description": "Indicates whether the emissions value is approximate or not.",
            "example": true
          }
        }
      },
      "COGS": {
        "type": "object",
        "title": "Cost of goods sold",
        "description": "Payment information about all goods sold. This is a required field for now.",
        "required": [
          "payments"
        ],
        "properties": {
          "payments": {
            "type": "array",
            "description": "Potentially multiple payments that spotnana will pay to vendors for this booking",
            "items": {
              "$ref": "#/components/schemas/Payment"
            },
            "minItems": 1
          }
        }
      },
      "CTC": {
        "type": "object",
        "title": "Cost to customer",
        "description": "Cost of services, charged to customer",
        "required": [
          "payments"
        ],
        "properties": {
          "payments": {
            "type": "array",
            "description": "Potentially multiple payments that spotnana will charge the clients",
            "items": {
              "$ref": "#/components/schemas/Payment"
            },
            "minItems": 1
          }
        }
      },
      "Cabin": {
        "title": "Cabin",
        "description": "Flight cabin",
        "type": "string",
        "enum": [
          "UNKNOWN_CABIN",
          "ECONOMY",
          "PREMIUM_ECONOMY",
          "BUSINESS",
          "FIRST"
        ],
        "example": "ECONOMY"
      },
      "CancellationPolicy1": {
        "type": "object",
        "description": "Information about the cancellation policy.",
        "properties": {
          "description": {
            "type": "string",
            "description": "Text describing the cancellation policy.",
            "example": "Non-refundable"
          },
          "fee": {
            "$ref": "#/components/schemas/Money"
          },
          "assessmentType": {
            "$ref": "#/components/schemas/AssessmentType",
            "description": "Assessment Type"
          },
          "isCat16": {
            "type": "boolean",
            "description": "Is source cat16",
            "example": true
          },
          "isConditional": {
            "type": "boolean",
            "description": "Is conditional",
            "example": true
          }
        }
      },
      "CancellationPolicy2": {
        "type": "object",
        "title": "CancellationPolicy",
        "description": "Cancellation policy info.",
        "required": [
          "policy"
        ],
        "properties": {
          "policy": {
            "type": "string",
            "description": "Indicates whether the booking is refundable or not.",
            "enum": [
              "UNKNOWN",
              "NON_REFUNDABLE",
              "FREE_CANCELLATION_UNTIL",
              "PARTIALLY_REFUNDABLE"
            ],
            "example": "NON_REFUNDABLE"
          },
          "deadline": {
            "$ref": "#/components/schemas/DateTimeLocal",
            "description": "The local date and time of the final deadline for cancellation, if policy type is\nFREE_CANCELLATION_UNTIL or PARTIALLY_REFUNDABLE.\n"
          },
          "deadlineUtc": {
            "$ref": "#/components/schemas/DateTimeOffset",
            "description": "The UTC date and time of the final deadline for cancellation, if policy type is\nFREE_CANCELLATION_UNTIL or PARTIALLY_REFUNDABLE.\n"
          },
          "durationBeforeArrivalDeadline": {
            "$ref": "#/components/schemas/Duration",
            "description": "The duration before arrival of the final deadline for cancellation, if policy type is\n`FREE_CANCELLATION_UNTIL` or `PARTIALLY_REFUNDABLE`.\n"
          },
          "amount": {
            "$ref": "#/components/schemas/Money"
          }
        }
      },
      "CancellationRequestStatus": {
        "type": "string",
        "description": "Status of in progress cancellation request\nCANCELLATION_IN_PROGRESS - Cancellation request is in progress via OBT\nCANCELLATION_BY_AGENT_REQUESTED - Cancellation request is in progress via agent\n",
        "enum": [
          "CANCELLATION_IN_PROGRESS",
          "CANCELLATION_BY_AGENT_REQUESTED"
        ],
        "example": "CANCELLATION_IN_PROGRESS"
      },
      "Car": {
        "title": "Car",
        "description": "Car PNR information",
        "required": [
          "carInfo",
          "dropOffDateTime",
          "pickupDateTime",
          "rate",
          "vendorConfirmationNumber"
        ],
        "properties": {
          "cancellationPolicy": {
            "$ref": "#/components/schemas/CancellationPolicy2",
            "description": "Car rental cancellation policy."
          },
          "carInfo": {
            "$ref": "#/components/schemas/CarInfo",
            "description": "Details of the car booked."
          },
          "dropOffDateTime": {
            "$ref": "#/components/schemas/DateTimeLocal",
            "description": "Drop off date and time."
          },
          "paymentType": {
            "type": "string",
            "description": "Payment type.",
            "enum": [
              "UNKNOWN_PAYMENT_TYPE",
              "PAY_AT_VENDOR",
              "PREPAID"
            ],
            "example": "PREPAID"
          },
          "pickupDateTime": {
            "$ref": "#/components/schemas/DateTimeLocal",
            "description": "Pickup date and time."
          },
          "pnrStatus": {
            "$ref": "#/components/schemas/PnrStatus",
            "description": "Pnr status."
          },
          "rate": {
            "$ref": "#/components/schemas/Cost",
            "description": "Car rental rate."
          },
          "vendorConfirmationNumber": {
            "type": "string",
            "description": "Car confirmation number.",
            "example": "2108528068"
          },
          "sortingPriority": {
            "type": "integer",
            "description": "Sort order on the trips page",
            "example": 0
          },
          "corporateId": {
            "type": "string",
            "description": "Corporate id applied while booking",
            "example": "8371"
          },
          "rateType": {
            "type": "string",
            "description": "Rate type of the car booked",
            "enum": [
              "PUBLISHED",
              "CORPORATE",
              "SPOTNANA"
            ]
          },
          "sourceStatus": {
            "type": "string",
            "description": "Source status code of the pnr"
          },
          "vendorCancellationId": {
            "type": "string",
            "description": "Cancellation id sent by the supplier.",
            "example": "2108528068"
          },
          "originalCarSearchInfo": {
            "$ref": "#/components/schemas/CarSearchInfo",
            "description": "Original Car search info."
          },
          "rateMetadata": {
            "$ref": "#/components/schemas/RateMetadata",
            "description": "Price Metadata."
          },
          "rebookReference": {
            "$ref": "#/components/schemas/CarRebookReference",
            "description": "Reference to PNR's which were cancelled or booked in favour of this PNR."
          },
          "dailyRates": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CarDailyRate"
            },
            "description": "Contains daily rates for each day of the rental duration."
          },
          "carAverageRate": {
            "description": "Contains average rate for the entire rental duration.",
            "$ref": "#/components/schemas/CarDailyRate"
          }
        }
      },
      "CarAmenities": {
        "type": "object",
        "title": "CarAmenities",
        "description": "Car amenities.",
        "properties": {
          "numDoors": {
            "type": "integer",
            "description": "Number of doors.",
            "format": "int32",
            "example": 4
          },
          "numLargeBags": {
            "type": "integer",
            "description": "Number of large bags.",
            "format": "int32",
            "example": 2
          },
          "numSeatBelts": {
            "type": "integer",
            "description": "Number of seats belts.",
            "format": "int32",
            "example": 5
          },
          "numSeats": {
            "type": "integer",
            "description": "Number of seats.",
            "format": "int32",
            "example": 5
          },
          "numSmallBags": {
            "type": "integer",
            "description": "Number of small bags.",
            "format": "int32",
            "example": 5
          }
        }
      },
      "CarBookingGuideline": {
        "title": "CarBookingGuideline",
        "description": "Car related guidelines",
        "type": "object",
        "properties": {
          "pickupBookingWindow": {
            "$ref": "#/components/schemas/EventBookingWindow"
          },
          "dropoffBookingWindow": {
            "$ref": "#/components/schemas/EventBookingWindow"
          },
          "paymentGuidelines": {
            "$ref": "#/components/schemas/CarBookingPaymentGuidelines",
            "readOnly": true
          }
        }
      },
      "CarBookingGuidelineWrapper": {
        "type": "object",
        "title": "CarBookingGuidelineWrapper",
        "description": "Wrapper for CarBookingGuideline",
        "properties": {
          "carBookingGuideLine": {
            "$ref": "#/components/schemas/CarBookingGuideline"
          }
        }
      },
      "CarBookingPaymentGuidelines": {
        "title": "CarBookingPaymentGuidelines",
        "description": "Car booking payment guidelines",
        "type": "object",
        "properties": {
          "allowedPaymentVendors": {
            "description": "List of allowed car vendors for the event",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/VendorInfo"
            }
          },
          "onlyVendorBooking": {
            "type": "boolean",
            "description": "Whether only Vendor bookings are allowed for the event.",
            "example": true
          }
        }
      },
      "CarCo2EmissionDetail": {
        "type": "object",
        "description": "The CO2 emission detail for car.",
        "required": [
          "co2EmissionValue"
        ],
        "properties": {
          "co2EmissionValue": {
            "type": "number",
            "format": "double",
            "example": 0.01,
            "description": "The CO2 emission value in kgs for car."
          }
        }
      },
      "CarDailyRate": {
        "title": "CarDailyRate",
        "description": "Contains daily rate for the relevant car.",
        "properties": {
          "total": {
            "description": "Daily total rate.",
            "$ref": "#/components/schemas/Money"
          },
          "base": {
            "description": "Daily base rate.",
            "$ref": "#/components/schemas/Money"
          },
          "tax": {
            "description": "Daily tax rate.",
            "$ref": "#/components/schemas/Money"
          }
        }
      },
      "CarInfo": {
        "type": "object",
        "title": "CarInfo",
        "description": "Car info",
        "required": [
          "carSpec",
          "dropOffLocation",
          "pickupLocation",
          "vendor"
        ],
        "properties": {
          "carSpec": {
            "$ref": "#/components/schemas/CarSpec",
            "description": "Vehicle information."
          },
          "dropOffLocation": {
            "$ref": "#/components/schemas/CarLocation",
            "description": "Drop off location."
          },
          "mileageAllowance": {
            "$ref": "#/components/schemas/Length",
            "description": "Mileage allowance."
          },
          "pickupLocation": {
            "$ref": "#/components/schemas/CarLocation",
            "description": "Pick up location."
          },
          "vendor": {
            "$ref": "#/components/schemas/Vendor"
          },
          "carTypeCode": {
            "type": "string",
            "description": "Car type code",
            "example": "EBMR"
          },
          "extraMileageCharge": {
            "$ref": "#/components/schemas/Money"
          },
          "preferredType": {
            "type": "array",
            "description": "Car preference",
            "deprecated": true,
            "x-sunset": "2026-07-01",
            "items": {
              "$ref": "#/components/schemas/PreferredType"
            }
          },
          "preferences": {
            "type": "array",
            "description": "Car preferences",
            "items": {
              "$ref": "#/components/schemas/Preference"
            }
          },
          "co2EmissionDetail": {
            "description": "The CO2 emission detail for car.",
            "$ref": "#/components/schemas/CarCo2EmissionDetail"
          },
          "voucherInfo": {
            "$ref": "#/components/schemas/VoucherInfo",
            "description": "Car Voucher information"
          }
        }
      },
      "CarItem": {
        "type": "object",
        "title": "CarItem",
        "description": "This describes the carItem related to a particular itemGroup.",
        "required": [
          "itemType"
        ],
        "properties": {
          "itemType": {
            "type": "string"
          },
          "pickUpDateTime": {
            "description": "Check in date time.",
            "$ref": "#/components/schemas/DateTimeLocal"
          },
          "dropOffDateTime": {
            "description": "Check out date time.",
            "$ref": "#/components/schemas/DateTimeLocal"
          },
          "pickUpLocation": {
            "description": "Pick up location.",
            "$ref": "#/components/schemas/CarLocation"
          },
          "dropOffLocation": {
            "description": "Drop off location.",
            "$ref": "#/components/schemas/CarLocation"
          },
          "carSpec": {
            "description": "Car specific details.",
            "$ref": "#/components/schemas/CarSpec"
          },
          "carDailyAverageRate": {
            "description": "Car average daily rental rate.",
            "$ref": "#/components/schemas/CarDailyRate"
          },
          "dailyRates": {
            "type": "array",
            "description": "Daily rates for rental car in the date range.",
            "items": {
              "$ref": "#/components/schemas/CarDailyRate"
            }
          }
        }
      },
      "CarLocation": {
        "type": "object",
        "title": "CarLocation",
        "description": "Pickup and drop-off location info.",
        "required": [
          "address"
        ],
        "properties": {
          "address": {
            "$ref": "#/components/schemas/PostalAddress",
            "description": "Location address / airport code."
          },
          "coordinates": {
            "$ref": "#/components/schemas/Latlng",
            "description": "Latitude and longitude of the location."
          },
          "counterLocation": {
            "$ref": "#/components/schemas/CounterLocation",
            "description": "Counter location. If airport counter, set locationCode in address."
          },
          "contactInfo": {
            "$ref": "#/components/schemas/LocationContactInfo"
          },
          "operatingSchedule": {
            "$ref": "#/components/schemas/LocationOperatingSchedule"
          }
        }
      },
      "CarPref": {
        "type": "object",
        "title": "CarPref",
        "description": "Travel preferences related to car.",
        "properties": {
          "vendors": {
            "type": "array",
            "description": "A list of car vendors.",
            "items": {
              "$ref": "#/components/schemas/CarVendor"
            }
          },
          "carTypes": {
            "type": "array",
            "description": "A list of types of car.",
            "items": {
              "$ref": "#/components/schemas/CarType"
            }
          },
          "engineTypes": {
            "type": "array",
            "description": "A list of types of engine.",
            "items": {
              "$ref": "#/components/schemas/EngineType"
            }
          },
          "transmissionTypes": {
            "type": "array",
            "description": "A list of types of transmission.",
            "items": {
              "$ref": "#/components/schemas/TransmissionSearchFilter"
            }
          },
          "conditionalRates": {
            "type": "array",
            "description": "A list of conditional rates for rail.",
            "items": {
              "$ref": "#/components/schemas/ConditionalRate"
            }
          }
        }
      },
      "CarRebookReference": {
        "title": "CarRebookReference",
        "description": "Contains reference to cancelled and rebooked PNR's.",
        "properties": {
          "cancelledPnrIds": {
            "description": "Reference to Spotnana Pnr Ids that were cancelled in favor of this booking.",
            "type": "array",
            "items": {
              "type": "string",
              "example": "1234567890"
            }
          },
          "rebookedPnrId": {
            "description": "Reference to Spotnana Pnr Id that was booked in favor of this cancellation, Populated for cancelled PNR's if they were cancelled for a rebooking.",
            "type": "string",
            "example": "1234567890"
          }
        }
      },
      "CarRsvpResponse": {
        "title": "CarRsvpResponse",
        "type": "object",
        "description": "Car rsvp response",
        "properties": {
          "notNeeded": {
            "type": "boolean",
            "description": "Whether car booking is needed by the traveler or not",
            "example": true
          }
        }
      },
      "CarSearchInfo": {
        "title": "CarSearchInfo",
        "type": "object",
        "description": "Car search information",
        "required": [
          "pickup",
          "dropOff"
        ],
        "properties": {
          "pickup": {
            "$ref": "#/components/schemas/SearchParams"
          },
          "dropOff": {
            "$ref": "#/components/schemas/SearchParams"
          },
          "renterAge": {
            "type": "integer",
            "description": "Age of the renter",
            "example": 30
          },
          "citizenCountryCode": {
            "type": "string",
            "description": "Citizen code of the renter",
            "example": "US"
          },
          "pickupCountryCode": {
            "type": "string",
            "description": "Country code of the pick up location",
            "example": "US"
          },
          "loyaltyCode": {
            "type": "array",
            "description": "Loyalty codes to be applied",
            "items": {
              "type": "object",
              "required": [
                "vendor",
                "code",
                "type"
              ],
              "properties": {
                "vendor": {
                  "type": "string",
                  "description": "Vendor code",
                  "example": "ZI"
                },
                "code": {
                  "type": "string",
                  "description": "Loyalty code",
                  "example": "1924047077"
                },
                "type": {
                  "type": "string",
                  "description": "Loyalty type",
                  "enum": [
                    "PROMOTIONAL_COUPON"
                  ],
                  "example": "PROMOTIONAL_COUPON"
                }
              }
            }
          }
        }
      },
      "CarSearchLocationParam": {
        "title": "CarSearchLocationParam",
        "description": "Car Search location parameters.",
        "type": "object",
        "properties": {
          "airportCode": {
            "type": "string",
            "description": "IATA code for AIRPORT",
            "example": "SFO"
          },
          "cityCode": {
            "type": "string",
            "description": "City Code.",
            "example": "JFK"
          },
          "coordinates": {
            "$ref": "#/components/schemas/Latlng"
          }
        }
      },
      "CarSpec": {
        "type": "object",
        "title": "CarSpec",
        "description": "Car spec.",
        "required": [
          "type"
        ],
        "properties": {
          "airConditioning": {
            "$ref": "#/components/schemas/AirConditioning",
            "description": "Whether air conditioning is available."
          },
          "amenities": {
            "$ref": "#/components/schemas/CarAmenities",
            "description": "Car amenities."
          },
          "type": {
            "$ref": "#/components/schemas/CarType",
            "description": "Car type."
          },
          "displayName": {
            "type": "string",
            "description": "Car display name.",
            "example": "Economy"
          },
          "engineType": {
            "$ref": "#/components/schemas/EngineType",
            "description": "Engine type."
          },
          "imageGroups": {
            "type": "array",
            "description": "Collection of car images.",
            "items": {
              "$ref": "#/components/schemas/ImageGroup"
            }
          },
          "transmission": {
            "$ref": "#/components/schemas/Transmission",
            "description": "Transmission type."
          }
        }
      },
      "CarType": {
        "type": "string",
        "title": "CarType",
        "description": "Car type.",
        "enum": [
          "OTHER",
          "MINI",
          "ECONOMY",
          "COMPACT",
          "MID_SIZE",
          "STANDARD",
          "FULL_SIZE",
          "PREMIUM",
          "LUXURY",
          "CONVERTIBLE",
          "MINIVAN",
          "SUV",
          "VAN",
          "PICKUP",
          "SPORTS",
          "SPECIAL",
          "RECREATIONAL_VEHICLE",
          "WAGON"
        ],
        "example": "ECONOMY"
      },
      "CarVendor": {
        "type": "object",
        "title": "CarVendor",
        "description": "Car vendor.",
        "required": [
          "code",
          "name"
        ],
        "properties": {
          "code": {
            "type": "string",
            "description": "Vendor code",
            "example": "ZE"
          },
          "name": {
            "type": "string",
            "description": "Vendor name",
            "example": "HERTZ"
          },
          "isPresentInPreferredVendors": {
            "type": "boolean",
            "description": "Whether the car vendor is present in preferred vendor list. This is an optional field which gets populated only in the preferred vendor autocomplete API.",
            "example": true
          }
        }
      },
      "Card": {
        "type": "object",
        "title": "Card",
        "description": "User card info",
        "required": [
          "number"
        ],
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier for this card",
            "format": "uuid",
            "example": "34d536b6-f8ff-11eb-9a61-0242ac180002"
          },
          "type": {
            "type": "string",
            "enum": [
              "UNKNOWN",
              "CREDIT",
              "DEBIT"
            ],
            "description": "Type of card",
            "example": "CREDIT"
          },
          "company": {
            "$ref": "#/components/schemas/CardCompany"
          },
          "name": {
            "description": "Name on card",
            "type": "string",
            "example": "Harrison Schwartz"
          },
          "address": {
            "description": "Billing address",
            "$ref": "#/components/schemas/PostalAddress"
          },
          "number": {
            "type": "string",
            "description": "Card number",
            "example": "4111111111111111"
          },
          "expiryMonth": {
            "type": "integer",
            "format": "int32",
            "minimum": 1,
            "maximum": 12,
            "description": "Expiry month",
            "example": 1,
            "deprecated": true,
            "x-sunset": "2026-07-01"
          },
          "expiryYear": {
            "type": "integer",
            "format": "int32",
            "description": "Expiry year",
            "minimum": 2000,
            "example": 2010,
            "deprecated": true,
            "x-sunset": "2026-07-01"
          },
          "cvv": {
            "type": "string",
            "description": "Card cvv number",
            "example": "012"
          },
          "label": {
            "type": "string",
            "description": "Card Label",
            "example": "Label amex"
          },
          "currency": {
            "type": "string",
            "description": "Native currency of the card.",
            "example": "USD"
          },
          "externalId": {
            "type": "string",
            "description": "Spotnana partner card id.",
            "example": "bxt_RNGsNfzgJDaTstKIKqK4xEuhGYAnMdYK8T40"
          },
          "vaultId": {
            "type": "string",
            "description": "ID of the vault used for creating the card.",
            "format": "uuid",
            "example": "34d536b6-f8ff-11eb-9a61-0242ac180002"
          },
          "expiry": {
            "description": "Card Expiry.",
            "$ref": "#/components/schemas/CardExpiry"
          },
          "ownershipLabel": {
            "$ref": "#/components/schemas/OwnershipLabel",
            "example": "PERSONAL"
          }
        }
      },
      "CardAccessEntity": {
        "title": "CardAccessEntity",
        "type": "object",
        "description": "Contains the central access level and entity id.",
        "required": [
          "entityId"
        ],
        "properties": {
          "entityId": {
            "type": "string",
            "description": "Holds the id for for the user who can access the card or organization id or legal entity"
          },
          "centralCardAccessLevel": {
            "$ref": "#/components/schemas/CentralCardAccessLevel"
          }
        }
      },
      "CardCompany": {
        "type": "string",
        "enum": [
          "NONE",
          "VISA",
          "MASTERCARD",
          "AMEX",
          "DISCOVER",
          "AIR_TRAVEL_UATP",
          "CARTE_BLANCHE",
          "DINERS_CLUB",
          "JCB",
          "BREX",
          "UNION_PAY",
          "EURO_CARD",
          "ACCESS_CARD",
          "ELO_CARD"
        ],
        "description": "The issuing company of card",
        "example": "VISA"
      },
      "CardDetails": {
        "type": "object",
        "title": "Card Details",
        "description": "Card Details",
        "required": [
          "token",
          "expiry",
          "company"
        ],
        "properties": {
          "company": {
            "$ref": "#/components/schemas/CardCompany"
          },
          "token": {
            "type": "string",
            "description": "Tokenized Card Number",
            "example": "4111111111111111"
          },
          "expiry": {
            "$ref": "#/components/schemas/CardExpiry"
          }
        }
      },
      "CardExpiry": {
        "title": "CardExpiry",
        "type": "object",
        "description": "Contains the expiry of a Card.",
        "oneOf": [
          {
            "$ref": "#/components/schemas/TokenizedExpiryWrapper"
          },
          {
            "$ref": "#/components/schemas/ExpiryWrapper"
          }
        ]
      },
      "CardMetadata2": {
        "type": "object",
        "title": "CardMetadata",
        "description": "Metadata for Card payment source.",
        "properties": {
          "card": {
            "$ref": "#/components/schemas/Card"
          },
          "accessType": {
            "$ref": "#/components/schemas/CreditCardAccess"
          },
          "isLodgeCard": {
            "type": "boolean",
            "description": "Whether the payment is made using a lodge card",
            "example": false
          },
          "bta": {
            "type": "string",
            "description": "Whether this is a BTA card. Possible values are 'Y' or 'N'. Relevant only for lodge cards.",
            "example": "Y"
          }
        }
      },
      "CentralCardAccessLevel": {
        "title": "CentralCardAccessLevel",
        "type": "string",
        "description": "Identifies at which level central card is applicable, for example organization or legal entity.",
        "enum": [
          "UNKNOWN",
          "ORGANIZATION",
          "LEGAL_ENTITY",
          "TMC"
        ]
      },
      "ChargeCode": {
        "type": "string",
        "description": "Charge code for transaction fare detail, used for email display ordering.",
        "enum": [
          "BASE",
          "SUBTOTAL",
          "CHANGE_FEE_CHARGE",
          "AIRLINE_FEES_CHARGE",
          "DESTINATION_FEES_CHARGE",
          "TOTAL_DELTA",
          "TOTAL_CHARGE",
          "CANCEL_FEE_CHARGE"
        ],
        "example": "BASE"
      },
      "ChargeProcessorInfo": {
        "title": "ChargeProcessorInfo",
        "type": "object",
        "description": "Information about the processor that calculated the charge",
        "discriminator": {
          "propertyName": "chargeProcessorType",
          "mapping": {
            "RULE_BASED_INFO": "#/components/schemas/RuleBasedInfo",
            "TMC_CALCULATOR_INFO": "#/components/schemas/TmcCalculatorInfo"
          }
        },
        "oneOf": [
          {
            "$ref": "#/components/schemas/RuleBasedInfo"
          },
          {
            "$ref": "#/components/schemas/TmcCalculatorInfo"
          }
        ]
      },
      "CheapestFareInfo": {
        "type": "object",
        "description": "Information about the cheapest fare available for the search criteria.",
        "properties": {
          "amount": {
            "description": "The amount of the cheapest fare.",
            "$ref": "#/components/schemas/Money"
          },
          "fareType": {
            "description": "The fare type of the cheapest fare.",
            "$ref": "#/components/schemas/FareTypeEnum"
          },
          "source": {
            "description": "The source from which the cheapest fare is obtained.",
            "$ref": "#/components/schemas/ThirdPartySource"
          }
        }
      },
      "CleaningAmenity": {
        "type": "object",
        "title": "CleaningAmenity",
        "description": "Cleaning amenity properties.",
        "properties": {
          "displayText": {
            "type": "string",
            "example": "Enhanced aircraft cleaning every flight"
          },
          "cleaningDescription": {
            "type": "string",
            "example": "This flight features an aircraft that will be thoroughly cleaned using disinfectants for every flight"
          },
          "cleaningAttrDescription": {
            "type": "string",
            "example": "enhanced every flight"
          }
        }
      },
      "CleaningAmenityWrapper": {
        "type": "object",
        "title": "CleaningAmenityWrapper",
        "properties": {
          "cleaningAmenity": {
            "$ref": "#/components/schemas/CleaningAmenity"
          }
        }
      },
      "CoachPref": {
        "type": "string",
        "description": "The preference of coach.",
        "enum": [
          "SMOKING",
          "NON_SMOKING",
          "PETS_ALLOWED",
          "RESTAURANT",
          "QUIET"
        ],
        "example": "NON_SMOKING"
      },
      "CompanyConfigSource": {
        "type": "object",
        "title": "CompanyConfigSource",
        "description": "For this option source, options would be auto generated based on specified parameter.",
        "required": [
          "optionsParam"
        ],
        "properties": {
          "optionsParam": {
            "$ref": "#/components/schemas/CustomFieldOptionsParam"
          }
        }
      },
      "CompanyConfigSourceWrapper": {
        "type": "object",
        "title": "CompanyConfigSourceWrapper",
        "description": "Wrapper for option source company config.",
        "properties": {
          "companyConfig": {
            "$ref": "#/components/schemas/CompanyConfigSource"
          }
        }
      },
      "CompanyId": {
        "type": "object",
        "title": "CompanyId",
        "description": "Company ID",
        "required": [
          "id"
        ],
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "example": "f49d00fe-1eda-4304-ba79-a980f565281d"
          }
        }
      },
      "CompanyRef": {
        "type": "object",
        "description": "Basic information about a company.",
        "required": [
          "id"
        ],
        "properties": {
          "id": {
            "$ref": "#/components/schemas/CompanyId"
          },
          "name": {
            "type": "string"
          },
          "logo": {
            "$ref": "#/components/schemas/Image",
            "description": "Company logo"
          }
        }
      },
      "CompanySpecifiedAttribute": {
        "type": "object",
        "description": "Company specified user arbitrary attribute.",
        "required": [
          "fixedColumnName",
          "value"
        ],
        "properties": {
          "fixedColumnName": {
            "type": "string",
            "example": "contingentType"
          },
          "value": {
            "type": "string",
            "example": "FSTV"
          }
        }
      },
      "CompanySpecifiedAttributeLegalEntity": {
        "type": "object",
        "description": "Company specified attribute for legal entity.",
        "required": [
          "fieldName",
          "value"
        ],
        "properties": {
          "fieldName": {
            "type": "string",
            "description": "Field name of the attribute",
            "example": "businessId"
          },
          "value": {
            "type": "string",
            "description": "Field value of the attribute",
            "example": "ABCD"
          }
        }
      },
      "Condition": {
        "type": "object",
        "title": "Condition",
        "description": "Details of the condition",
        "required": [
          "url",
          "text"
        ],
        "properties": {
          "url": {
            "type": "string",
            "description": "Url for terms and conditions.",
            "example": "https://www.amtrak.com/terms-and-conditions.html"
          },
          "text": {
            "type": "string",
            "description": "Display text for the url.",
            "example": "Amtrak"
          }
        }
      },
      "ConditionalRate": {
        "type": "string",
        "title": "ConditionalRate",
        "description": "Conditional rate.",
        "enum": [
          "MILITARY",
          "AAA",
          "GOVERNMENT"
        ],
        "example": "AAA"
      },
      "ConfermaInfo": {
        "type": "object",
        "title": "ConfermaInfo",
        "description": "Details of conferma - one of virtual card vendors.",
        "required": [
          "deploymentId"
        ],
        "properties": {
          "deploymentId": {
            "type": "integer",
            "format": "int32",
            "description": "Unique identifier assigned to the virtual card deployment at the point of creation.",
            "example": 68793680
          }
        }
      },
      "ConnectionRiskAlert": {
        "type": "object",
        "title": "ConnectionRiskAlert",
        "description": "Alert for connection risk in a leg",
        "properties": {
          "departingFlightIndex": {
            "type": "integer",
            "format": "int32",
            "description": "Index of departing flight for this connection"
          },
          "minConnectionDuration": {
            "description": "Minimum connection time",
            "$ref": "#/components/schemas/Duration"
          },
          "previousConnectionDuration": {
            "description": "Connection time before this alert",
            "$ref": "#/components/schemas/Duration"
          },
          "updatedConnectionDuration": {
            "description": "Updated connection time",
            "$ref": "#/components/schemas/Duration"
          }
        }
      },
      "Cost": {
        "type": "object",
        "title": "Cost",
        "description": "Rate info for non-air pnr.",
        "required": [
          "base",
          "tax"
        ],
        "properties": {
          "base": {
            "$ref": "#/components/schemas/Money",
            "description": "Base Amount."
          },
          "extras": {
            "type": "array",
            "description": "List of extras.",
            "items": {
              "type": "object",
              "required": [
                "type",
                "amount"
              ],
              "properties": {
                "type": {
                  "type": "string",
                  "description": "Charge type.",
                  "example": "SERVICE_CHARGE"
                },
                "amount": {
                  "$ref": "#/components/schemas/Money",
                  "description": "Extra amount."
                }
              }
            }
          },
          "refund": {
            "$ref": "#/components/schemas/Money",
            "description": "Refund Amount.",
            "deprecated": true,
            "x-sunset": "2026-07-01"
          },
          "tax": {
            "$ref": "#/components/schemas/Money",
            "description": "Tax amount."
          },
          "commission": {
            "type": "object",
            "description": "Commission",
            "properties": {
              "amount": {
                "$ref": "#/components/schemas/Money",
                "description": "The commission amount we are getting from the vendor"
              },
              "percent": {
                "type": "number",
                "format": "double",
                "description": "The percentage of the base amount that we are getting as commission",
                "example": 10
              }
            }
          },
          "includesCommission": {
            "type": "boolean",
            "description": "Whether the rate includes commission",
            "example": false
          },
          "taxBreakdown": {
            "type": "object",
            "description": "Tax breakdown",
            "properties": {
              "tax": {
                "type": "array",
                "description": "List of taxes for this ticket",
                "items": {
                  "type": "object",
                  "properties": {
                    "amount": {
                      "$ref": "#/components/schemas/Money",
                      "description": "Tax amount"
                    },
                    "taxCode": {
                      "type": "string",
                      "description": "Tax code"
                    }
                  }
                }
              }
            }
          },
          "transactionDate": {
            "$ref": "#/components/schemas/DateModel",
            "description": "Transaction date"
          },
          "refundInfo": {
            "type": "object",
            "description": "Refund info",
            "required": [
              "refundAmount"
            ],
            "properties": {
              "refundAmount": {
                "$ref": "#/components/schemas/FareAmount",
                "description": "Amount refunded if cancelled"
              },
              "refundTaxAmount": {
                "$ref": "#/components/schemas/FareAmount",
                "description": "Amount of tax refunded if cancelled",
                "deprecated": true,
                "x-sunset": "2026-07-01"
              },
              "refundDate": {
                "$ref": "#/components/schemas/DateModel",
                "description": "Refund transaction date"
              },
              "penalty": {
                "$ref": "#/components/schemas/FareAmount",
                "description": "Refund penalty"
              },
              "refundVoucher": {
                "$ref": "#/components/schemas/Voucher",
                "description": "Refund voucher details."
              }
            }
          }
        }
      },
      "CostCenter": {
        "type": "object",
        "title": "CostCenter",
        "description": "Cost center details.",
        "required": [
          "id",
          "name"
        ],
        "properties": {
          "id": {
            "$ref": "#/components/schemas/CostCenterId"
          },
          "name": {
            "type": "string",
            "example": "CostCenter"
          },
          "externalId": {
            "type": "string",
            "example": "external-id"
          }
        }
      },
      "CostCenterId": {
        "type": "object",
        "title": "Cost center id.",
        "required": [
          "id"
        ],
        "properties": {
          "id": {
            "type": "string",
            "example": "731ccbca-0415-6fe1-d235-c324dfbe7423"
          }
        }
      },
      "CounterLocation": {
        "type": "string",
        "title": "CounterLocation",
        "description": "Rental car counter location.",
        "enum": [
          "UNKNOWN_COUNTER",
          "NON_AIRPORT_LOCATION",
          "IN_TERMINAL",
          "OFF_AIRPORT_RENTAL_SHUTTLE",
          "IN_TERMINAL_RENTAL_SHUTTLE",
          "ON_AIRPORT_RENTAL_SHUTTLE",
          "ON_AIRPORT_AIRPORT_SHUTTLE",
          "CALL_FOR_SHUTTLE",
          "TWO_SHUTTLES_AIRPORT_AND_RENTAL"
        ],
        "example": "OFF_AIRPORT_RENTAL_SHUTTLE"
      },
      "CovidTestingAmenity": {
        "type": "object",
        "title": "CovidTestingAmenity",
        "description": "Covid testing amenity properties.",
        "properties": {
          "displayText": {
            "type": "string",
            "example": "No COVID-19 test required"
          },
          "covidTestingDescription": {
            "type": "string",
            "example": "A negative COVID-19 test is not required for this flight; check with the airline for possible destination requirements or other restrictions."
          },
          "covidTestingAttrDescription": {
            "type": "string"
          }
        }
      },
      "CovidTestingAmenityWrapper": {
        "type": "object",
        "title": "CovidTestingAmenityWrapper",
        "properties": {
          "covidTestingAmenity": {
            "$ref": "#/components/schemas/CovidTestingAmenity"
          }
        }
      },
      "CreatedMco": {
        "title": "CreatedMco",
        "type": "object",
        "properties": {
          "airline": {
            "type": "string",
            "description": "Code of the airline for which mco is created."
          },
          "fare": {
            "$ref": "#/components/schemas/FareAmount"
          },
          "mcoNumber": {
            "type": "string",
            "description": "Number of the mco created."
          },
          "issuedDate": {
            "$ref": "#/components/schemas/DateTimeLocal"
          },
          "isMcoVoided": {
            "type": "boolean",
            "description": "Whether the MCO was voided or not",
            "example": false
          }
        }
      },
      "CreatedVia": {
        "title": "CreatedViaEnum",
        "type": "string",
        "description": "Indicates the source of creation of PNR, like SHELL, OBT, etc.",
        "readOnly": true,
        "enum": [
          "OFFLINE",
          "OBT",
          "SHELL",
          "PASSIVE",
          "API"
        ]
      },
      "Credit": {
        "type": "object",
        "title": "Credit",
        "required": [
          "ticketNumber",
          "ticketType",
          "sourcePnr",
          "totalFare",
          "passengerName",
          "segmentsAvailable",
          "type",
          "airlineInfo",
          "traveler",
          "source",
          "unusedCreditPcc",
          "pnrOwningPcc"
        ],
        "properties": {
          "type": {
            "type": "string",
            "description": "Payment source type. Should be set to CREDIT for unused credit details."
          },
          "pnrOwningPcc": {
            "type": "string",
            "description": "PCC the PNR was created on."
          },
          "unusedCreditPcc": {
            "type": "string",
            "description": "PCC the credit was issued on."
          },
          "departureCountry": {
            "type": "string",
            "description": "3 letter country code of the departure country associated with the original ticket.",
            "example": "USA"
          },
          "arrivalCountry": {
            "type": "string",
            "description": "3 letter country code of the arrival country associated with the original ticket.",
            "example": "USA"
          },
          "ticketType": {
            "type": "string",
            "description": "Type of credit.",
            "enum": [
              "TICKET_TYPE_UNKNOWN",
              "ETICKET",
              "MCO"
            ]
          },
          "departureDate": {
            "description": "Date for the departure of the first flight associated with the unused credit.",
            "$ref": "#/components/schemas/DateTimeOffset"
          },
          "segmentsAvailable": {
            "type": "string",
            "description": "Whether all segments are unused or some have already been used.",
            "enum": [
              "UNKNOWN",
              "ALL_OPEN",
              "PARTIAL",
              "OTHER"
            ]
          },
          "traveler": {
            "description": "Information about the traveler for which the credit should be redeemed.",
            "$ref": "#/components/schemas/AirRequestTravelerInfo"
          },
          "passengerName": {
            "description": "Name of the passenger associated with the credit.",
            "$ref": "#/components/schemas/Name"
          },
          "airlineInfo": {
            "description": "Airline info with airline name and code",
            "$ref": "#/components/schemas/AirlineInfo"
          },
          "totalFare": {
            "description": "Total airfare associated with the original ticket.",
            "$ref": "#/components/schemas/Money"
          },
          "issueDate": {
            "description": "Issue date for the unused credit.",
            "$ref": "#/components/schemas/DateTimeOffset"
          },
          "expiryDate": {
            "description": "Expiry date for the unused credit.",
            "$ref": "#/components/schemas/DateTimeOffset"
          },
          "source": {
            "$ref": "#/components/schemas/ThirdPartySource",
            "default": "SABRE",
            "description": "Source of unused credit e.g. Sabre, NDC etc."
          },
          "sourcePnr": {
            "type": "string",
            "description": "PNR number corresponding to third party through which booking was made.",
            "example": "MC5ONS"
          },
          "flightIds": {
            "type": "array",
            "description": "ID of the flights on which this credit applies.",
            "minItems": 1,
            "items": {
              "type": "string"
            }
          },
          "ticketNumber": {
            "type": "string",
            "description": "Ticket number for the ticket that was converted into an unused credit.",
            "example": "5267779139217"
          }
        },
        "x-ignoreBreakingChanges": [
          "Credit->pnrOwningPcc",
          "Credit->unusedCreditPcc",
          "Credit->source"
        ]
      },
      "CreditCardAccess": {
        "type": "object",
        "title": "CreditCardAccess",
        "description": "Access type for cards to check who in the organization has permission to use it",
        "required": [
          "accessType",
          "entityIds"
        ],
        "properties": {
          "accessType": {
            "$ref": "#/components/schemas/CreditCardAccessType"
          },
          "entityIds": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Holds the ids for for all users who can access the card or organization id"
          },
          "entities": {
            "type": "array",
            "description": "A list of cardAccessEntity consisting of central card access level if present and entity id.",
            "items": {
              "$ref": "#/components/schemas/CardAccessEntity"
            }
          }
        }
      },
      "CreditCardAccessType": {
        "title": "CreditCardAccessType",
        "type": "string",
        "description": "Identifies the different ways the card can be used across an organization",
        "enum": [
          "UNKNOWN_TYPE",
          "CENTRALISED",
          "INDIVIDUAL",
          "PERSONAL",
          "TMC",
          "APPLICATION",
          "ITINERARY",
          "EVENTS",
          "TRAVEL_ARRANGER_MANAGED",
          "COMPANY_TRAVEL_ARRANGER_MANAGED",
          "EVENT_TEMPLATE"
        ],
        "x-ignoreBreakingChanges": [
          "CreditCardAccessType->EVENT_TEMPLATE"
        ]
      },
      "CreditStatus": {
        "type": "string",
        "description": "Status of the credit.",
        "enum": [
          "STATUS_UNKNOWN",
          "OPEN",
          "USED",
          "RESERVED"
        ],
        "x-ignoreBreakingChanges": [
          "CreditStatus->RESERVED"
        ]
      },
      "CreditUsageType": {
        "type": "string",
        "description": "Usage type of the credit.",
        "enum": [
          "CREDIT_USAGE_TYPE_UNKNOWN",
          "COMPANY",
          "PERSONAL"
        ]
      },
      "CustomField": {
        "type": "object",
        "title": "CustomField",
        "description": "The custom field containing type, externalId and description",
        "required": [
          "id",
          "type",
          "description"
        ],
        "properties": {
          "id": {
            "type": "string",
            "description": "Meeting id or budget id based on custom field type."
          },
          "type": {
            "$ref": "#/components/schemas/CustomFieldType"
          },
          "description": {
            "type": "string",
            "description": "Description of the custom Field",
            "example": "GLOBAL OFFSITE 2022"
          }
        }
      },
      "CustomFieldLocation": {
        "title": "CustomFieldLocation",
        "description": "Display the custom fields in all these locations.",
        "type": "string",
        "enum": [
          "POLICY_APPROVAL_EMAIL",
          "PNR_EMAIL",
          "TRIP_EMAIL"
        ],
        "example": "POLICY_APPROVAL_EMAIL"
      },
      "CustomFieldMatchConditions": {
        "type": "object",
        "title": "CustomFieldMatchConditions",
        "description": "Conditions to select the custom field for given context.",
        "properties": {
          "travelerConditions": {
            "$ref": "#/components/schemas/TravelerMatchConditions"
          },
          "travelTypes": {
            "type": "array",
            "description": "Travel types to match.",
            "items": {
              "$ref": "#/components/schemas/TravelType"
            }
          },
          "travelRegionTypes": {
            "type": "array",
            "description": "Travel region types to match.",
            "items": {
              "$ref": "#/components/schemas/TravelRegionType"
            }
          },
          "tripUsageTypes": {
            "type": "array",
            "description": "Trip usage types to match. If empty, all trip usage types will be matched.",
            "items": {
              "$ref": "#/components/schemas/TripUsageType"
            }
          }
        }
      },
      "CustomFieldOptionsParam": {
        "type": "string",
        "title": "CustomFieldOptionsParam",
        "enum": [
          "COST_CENTER",
          "LEGAL_ENTITY",
          "OFFICE",
          "DEPARTMENT"
        ],
        "description": "Parameter to form options for the custom field.",
        "example": "COST_CENTER"
      },
      "CustomFieldResponsesPerEntity": {
        "type": "object",
        "title": "CustomFieldResponsesPerEntity",
        "description": "Custom field responses per entity.",
        "required": [
          "entity",
          "selectedResponses"
        ],
        "x-ignoreBreakingChanges": [
          "CustomFieldResponsesPerEntity->selectedResponses",
          "TripApi.yaml->SelectedCustomFieldResponseInfo"
        ],
        "properties": {
          "entity": {
            "$ref": "#/components/schemas/EntityV3"
          },
          "selectedResponses": {
            "type": "array",
            "description": "The list of responses that are selected by user or auto populated.",
            "items": {
              "$ref": "#/components/schemas/CustomFieldV3Response"
            }
          }
        }
      },
      "CustomFieldSelectedOption": {
        "type": "object",
        "title": "CustomFieldSelectedOption",
        "description": "Selected response for the custom field.",
        "required": [
          "name"
        ],
        "properties": {
          "name": {
            "type": "string",
            "description": "Value of the selection"
          },
          "translatedName": {
            "type": "string",
            "description": "Translated value of the selection"
          },
          "description": {
            "type": "string",
            "description": "Description of the selection"
          },
          "translatedDescription": {
            "type": "string",
            "description": "Translated description of the selection"
          },
          "additionalUserInput": {
            "type": "string",
            "description": "Additional user input"
          },
          "additionalInfos": {
            "type": "array",
            "description": "Actual values of the additional infos",
            "items": {
              "type": "string"
            }
          },
          "additionalInfoConfigs": {
            "type": "array",
            "description": "Additional info configs for the selected option",
            "items": {
              "$ref": "#/components/schemas/AdditionalInfo"
            }
          }
        }
      },
      "CustomFieldType": {
        "type": "string",
        "description": "The type of custom field.",
        "enum": [
          "QUESTION",
          "MEETING",
          "BUDGET",
          "BREX_TOKEN"
        ],
        "default": "QUESTION"
      },
      "CustomFieldV3Response": {
        "type": "object",
        "title": "CustomFieldV3Response",
        "description": "Custom field responses.",
        "required": [
          "fieldId",
          "armId",
          "selectedOptions"
        ],
        "properties": {
          "fieldId": {
            "type": "string",
            "format": "uuid",
            "description": "Custom field id"
          },
          "fieldName": {
            "type": "string",
            "description": "Name of the custom field"
          },
          "armId": {
            "type": "string",
            "format": "uuid",
            "description": "Arm id which is applicable"
          },
          "includeLocations": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/IncludeLocation"
            }
          },
          "selectedOptions": {
            "type": "array",
            "description": "The list of options that are selected by user or auto populated.",
            "items": {
              "$ref": "#/components/schemas/CustomFieldSelectedOption"
            }
          }
        }
      },
      "DateModel": {
        "title": "Date",
        "description": "Date in ISO 8601 standard.",
        "type": "object",
        "required": [
          "iso8601"
        ],
        "properties": {
          "iso8601": {
            "type": "string",
            "pattern": "^\\d{4}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])$",
            "example": "2017-07-21"
          }
        }
      },
      "DateRange": {
        "type": "object",
        "description": "Date range within which the virtual card can be charged.",
        "required": [
          "startDate",
          "endDate"
        ],
        "properties": {
          "startDate": {
            "$ref": "#/components/schemas/DateTimeLocal"
          },
          "endDate": {
            "$ref": "#/components/schemas/DateTimeLocal"
          }
        }
      },
      "DateTimeLocal": {
        "title": "DateTimeLocal",
        "description": "Local date and time in ISO 8601 format.",
        "type": "object",
        "required": [
          "iso8601"
        ],
        "properties": {
          "iso8601": {
            "type": "string",
            "pattern": "^\\d{4}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])T([01][0-9]|2[0-4]):([0-5][0-9])(:([0-5][0-9]))?$",
            "example": "2017-07-21T17:32"
          }
        }
      },
      "DateTimeLocalWithZone": {
        "title": "DateTimeLocalWithZone",
        "description": "Local date and time represented in the ISO 8601 standard.",
        "type": "object",
        "required": [
          "iso8601"
        ],
        "properties": {
          "iso8601": {
            "type": "string",
            "pattern": "^\\d{4}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])T([01][0-9]|2[0-4]):([0-5][0-9])(:([0-5][0-9]))?$",
            "example": "2017-07-21T17:32"
          },
          "zoneId": {
            "type": "string",
            "description": "Zone Id for the date time string.",
            "example": "Europe/Paris"
          }
        }
      },
      "DateTimeOffset": {
        "title": "DateTimeOffset",
        "description": "ISO8601 UTC Date Time",
        "type": "object",
        "required": [
          "iso8601"
        ],
        "properties": {
          "iso8601": {
            "type": "string",
            "pattern": "^\\d{4}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])T([01][0-9]|2[0-4]):([0-5][0-9])(:([0-5][0-9]))?(Z|([+-](0[0-9]|1[0-4]):([0-5][0-9])))$",
            "example": "2017-07-21T17:32Z"
          }
        }
      },
      "DateTimeRange": {
        "type": "object",
        "properties": {
          "min": {
            "$ref": "#/components/schemas/DateTimeLocal",
            "description": "Minimum value - inclusive."
          },
          "max": {
            "$ref": "#/components/schemas/DateTimeLocal",
            "description": "Maximum value - inclusive."
          }
        }
      },
      "DeckLevel": {
        "type": "string",
        "description": "The deck level of the rail.",
        "enum": [
          "UPPER_DECK",
          "LOWER_DECK"
        ],
        "example": "UPPER_DECK"
      },
      "Department": {
        "type": "object",
        "title": "Department",
        "description": "Department details.",
        "required": [
          "id",
          "name"
        ],
        "properties": {
          "id": {
            "$ref": "#/components/schemas/DepartmentId"
          },
          "name": {
            "type": "string",
            "example": "IT Department"
          },
          "externalId": {
            "type": "string",
            "description": "External id of the department",
            "example": "department-ext-id"
          },
          "employeeCount": {
            "type": "integer",
            "format": "int32",
            "description": "Count of employees in the department",
            "example": 57
          }
        }
      },
      "DepartmentId": {
        "type": "object",
        "title": "DepartmentId",
        "description": "Department id.",
        "required": [
          "id"
        ],
        "properties": {
          "id": {
            "type": "string",
            "example": "631ccbcf-9414-5fe0-c234-b324dfbe7422"
          }
        }
      },
      "DepartmentV2": {
        "type": "object",
        "title": "DepartmentV2",
        "description": "Department details.",
        "required": [
          "id",
          "name"
        ],
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "name": {
            "type": "string",
            "description": "Name of the department",
            "example": "IT Department"
          },
          "externalId": {
            "type": "string",
            "description": "External id of the department",
            "example": "department-ext-id"
          }
        }
      },
      "Dimensions": {
        "type": "object",
        "title": "Dimensions",
        "description": "Image dimensions ie width and height.",
        "properties": {
          "height": {
            "type": "integer",
            "format": "int32",
            "example": 120
          },
          "width": {
            "type": "integer",
            "format": "int32",
            "example": 240
          }
        }
      },
      "DirectBilling2": {
        "title": "DirectBilling",
        "type": "object",
        "description": "Metadata for Direct Billing",
        "required": [
          "vendorId"
        ],
        "properties": {
          "vendorId": {
            "type": "string",
            "description": "Unique vendor id/code",
            "example": "ZI"
          },
          "directBillingCode": {
            "type": "string",
            "description": "Direct billing code provided by the vendor",
            "example": "123456"
          }
        }
      },
      "DirectBillingWrapper2": {
        "type": "object",
        "title": "DirectBillingWrapper",
        "description": "Wrapper for DirectBilling metadata",
        "required": [
          "directBilling"
        ],
        "properties": {
          "directBilling": {
            "$ref": "#/components/schemas/DirectBilling2"
          }
        }
      },
      "DisabledReason": {
        "type": "string",
        "description": "Reason why the trip is disabled if applicable.",
        "enum": [
          "MAX_BOOKINGS_EXCEEDED",
          "TRIP_EXPIRED"
        ]
      },
      "Document": {
        "type": "object",
        "title": "Document",
        "description": "Document details.",
        "required": [
          "url",
          "documentId",
          "documentMetadata"
        ],
        "properties": {
          "url": {
            "type": "string",
            "description": "S3 location of the document.",
            "example": "https://s3.amazonaws.com/bucket-name/folder-name/file-name"
          },
          "documentId": {
            "type": "string",
            "format": "uuid",
            "description": "Unique identifier of the document.",
            "example": "f49d00fe-1eda-4304-ba79-a980f565281d"
          },
          "documentMetadata": {
            "$ref": "#/components/schemas/DocumentMetadata"
          }
        }
      },
      "DocumentMetadata": {
        "title": "DocumentMetadata",
        "description": "Metadata related to document.",
        "type": "object",
        "required": [
          "documentType",
          "entityType",
          "entityId",
          "entityMetadata",
          "name"
        ],
        "properties": {
          "documentType": {
            "$ref": "#/components/schemas/DocumentType"
          },
          "entityType": {
            "$ref": "#/components/schemas/EntityType"
          },
          "entityId": {
            "type": "string",
            "description": "Entity Id for the given entity type.",
            "example": "123124"
          },
          "entityMetadata": {
            "$ref": "#/components/schemas/EntityMetadata"
          },
          "name": {
            "type": "string",
            "description": "Document name.",
            "example": "BoardingPass.pdf"
          }
        }
      },
      "DocumentType": {
        "title": "DocumentType",
        "description": "Document type.",
        "type": "string",
        "enum": [
          "BOARDING_PASS",
          "CONFIRMATION",
          "INVOICE",
          "VISA",
          "MISCELLANEOUS",
          "OTHERS",
          "TASK_PROCESSOR",
          "EVENT_COVER_IMAGE",
          "LOGO_IMAGE"
        ],
        "example": "VISA",
        "x-ignoreBreakingChanges": [
          "DocumentType->LOGO_IMAGE"
        ]
      },
      "DoubleListWrapper": {
        "type": "object",
        "title": "DoubleListWrapper",
        "properties": {
          "dList": {
            "type": "array",
            "items": {
              "type": "number",
              "format": "double"
            }
          }
        }
      },
      "DoubleRange": {
        "type": "object",
        "properties": {
          "min": {
            "type": "number",
            "format": "double",
            "description": "Minimum value - inclusive."
          },
          "max": {
            "type": "number",
            "format": "double",
            "description": "Maximum value - inclusive."
          }
        }
      },
      "DoubleRangeWrapper": {
        "type": "object",
        "title": "DoubleRangeWrapper",
        "properties": {
          "dRange": {
            "$ref": "#/components/schemas/DoubleRange"
          }
        }
      },
      "DoubleWrapper": {
        "type": "object",
        "title": "DoubleWrapper",
        "properties": {
          "d": {
            "type": "number",
            "format": "double"
          }
        }
      },
      "Dpan": {
        "type": "object",
        "title": "Dpan",
        "description": "Object to pass through dpan payment source details through the api call.",
        "required": [
          "type",
          "cardDetails"
        ],
        "properties": {
          "type": {
            "type": "string",
            "description": "Payment source type. Should be set to DPAN for card details."
          },
          "cardDetails": {
            "$ref": "#/components/schemas/CardDetails"
          }
        }
      },
      "Duration": {
        "type": "object",
        "title": "Duration",
        "description": "Represents a duration of time with specific units of time.",
        "properties": {
          "iso8601": {
            "description": "Durations define the amount of intervening time in a time interval and are represented by the\nformat P[n]Y[n]M[n]DT[n]H[n]M[n]S.\nThe [n] is replaced by the value for each of the date and time elements that follow the [n].\nLeading zeros are not required. The capital letters P, Y, M, W, D, T, H, M, and S are\ndesignators for each of the date and time elements and are not replaced. P is the duration\ndesignator (for period) placed at the start of the duration representation.\nY is the year designator.\nM is the month designator.\nW is the week designator.\nD is the day designator.\nT is the time designator.\nH is the hour designator.\nM is the minute designator.\nS is the second designator and can include decimal digits with arbitrary precision.\n",
            "type": "string",
            "example": "PT19H55M"
          }
        }
      },
      "ElectricVehicle": {
        "type": "string",
        "title": "ElectricVehicle",
        "description": "Whether the vehicle is electric.",
        "enum": [
          "UNKNOWN_EV",
          "YES",
          "NO"
        ],
        "example": "YES"
      },
      "EmailBucketType": {
        "type": "string",
        "title": "EmailBucketType",
        "description": "Email bucket type.",
        "enum": [
          "BOOKING_CONFIRMATIONS",
          "BOOKING_CHANGES",
          "FLIGHT_UPDATES",
          "APPROVAL_REQUESTS",
          "APPROVAL_UPDATES",
          "REMINDERS",
          "INVOICE_UPDATES"
        ],
        "x-ignoreBreakingChanges": [
          "EmailBucketType->INVOICE_UPDATES"
        ],
        "example": "BOOKING_CONFIRMATIONS"
      },
      "EmergencyContact": {
        "type": "object",
        "title": "EmergencyContact",
        "description": "Emergency contact information.",
        "required": [
          "name",
          "phoneNumbers"
        ],
        "properties": {
          "name": {
            "type": "string",
            "description": "Full name of contact.",
            "example": "John Smith"
          },
          "email": {
            "type": "string",
            "description": "Email address of contact.",
            "format": "email",
            "example": "emergency-contact@email.com"
          },
          "designation": {
            "deprecated": true,
            "x-sunset": "2026-07-01",
            "type": "string",
            "description": "Job title of contact.",
            "example": "MANAGER"
          },
          "relation": {
            "type": "string",
            "description": "Relation of contact to user.",
            "example": "SPOUSE",
            "enum": [
              "RELATION_UNKNOWN",
              "SPOUSE",
              "PARENT",
              "SIBLING",
              "CHILD",
              "FRIEND",
              "RELATIVE",
              "COLLEAGUE",
              "OTHER"
            ]
          },
          "phoneNumbers": {
            "type": "array",
            "description": "Phone numbers of contact.",
            "items": {
              "$ref": "#/components/schemas/PhoneNumber"
            }
          },
          "preferredLanguage": {
            "type": "string",
            "description": "Language preferred by user.",
            "example": "en-US"
          }
        }
      },
      "EmergencyContactInfo": {
        "type": "object",
        "title": "EmergencyContactInfo",
        "description": "Emergency contact information.",
        "required": [
          "email"
        ],
        "properties": {
          "address": {
            "$ref": "#/components/schemas/PostalAddress"
          },
          "designation": {
            "type": "string",
            "example": "MANAGER"
          },
          "email": {
            "type": "string",
            "format": "email",
            "example": "emergency-contact@email.com"
          },
          "name": {
            "$ref": "#/components/schemas/Name"
          },
          "phoneNumber": {
            "$ref": "#/components/schemas/PhoneNumber"
          },
          "userOrgId": {
            "$ref": "#/components/schemas/UserOrgId"
          }
        }
      },
      "EngineType": {
        "type": "string",
        "title": "EngineType",
        "description": "Engine types.",
        "enum": [
          "UNKNOWN_ENGINE",
          "PETROL",
          "DIESEL",
          "ELECTRIC",
          "CNG",
          "HYBRID",
          "HYDROGEN",
          "MULTI_FUEL",
          "ETHANOL"
        ],
        "example": "PETROL"
      },
      "EntertainmentAmenity": {
        "type": "object",
        "title": "EntertainmentAmenity",
        "description": "The properties of an entertainment amenity.",
        "properties": {
          "displayText": {
            "type": "string",
            "example": "Seatback on-demand video"
          },
          "entertainmentType": {
            "type": "string",
            "example": "on-demand"
          },
          "cost": {
            "type": "string",
            "example": "free"
          }
        }
      },
      "EntertainmentAmenityWrapper": {
        "type": "object",
        "title": "EntertainmentAmenityWrapper",
        "properties": {
          "entertainmentAmenity": {
            "$ref": "#/components/schemas/EntertainmentAmenity"
          }
        }
      },
      "EntityAnswer": {
        "type": "object",
        "properties": {
          "entityId": {
            "type": "string",
            "description": "The unique ID for the question."
          },
          "userInput": {
            "type": "string",
            "description": "The text input given by user (if any)."
          },
          "itemIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "description": "The id/enum value corresponding to the option chosen by the user as\nanswer.\n"
          },
          "answers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AnswerPair"
            }
          },
          "customFieldType": {
            "$ref": "#/components/schemas/CustomFieldType"
          },
          "questionDisplayText": {
            "type": "string",
            "description": "The question text to be displayed to the user."
          },
          "question": {
            "$ref": "#/components/schemas/Question"
          }
        }
      },
      "EntityId": {
        "type": "object",
        "description": "Identifier of an object",
        "required": [
          "id"
        ],
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "example": "b93dc51f-12dd-46c7-b7d6-1cb12cd3f5b3"
          }
        }
      },
      "EntityMetadata": {
        "title": "EntityMetadata",
        "description": "Metadata for associated entity of document.",
        "type": "object",
        "oneOf": [
          {
            "$ref": "#/components/schemas/PnrMetadataWrapper"
          },
          {
            "$ref": "#/components/schemas/EventMetadataWrapper"
          }
        ]
      },
      "EntityType": {
        "title": "EntityType",
        "description": "Entity type against which the document is to uploaded.",
        "type": "string",
        "enum": [
          "PNR",
          "COMPANY",
          "AIR_ITINERARY",
          "EVENT",
          "LOCATION_IMAGE",
          "AIR_COMMISSION_CONTRACT"
        ],
        "example": "PNR",
        "x-ignoreBreakingChanges": [
          "EntityType->TRIP",
          "EntityType->TICKETING_ERROR"
        ]
      },
      "EntityTypeV3": {
        "type": "string",
        "title": "EntityTypeV3",
        "description": "The type at which the field will be stored.",
        "enum": [
          "PNR",
          "TICKET"
        ],
        "example": "TICKET"
      },
      "EntityV3": {
        "type": "object",
        "title": "EntityV3",
        "description": "The entity.",
        "required": [
          "type",
          "id"
        ],
        "properties": {
          "type": {
            "$ref": "#/components/schemas/EntityTypeV3"
          },
          "id": {
            "type": "string",
            "description": "Identifier of the entity"
          }
        }
      },
      "Equipment": {
        "type": "object",
        "title": "Equipment",
        "description": "The type of the aircraft equipment",
        "properties": {
          "code": {
            "type": "string",
            "description": "Aircraft equipment code",
            "example": "777"
          },
          "type": {
            "type": "string",
            "description": "Code representing the type of the equipment",
            "example": "N",
            "deprecated": true,
            "x-sunset": "2026-07-01"
          },
          "name": {
            "type": "string",
            "description": "The name of the flight aircraft type",
            "example": "Boeing 737-800"
          }
        }
      },
      "EventAllowedBookingType": {
        "title": "EventAllowedBookingType",
        "description": "Allowed booking type for the event",
        "type": "string",
        "enum": [
          "AIR",
          "HOTEL",
          "CAR",
          "RAIL"
        ]
      },
      "EventBookingGuideline": {
        "title": "EventBookingGuideline",
        "description": "Booking details allowed for the event",
        "type": "object",
        "oneOf": [
          {
            "$ref": "#/components/schemas/AirBookingGuidelineWrapper"
          },
          {
            "$ref": "#/components/schemas/HotelBookingGuidelineWrapper"
          },
          {
            "$ref": "#/components/schemas/CarBookingGuidelineWrapper"
          },
          {
            "$ref": "#/components/schemas/RailBookingGuidelineWrapper"
          }
        ],
        "properties": {
          "numGuestsAllowed": {
            "type": "integer",
            "description": "Number of guests allowed to be booked for this booking",
            "example": 1
          }
        }
      },
      "EventBookingWindow": {
        "title": "EventBookingWindow",
        "description": "Event booking window",
        "type": "object",
        "required": [
          "startDateTime",
          "endDateTime"
        ],
        "properties": {
          "startDateTime": {
            "$ref": "#/components/schemas/DateTimeLocal"
          },
          "endDateTime": {
            "$ref": "#/components/schemas/DateTimeLocal"
          }
        }
      },
      "EventEntityMetadata": {
        "title": "EventEntityMetadata",
        "description": "Metadata when document is associated to an event.",
        "type": "object",
        "properties": {
          "address": {
            "$ref": "#/components/schemas/PostalAddress"
          }
        }
      },
      "EventInfo": {
        "type": "object",
        "description": "Queue event related information.",
        "properties": {
          "id": {
            "description": "Unique task event ID.",
            "type": "string",
            "format": "uuid",
            "example": "065c77fa-900c-11ec-9eeb-0242ac170003"
          },
          "priority": {
            "$ref": "#/components/schemas/Priority"
          },
          "queueNumber": {
            "deprecated": true,
            "x-sunset": "2026-07-01",
            "description": "Queue Number.",
            "type": "integer",
            "format": "int32",
            "example": 10
          },
          "queueDescription": {
            "deprecated": true,
            "x-sunset": "2026-07-01",
            "description": "Description of the queue.",
            "type": "string",
            "example": "PNR modified by airline that contains corporate travel policy"
          },
          "type": {
            "type": "string",
            "readOnly": true,
            "example": "TAW - Tickets to print"
          },
          "description": {
            "description": "Description of the event.",
            "type": "string",
            "example": "PNR modified by airline that contains corporate travel policy"
          },
          "metadata": {
            "description": "Metadata of the event.",
            "type": "string",
            "example": "Q:20"
          },
          "taskMetadata": {
            "$ref": "#/components/schemas/TaskMetadata"
          },
          "createdAt": {
            "$ref": "#/components/schemas/DateTimeOffset"
          }
        }
      },
      "EventLocation": {
        "title": "EventLocation",
        "description": "Location for an event",
        "type": "object",
        "properties": {
          "address": {
            "$ref": "#/components/schemas/PostalAddress"
          },
          "coordinates": {
            "$ref": "#/components/schemas/Latlng"
          }
        }
      },
      "EventMetadataWrapper": {
        "type": "object",
        "title": "EventMetadataWrapper",
        "properties": {
          "eventMetadata": {
            "$ref": "#/components/schemas/EventEntityMetadata"
          }
        }
      },
      "EventRsvpResponse": {
        "title": "EventRsvpResponse",
        "type": "object",
        "description": "Event rsvp response",
        "properties": {
          "air": {
            "$ref": "#/components/schemas/AirRsvpResponse"
          },
          "hotel": {
            "$ref": "#/components/schemas/HotelRsvpResponse"
          },
          "car": {
            "$ref": "#/components/schemas/CarRsvpResponse"
          },
          "rail": {
            "$ref": "#/components/schemas/RailRsvpResponse"
          }
        }
      },
      "EventRsvpState": {
        "title": "EventRsvpState",
        "description": "Allowed event rsvp states for a user",
        "type": "string",
        "enum": [
          "ADDED",
          "INVITED",
          "INVITE_ACCEPTED",
          "INVITE_DECLINED",
          "REMOVED"
        ]
      },
      "EventRunningStatus": {
        "title": "EventRunningStatus",
        "description": "Running status of an event",
        "type": "string",
        "enum": [
          "IN_PROGRESS",
          "UPCOMING",
          "COMPLETED"
        ],
        "example": "UPCOMING"
      },
      "EventStatus": {
        "title": "EventStatus",
        "description": "Status of an event",
        "type": "string",
        "enum": [
          "DRAFT",
          "PUBLISH",
          "CANCELLED"
        ],
        "example": "DRAFT"
      },
      "EventType": {
        "title": "EventType",
        "description": "Type of an event",
        "type": "string",
        "enum": [
          "GENERIC",
          "PROGRAM",
          "PROGRAM_SESSION",
          "PROGRAM_TRIP"
        ],
        "example": "GENERIC"
      },
      "EventUserInfo": {
        "title": "EventUserInfo",
        "description": "User information for the event",
        "type": "object",
        "required": [
          "userId",
          "name"
        ],
        "properties": {
          "userId": {
            "$ref": "#/components/schemas/UserId"
          },
          "email": {
            "type": "string",
            "description": "Business email of the user",
            "example": "a@spotnana.com"
          },
          "name": {
            "$ref": "#/components/schemas/Name"
          }
        }
      },
      "EventUserRsvp": {
        "title": "EventUserRsvp",
        "type": "object",
        "description": "User rsvp for the event",
        "properties": {
          "userId": {
            "$ref": "#/components/schemas/UserId"
          },
          "eventRsvpState": {
            "$ref": "#/components/schemas/EventRsvpState"
          },
          "eventRsvpResponse": {
            "$ref": "#/components/schemas/EventRsvpResponse"
          },
          "invitedAt": {
            "$ref": "#/components/schemas/DateTimeOffset"
          },
          "airBookingStatus": {
            "$ref": "#/components/schemas/BookingStatusType"
          },
          "railBookingStatus": {
            "$ref": "#/components/schemas/BookingStatusType"
          },
          "carBookingStatus": {
            "$ref": "#/components/schemas/BookingStatusType"
          },
          "hotelBookingStatus": {
            "$ref": "#/components/schemas/BookingStatusType"
          }
        }
      },
      "ExchangePolicy": {
        "type": "object",
        "description": "Information about the exchange policy.",
        "properties": {
          "description": {
            "type": "string",
            "description": "Text describing the exchange policy.",
            "example": "Change allowed for free"
          },
          "fee": {
            "$ref": "#/components/schemas/Money"
          },
          "assessmentType": {
            "$ref": "#/components/schemas/AssessmentType"
          },
          "isCat16": {
            "type": "boolean",
            "description": "Is source cat16",
            "example": true
          },
          "isConditional": {
            "type": "boolean",
            "description": "Is conditional",
            "example": true
          }
        }
      },
      "ExchangeTask": {
        "type": "object",
        "title": "ExchangeTask",
        "description": "Exchange task details.",
        "required": [
          "taskType",
          "exchangedTickets"
        ],
        "properties": {
          "taskType": {
            "$ref": "#/components/schemas/InternalTaskType"
          },
          "exchangedTickets": {
            "type": "array",
            "description": "List of tickets.",
            "items": {
              "$ref": "#/components/schemas/ExchangeTicket"
            }
          },
          "preBookAnswers": {
            "$ref": "#/components/schemas/PreBookAnswers"
          },
          "notes": {
            "type": "string",
            "description": "Reason/Notes for exchange.",
            "example": "Time change for ticket"
          }
        }
      },
      "ExchangeTicket": {
        "type": "object",
        "title": "ExchangeTicket",
        "description": "Exchanged Ticket details.",
        "required": [
          "originalTicketNumber",
          "exchangedSegments"
        ],
        "properties": {
          "originalTicketNumber": {
            "type": "string",
            "description": "Original Ticket number.",
            "example": "123456"
          },
          "exchangedSegments": {
            "type": "string",
            "description": "Exchanged segment numbers within a ticket.",
            "example": "1,2"
          },
          "waiverCode": {
            "type": "string",
            "description": "Waiver code.",
            "example": "WaiverCode"
          },
          "additionalFare": {
            "description": "Additional fare details for exchange.",
            "$ref": "#/components/schemas/Money"
          },
          "airlinePenalty": {
            "description": "Airline penalty details for exchange.",
            "$ref": "#/components/schemas/Money"
          },
          "additionalTaxes": {
            "description": "Additional taxes for exchange.",
            "$ref": "#/components/schemas/Money"
          }
        }
      },
      "Expiry": {
        "title": "Expiry",
        "type": "object",
        "description": "Contains the expiry of a Card.",
        "required": [
          "expiryMonth",
          "expiryYear"
        ],
        "properties": {
          "expiryMonth": {
            "type": "integer",
            "format": "int32",
            "minimum": 1,
            "maximum": 12,
            "description": "Expiry month",
            "example": 1
          },
          "expiryYear": {
            "type": "integer",
            "format": "int32",
            "description": "Expiry year",
            "minimum": 2000,
            "example": 2010
          }
        }
      },
      "ExpiryWrapper": {
        "type": "object",
        "title": "ExpiryWrapper",
        "properties": {
          "expiry": {
            "$ref": "#/components/schemas/Expiry"
          }
        }
      },
      "Expression": {
        "type": "object",
        "title": "Expression",
        "description": "Expression consisting of variables and constants which needs to be sent along with custom\nfield response.\n",
        "required": [
          "type",
          "formatExpression"
        ],
        "properties": {
          "type": {
            "type": "string",
            "example": "EXPRESSION",
            "default": "EXPRESSION"
          },
          "formatExpression": {
            "type": "string",
            "description": "The expression must be of format : `<any_text> ${expression} <any_text>`.The expression \ncan consist of a combination of variables and mathematical operations.\n Variable names must be same as VariableName Enum.\n  To define mathematical operations, the operation name should follow the format\n`math.<math_op>(arg1, arg2)`. Both `arg1` and `arg2` can be variables or constants. \nThe supported math operations (math_op) include: `add, mul, div, sub, min,\nand max`. All keywords, such as `<math_op>, math, and var` must be written in lowercase.\n",
            "example": "Result:  ${math.mul(LLF,5)}  ${ADD_COLLECT_AMOUNT}"
          },
          "variables": {
            "type": "array",
            "description": "Reference names of the variables present in the expression.",
            "deprecated": true,
            "x-sunset": "2026-07-01",
            "items": {
              "$ref": "#/components/schemas/VariableName"
            }
          }
        }
      },
      "FailureDetails": {
        "type": "object",
        "title": "FailureDetails",
        "description": "Failure details",
        "properties": {
          "failureCode": {
            "type": "string",
            "description": "failure code",
            "enum": [
              "FAILURE_CODE_UNKNOWN",
              "PAYMENT_METHOD_MISSING",
              "PAYMENT_GATEWAY_FAILURE"
            ]
          },
          "failureMessage": {
            "type": "string",
            "description": "failure message"
          }
        }
      },
      "FailureReason": {
        "type": "object",
        "title": "FailureReason",
        "description": "Contains the failure reason in case of any Failed Transaction",
        "properties": {
          "reasonCode": {
            "type": "string",
            "description": "Reason Code associated with the Failure",
            "enum": [
              "PAYMENT_METHOD_MISSING",
              "PAYMENT_GATEWAY_FAILURE"
            ],
            "example": "PAYMENT_METHOD_MISSING"
          }
        }
      },
      "FareAmount": {
        "type": "object",
        "title": "FareAmount",
        "description": "Fare amount including base fare and tax.",
        "required": [
          "base",
          "tax"
        ],
        "properties": {
          "base": {
            "description": "Base fare amount.",
            "$ref": "#/components/schemas/Money"
          },
          "tax": {
            "description": "Tax amount.",
            "$ref": "#/components/schemas/Money"
          },
          "taxBreakdown": {
            "description": "Breakdown of tax amounts.",
            "$ref": "#/components/schemas/TaxBreakdown"
          }
        }
      },
      "FareComponentDetail": {
        "type": "object",
        "title": "FareComponentDetail",
        "description": "Fare component details for this itinerary",
        "required": [
          "fareBasisCode",
          "flightIds"
        ],
        "properties": {
          "fareBasisCode": {
            "type": "string",
            "description": "Fare basis code for the booking",
            "example": "QUAJZNB3"
          },
          "tourCode": {
            "type": "string",
            "description": "Tour code applied on this fare component",
            "example": "ABC12"
          },
          "ticketDesignator": {
            "type": "string",
            "description": "Ticket designator applied on this fare component",
            "example": "ABC"
          },
          "baseFare": {
            "$ref": "#/components/schemas/Money",
            "description": "Base fare for this fare component"
          },
          "flightIds": {
            "type": "array",
            "minItems": 1,
            "items": {
              "description": "Flights to which this fare component is applicable",
              "$ref": "#/components/schemas/FlightId"
            }
          },
          "farePaxType": {
            "$ref": "#/components/schemas/PassengerType",
            "description": "The passengerType of the fare, this can be different from the passengerType of the user for which this fare is booked."
          },
          "corpAccountCode": {
            "type": "string",
            "description": "The account code which is used to get corporate negotiated price",
            "example": "WAT01"
          }
        }
      },
      "FarePref": {
        "type": "object",
        "title": "FarePref",
        "description": "Fare preferences.",
        "required": [
          "fareTypes"
        ],
        "properties": {
          "fareTypes": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "UNKNOWN_TYPE",
                "CHANGEABLE",
                "REFUNDABLE"
              ],
              "example": "CHANGEABLE"
            }
          }
        }
      },
      "FareStatistics": {
        "type": "object",
        "required": [
          "statisticsItems"
        ],
        "properties": {
          "statisticsItems": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/StatisticsItem",
              "description": "minimum/median/maximum prices of itinerary in air search response"
            }
          },
          "cheapestFares": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CheapestFareInfo",
              "description": "List of cheapest fares for the itinerary"
            }
          }
        }
      },
      "FareTypeEnum": {
        "title": "FareTypeEnum",
        "description": "Type of fare",
        "type": "string",
        "enum": [
          "PUBLISHED",
          "CORPORATE",
          "PRIVATE_MARKETED_PUBLIC",
          "PRIVATE"
        ],
        "example": "PUBLISHED"
      },
      "FeeInfo": {
        "type": "object",
        "title": "FeeInfo",
        "discriminator": {
          "propertyName": "feeType",
          "mapping": {
            "BOOKING_FEE": "#/components/schemas/BookingFeeInfo",
            "AGENT_FEE": "#/components/schemas/AgentFeeInfo"
          }
        },
        "oneOf": [
          {
            "$ref": "#/components/schemas/BookingFeeInfo"
          },
          {
            "$ref": "#/components/schemas/AgentFeeInfo"
          }
        ],
        "x-oneOfValidFrom": {
          "AgentFeeInfo": "2025-08-20"
        }
      },
      "Flight": {
        "title": "Flight",
        "description": "Flight info",
        "type": "object",
        "required": [
          "departureDateTime",
          "arrivalDateTime",
          "origin",
          "destination",
          "marketing",
          "operating"
        ],
        "properties": {
          "departureDateTime": {
            "description": "Departure date time of flight",
            "$ref": "#/components/schemas/DateTimeLocal"
          },
          "arrivalDateTime": {
            "description": "Arrival date time of flight",
            "$ref": "#/components/schemas/DateTimeLocal"
          },
          "duration": {
            "description": "Flight duration",
            "$ref": "#/components/schemas/Duration"
          },
          "flightId": {
            "type": "string",
            "description": "Unique identifier for a flight.",
            "example": "CjoKOGNsYXNzIERhdGVUaW1lTG9jYWwgewogICAgaXNvO"
          },
          "origin": {
            "type": "string",
            "description": "3 letter IATA airport code for origin",
            "pattern": "^[A-Z]{3}$",
            "example": "SFO"
          },
          "destination": {
            "type": "string",
            "description": "3 letter IATA airport code for destination",
            "pattern": "^[A-Z]{3}$",
            "example": "LHR"
          },
          "departureGate": {
            "description": "Departure gate and terminal",
            "$ref": "#/components/schemas/Gate"
          },
          "arrivalGate": {
            "description": "Arrival gate and terminal",
            "$ref": "#/components/schemas/Gate"
          },
          "marketing": {
            "description": "Marketing flight number",
            "$ref": "#/components/schemas/FlightNumber"
          },
          "operating": {
            "description": "Operating flight number",
            "$ref": "#/components/schemas/FlightNumber"
          },
          "operatingAirlineName": {
            "type": "string",
            "description": "Free text operating airline name that has to be displayed to the user if present\n",
            "example": "SKYWEST DBA UNITED EXPRESS"
          },
          "hiddenStops": {
            "type": "array",
            "description": "Stops for refueling or getting more passengers",
            "items": {
              "type": "object",
              "title": "HiddenStop",
              "required": [
                "airport",
                "arrivalDateTime",
                "departureDateTime"
              ],
              "properties": {
                "airport": {
                  "type": "string",
                  "description": "3 letter IATA airport code",
                  "pattern": "^[A-Z]{3}$",
                  "example": "LHR"
                },
                "arrivalDateTime": {
                  "description": "Stop start date time",
                  "$ref": "#/components/schemas/DateTimeLocal"
                },
                "departureDateTime": {
                  "description": "Stop end date time",
                  "$ref": "#/components/schemas/DateTimeLocal"
                },
                "duration": {
                  "description": "Stop duration",
                  "$ref": "#/components/schemas/Duration"
                }
              }
            }
          },
          "vendorConfirmationNumber": {
            "type": "string",
            "description": "Flight confirmation number",
            "example": "ABQTEJ"
          },
          "cabin": {
            "$ref": "#/components/schemas/Cabin",
            "description": "Flight cabin"
          },
          "bookingCode": {
            "type": "string",
            "description": "Flight Booking Code",
            "example": "A"
          },
          "flightStatus": {
            "$ref": "#/components/schemas/PnrStatus",
            "description": "Status of flight"
          },
          "otherStatuses": {
            "type": "array",
            "description": "Details about any duplicate flight segment. Cabin code and status of other duplicate \nsegments.\n",
            "items": {
              "type": "object",
              "title": "OtherStatus",
              "description": "Status of duplicate flights in case of upgrades",
              "required": [
                "cabin"
              ],
              "properties": {
                "cabin": {
                  "$ref": "#/components/schemas/Cabin",
                  "description": "Upgraded flight cabin"
                },
                "status": {
                  "$ref": "#/components/schemas/PnrStatus",
                  "description": "Upgraded flight status"
                }
              }
            }
          },
          "co2EmissionDetail": {
            "description": "CO2 emission info for this flight",
            "readOnly": true,
            "$ref": "#/components/schemas/CO2EmissionDetail"
          },
          "restrictions": {
            "type": "array",
            "description": "Restrictions such as seat booking, loyalty etc",
            "readOnly": true,
            "items": {
              "$ref": "#/components/schemas/FlightRestrictions"
            }
          },
          "flightUpdates": {
            "readOnly": true,
            "$ref": "#/components/schemas/FlightUpdates"
          },
          "sourceStatus": {
            "type": "string",
            "description": "Flight status code from supplier"
          },
          "equipment": {
            "$ref": "#/components/schemas/Equipment"
          },
          "distance": {
            "$ref": "#/components/schemas/Length"
          },
          "flightWaiverCodes": {
            "type": "array",
            "description": "List of waiver codes for flight",
            "readOnly": true,
            "items": {
              "$ref": "#/components/schemas/FlightWaiverCode"
            }
          },
          "amenities": {
            "type": "array",
            "description": "The amenities associated with the flight.",
            "items": {
              "$ref": "#/components/schemas/AirAmenity"
            }
          },
          "flightIndex": {
            "type": "integer",
            "description": "Index of flight in the leg",
            "example": 0
          },
          "upas": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AirUpa"
            }
          }
        }
      },
      "FlightAndLegIndex": {
        "title": "FlightAndLegIndex",
        "description": "Flight and Leg index details.",
        "properties": {
          "flightIndex": {
            "type": "integer",
            "description": "Flight index within a leg, starts from 0.",
            "example": 0
          },
          "legIndex": {
            "type": "integer",
            "description": "Leg index within a pnr, starts from 0.",
            "example": 1
          }
        }
      },
      "FlightDetailInformation": {
        "type": "object",
        "title": "FlightDetailInformation",
        "description": "This flight detail has information that is relevant in case of a flight disruption.",
        "required": [
          "departureDateTime",
          "arrivalDateTime",
          "originAirportCode",
          "destinationAirportCode"
        ],
        "properties": {
          "departureDateTime": {
            "$ref": "#/components/schemas/DateTimeLocal"
          },
          "arrivalDateTime": {
            "$ref": "#/components/schemas/DateTimeLocal"
          },
          "cabin": {
            "$ref": "#/components/schemas/Cabin"
          },
          "originAirportCode": {
            "type": "string",
            "description": "3 letter IATA airport code for origin",
            "pattern": "^[A-Z]{3}$",
            "example": "SFO"
          },
          "destinationAirportCode": {
            "type": "string",
            "description": "3 letter IATA airport code for destination",
            "pattern": "^[A-Z]{3}$",
            "example": "LHR"
          },
          "marketing": {
            "$ref": "#/components/schemas/FlightNumber"
          },
          "operating": {
            "$ref": "#/components/schemas/FlightNumber"
          }
        }
      },
      "FlightId": {
        "type": "object",
        "title": "FlightId",
        "description": "Flight identifier",
        "required": [
          "legIdx",
          "flightIdx"
        ],
        "properties": {
          "legIdx": {
            "type": "integer",
            "description": "Index of leg to which this flight belongs",
            "format": "int32",
            "example": 0,
            "minimum": 0
          },
          "flightIdx": {
            "type": "integer",
            "description": "Index of flight in it's leg",
            "format": "int32",
            "example": 0,
            "minimum": 0
          }
        }
      },
      "FlightMetadata": {
        "title": "FlightMetadata",
        "description": "Flight metadata against which document is associated.",
        "type": "object",
        "properties": {
          "flightId": {
            "type": "string",
            "description": "Unique identifier of the flight.",
            "example": "CgNERU4SA1NGTxoKNTQ1NzI5ODcxMQ"
          }
        }
      },
      "FlightMetadataWrapper": {
        "type": "object",
        "title": "FlightMetadataWrapper",
        "properties": {
          "flightMetadata": {
            "$ref": "#/components/schemas/FlightMetadata"
          }
        }
      },
      "FlightNumber": {
        "title": "FlightNumber",
        "description": "Flight number and airline code.",
        "required": [
          "airlineCode",
          "num"
        ],
        "properties": {
          "num": {
            "type": "string",
            "description": "Flight number.",
            "example": "321"
          },
          "airlineCode": {
            "type": "string",
            "description": "Two-letter IATA airline code.",
            "example": "AA"
          }
        }
      },
      "FlightRestrictions": {
        "type": "string",
        "title": "FlightRestrictions",
        "description": "Restrictions like seat booking, loyalty etc.",
        "enum": [
          "PRE_BOOKING_SEAT_NOT_ALLOWED",
          "POST_BOOKING_SEAT_NOT_ALLOWED",
          "SEAT_BOOKING_NOT_ALLOWED_DUE_TO_BRAND",
          "SEAT_BOOKING_NOT_ALLOWED",
          "SEAT_BOOKING_NOT_ALLOWED_OPEN_SEATING",
          "SEAT_NOT_GUARANTEED_WARNING",
          "SEAT_BOOKING_NOT_ALLOWED_DUE_TO_CODESHARE",
          "SUPPRESS_SEAT_LOYALTY_PRICING_WARNING"
        ],
        "example": "SEAT_BOOKING_NOT_ALLOWED_DUE_TO_BRAND"
      },
      "FlightSeatStatus": {
        "type": "string",
        "description": "Status of assigned seat.",
        "enum": [
          "CONFIRMED",
          "PENDING",
          "UNKNOWN",
          "CANCELLED"
        ],
        "example": "CONFIRMED"
      },
      "FlightUpdates": {
        "type": "object",
        "title": "FlightUpdates",
        "description": "Flight alerts like departure datetime change, gate change, etc.",
        "properties": {
          "previousDepartureDateTime": {
            "description": "Departure date time before this alert",
            "$ref": "#/components/schemas/DateTimeLocal"
          },
          "previousArrivalDateTime": {
            "description": "Arrival date time before this alert",
            "$ref": "#/components/schemas/DateTimeLocal"
          },
          "previousDepartureGate": {
            "description": "Departure gate before this alert",
            "$ref": "#/components/schemas/Gate"
          },
          "previousArrivalGate": {
            "description": "Arrival gate before this alert",
            "$ref": "#/components/schemas/Gate"
          }
        }
      },
      "FlightWaiverCode": {
        "type": "object",
        "title": "FlightWaiverCode",
        "description": "Flight waiver code information on disruption.",
        "properties": {
          "waiverCode": {
            "type": "string",
            "description": "Flight waiver code"
          },
          "firstNewTravelDate": {
            "description": "First new travel date applicable for the waiver code",
            "$ref": "#/components/schemas/DateTimeLocal"
          },
          "lastNewTravelDate": {
            "description": "Last new travel date applicable for the waiver code",
            "$ref": "#/components/schemas/DateTimeLocal"
          },
          "firstOriginalTravelDate": {
            "description": "First new travel date applicable for the waiver code",
            "$ref": "#/components/schemas/DateTimeLocal"
          },
          "lastOriginalTravelDate": {
            "description": "Last new travel date applicable for the waiver code",
            "$ref": "#/components/schemas/DateTimeLocal"
          },
          "policyLinks": {
            "type": "array",
            "description": "List of waiver codes policy link",
            "readOnly": true,
            "items": {
              "$ref": "#/components/schemas/FlightWaiverPolicyLink"
            }
          },
          "additionalInfo": {
            "type": "string",
            "description": "Textual information about waiver policies"
          }
        }
      },
      "FlightWaiverPolicyLink": {
        "type": "object",
        "title": "FlightWaiverPolicyLink",
        "description": "Flight waiver code policy link.",
        "properties": {
          "name": {
            "type": "string",
            "description": "Name of the link"
          },
          "url": {
            "type": "string",
            "description": "Url of the link"
          }
        }
      },
      "FormOfPayment": {
        "title": "Form of Payment",
        "description": "Information about form of payment to be used to charge customer",
        "type": "object",
        "required": [
          "type"
        ],
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "UNKNOWN",
              "CARD",
              "CASH",
              "TFPAY",
              "CHEQUE",
              "BREX_POINTS",
              "QANTAS_POINTS"
            ],
            "title": "PaymentType",
            "description": "Type of payment used",
            "example": "CARD",
            "deprecated": true,
            "x-sunset": "2026-07-01"
          },
          "card": {
            "description": "The payment card to be used to charge customer. This is only set if the payment type is 'CARD'",
            "$ref": "#/components/schemas/Card"
          },
          "additionalInfo": {
            "type": "string",
            "description": "Additional info to be added if payment type is 'UNKNOWN'."
          },
          "accessType": {
            "$ref": "#/components/schemas/CreditCardAccess"
          },
          "paymentMethod": {
            "$ref": "#/components/schemas/PaymentMethod",
            "description": "Payment method used to pay for this transaction"
          },
          "paymentMetadata": {
            "$ref": "#/components/schemas/PaymentMetadata"
          },
          "paymentSourceType": {
            "$ref": "#/components/schemas/PaymentSourceType"
          }
        }
      },
      "FreshFoodAmenity": {
        "type": "object",
        "title": "FreshFoodAmenity",
        "description": "Properties associated with the fresh food amenity.",
        "properties": {
          "displayText": {
            "type": "string"
          },
          "freshFoodType": {
            "type": "string"
          },
          "cost": {
            "type": "string"
          }
        }
      },
      "FreshFoodAmenityWrapper": {
        "type": "object",
        "title": "FreshFoodAmenityWrapper",
        "properties": {
          "freshFoodAmenity": {
            "$ref": "#/components/schemas/FreshFoodAmenity"
          }
        }
      },
      "FreshnessInfo": {
        "title": "FreshnessInfo",
        "type": "object",
        "description": "Information about the freshness of the data set in this PNR object. This field is only set\nwhen the PNR returned is not the latest PNR available.\n",
        "properties": {
          "latestVersionDateTime": {
            "description": "Time when the PNR information was updated in Spotnana's systems for the latest PNR\nversion available.\n",
            "$ref": "#/components/schemas/DateTimeOffset"
          },
          "returnedVersionDateTime": {
            "description": "Time when the PNR information was updated in Spotnana's systems for the PNR whose\ninformation is in this object.\n",
            "$ref": "#/components/schemas/DateTimeOffset"
          }
        }
      },
      "Gate": {
        "type": "object",
        "title": "Gate",
        "description": "Flight boarding / arrival gate",
        "properties": {
          "gate": {
            "type": "string",
            "description": "Gate number",
            "example": "1A"
          },
          "terminal": {
            "type": "string",
            "description": "Airport terminal",
            "example": "1"
          }
        }
      },
      "GatewayIdentifier": {
        "type": "object",
        "properties": {
          "gatewayId": {
            "type": "string",
            "description": "Gateway Id for which the payment method should be verified."
          },
          "gatewayType": {
            "type": "string",
            "description": "Gateway Type for of the verification gateway.",
            "enum": [
              "PAYMENT_GATEWAY_UNKNOWN",
              "STRIPE",
              "BREX",
              "RAZORPAY"
            ]
          }
        }
      },
      "GatewayInfo": {
        "type": "object",
        "title": "GatewayInfo",
        "description": "Payment gateway information",
        "oneOf": [
          {
            "$ref": "#/components/schemas/StripeInfoWrapper"
          }
        ]
      },
      "Gender": {
        "title": "Gender",
        "type": "string",
        "enum": [
          "MALE",
          "FEMALE",
          "UNSPECIFIED",
          "UNDISCLOSED"
        ],
        "example": "FEMALE"
      },
      "Grade": {
        "type": "object",
        "title": "Grade",
        "description": "Grade details.",
        "required": [
          "id",
          "name"
        ],
        "properties": {
          "employeeCount": {
            "type": "integer",
            "format": "int32",
            "description": "Count of employees in the grade",
            "example": 75
          },
          "id": {
            "$ref": "#/components/schemas/GradeId"
          },
          "name": {
            "type": "string",
            "example": "Grade"
          }
        }
      },
      "GradeId": {
        "type": "object",
        "title": "GradeId",
        "description": "Grade id.",
        "required": [
          "id"
        ],
        "properties": {
          "id": {
            "type": "string",
            "example": "831ccbcb-1416-7fe2-e236-d324dfbe7424"
          }
        }
      },
      "HoldInfo": {
        "type": "object",
        "title": "HoldInfo",
        "description": "Hold Information about the booking.",
        "required": [
          "holdDeadline"
        ],
        "properties": {
          "holdDeadline": {
            "$ref": "#/components/schemas/DateTimeOffset"
          }
        }
      },
      "Hotel": {
        "title": "HotelPnr",
        "description": "Hotel PNR information",
        "required": [
          "checkInDateTime",
          "checkOutDateTime",
          "hotelInfo",
          "numberOfRooms",
          "payment",
          "room",
          "vendorConfirmationNumber"
        ],
        "properties": {
          "checkInDateTime": {
            "$ref": "#/components/schemas/DateTimeLocal",
            "description": "Check-in date and time."
          },
          "checkOutDateTime": {
            "$ref": "#/components/schemas/DateTimeLocal",
            "description": "Check-out date and time."
          },
          "hotelInfo": {
            "$ref": "#/components/schemas/HotelInfo",
            "description": "Hotel details."
          },
          "numberOfRooms": {
            "type": "integer",
            "description": "Number of rooms booked.",
            "format": "int32",
            "example": 1
          },
          "payment": {
            "type": "object",
            "title": "HotelPayment",
            "description": "Payment method.",
            "required": [
              "paymentType"
            ],
            "properties": {
              "paymentType": {
                "type": "string",
                "description": "Payment type.",
                "enum": [
                  "UNKNOWN",
                  "PAY_AT_HOTEL",
                  "PREPAID",
                  "OTHER"
                ],
                "example": "PREPAID"
              },
              "description": {
                "type": "string",
                "description": "Payment method, if payment type is OTHER."
              }
            }
          },
          "pnrStatus": {
            "$ref": "#/components/schemas/PnrStatus",
            "description": "Pnr status."
          },
          "room": {
            "$ref": "#/components/schemas/Room",
            "description": "Room info."
          },
          "vendorConfirmationNumber": {
            "type": "string",
            "description": "Hotel confirmation number",
            "example": "2108528068"
          },
          "travelerInfos": {
            "type": "array",
            "description": "Information about travelers.",
            "items": {
              "$ref": "#/components/schemas/HotelTravelerInfo"
            }
          },
          "sortingPriority": {
            "type": "integer",
            "description": "Sorting priority amongst other pnrs",
            "example": 0
          },
          "vendorReferenceId": {
            "type": "string",
            "description": "Reference provided by vendors",
            "example": "AWKHGS"
          },
          "vendorCancellationId": {
            "type": "string",
            "description": "Cancellation reference provided by vendors",
            "example": "AWKHGS"
          },
          "preferredType": {
            "type": "array",
            "description": "Hotel preference",
            "deprecated": true,
            "x-sunset": "2026-07-01",
            "items": {
              "$ref": "#/components/schemas/PreferredType"
            }
          },
          "preferences": {
            "type": "array",
            "description": "Hotel preference",
            "items": {
              "$ref": "#/components/schemas/Preference"
            }
          },
          "occupancy": {
            "type": "array",
            "description": "Occupancy information",
            "items": {
              "$ref": "#/components/schemas/HotelOccupancy"
            }
          },
          "sourceStatus": {
            "type": "string",
            "description": "Source status code of the pnr"
          },
          "rebookReference": {
            "$ref": "#/components/schemas/RebookReference"
          },
          "hotelSpecialRequests": {
            "$ref": "#/components/schemas/HotelSpecialRequests",
            "description": "Hotel special requests."
          },
          "ancillaries": {
            "type": "array",
            "description": "User selected ancillaries for the hotel booking.",
            "items": {
              "$ref": "#/components/schemas/HotelAncillary"
            }
          }
        }
      },
      "HotelAccessibleFeatureType": {
        "type": "string",
        "title": "Hotel Accessible Feature Type",
        "description": "Types of accessible features available in the hotel.",
        "enum": [
          "MOBILITY_ACCESSIBLE_ROOM_WITH_TUB",
          "MOBILITY_ACCESSIBLE_ROOM_WITH_ROLL_IN_SHOWER",
          "HEARING_ACCESSIBLE_ROOM",
          "MOBILITY_ACCESSIBLE_ROOM_WITH_TUB_AND_ROLL_IN_SHOWER",
          "MOBILITY_ACCESSIBLE_ROOM_WITH_TUB_AND_HEARING_ACCESSIBLE_ROOM",
          "MOBILITY_ACCESSIBLE_ROOM_WITH_ROLL_IN_SHOWER_AND_HEARING_ACCESSIBLE_ROOM",
          "MOBILITY_ACCESSIBLE_ROOM_WITH_TRANSFER_SHOWER",
          "MOBILITY_ACCESSIBLE_ROOM_WITH_TUB_AND_TRANSFER_SHOWER",
          "MOBILITY_ACCESSIBLE_ROOM_WITH_TRANSFER_SHOWER_AND_HEARING_ACCESSIBLE_ROOM"
        ],
        "example": "MOBILITY_ACCESSIBLE_ROOM_WITH_TUB"
      },
      "HotelAdditionalDetail": {
        "title": "HotelAdditionalDetail",
        "type": "object",
        "properties": {
          "additionalDetailType": {
            "$ref": "#/components/schemas/HotelAdditionalDetailType",
            "description": "Type of the Additional Detail for the room."
          },
          "text": {
            "type": "string"
          }
        }
      },
      "HotelAdditionalDetailType": {
        "title": "HotelAdditionalDetailType",
        "type": "string",
        "enum": [
          "ADDITIONAL_DETAIL_TYPE_UNKNOWN",
          "RATE_DESCRIPTION",
          "PROPERTY_DESCRIPTION",
          "PROPERTY_LOCATION",
          "ROOM_INFORMATION",
          "GUARANTEE_INFORMATION",
          "DEPOSIT_INFORMATION",
          "CANCELLATION_INFORMATION",
          "CHECK_IN_CHECK_OUT_INFORMATION",
          "EXTRA_CHARGE_INFORMATION",
          "TAX_INFORMATION",
          "SERVICE_CHARGE_INFORMATION",
          "PACKAGE_INFORMATION",
          "COMMISSION_INFORMATION",
          "MISCELLANEOUS_INFORMATION",
          "PROMOTIONAL_INFORMATION",
          "INCLUSION_INFORMATION",
          "AMENITY_INFORMATION",
          "LATE_ARRIVAL_INFORMATION",
          "LATE_DEPARTURE_INFORMATION",
          "ADVANCED_BOOKING_INFORMATION",
          "EXTRA_PERSON_INFORMATION",
          "AREAS_SERVED",
          "ONSITE_FACILITIES_INFORMATION",
          "OFFSITE_FACILITIES_INFORMATION",
          "ONSITE_SERVICES_INFORMATION",
          "OFFSITE_SERVICES_INFORMATION",
          "EXTENDED_STAY_INFORMATION",
          "CORPORATE_BOOKING_INFORMATION",
          "BOOKING_GUIDELINES",
          "GOVERNMENT_BOOKING_POLICY",
          "GROUP_BOOKING_INFORMATION",
          "RATE_DISCLAIMER_INFORMATION",
          "VISA_TRAVEL_REQUIREMENT_INFORMATION",
          "SECURITY_INFORMATION",
          "ONSITE_RECREATIONAL_ACTIVITIES_INFORMATION",
          "OFFSITE_RECREATIONAL_ACTIVITIES_INFORMATION",
          "GENERAL_MEETING_PLANNING_INFORMATION",
          "GROUP_MEETING_PLANNING_INFORMATION",
          "CONTRACT_NEGOTIATED_BOOKING_INFORMATION",
          "TRAVEL_INDUSTRY_BOOKING_INFORMATION",
          "MEETING_ROOM_DESCRIPTION",
          "PET_POLICY_DESCRIPTION",
          "MEAL_PLAN_DESCRIPTION",
          "FAMILY_PLAN_DESCRIPTION",
          "CHILDREN_INFORMATION",
          "EARLY_CHECKOUT_DESCRIPTION",
          "SPECIAL_OFFERS_DESCRIPTION",
          "CATERING_DESCRIPTION",
          "ROOM_DECOR_DESCRIPTION",
          "OVERSOLD_POLICY_DESCRIPTION",
          "LAST_ROOM_AVAILABILITY_DESCRIPTION",
          "ROOM_TYPE_UPGRADE_DESCRIPTION",
          "DRIVING_DIRECTIONS",
          "DRIVING_DIRECTIONS_FROM_THE_NORTH",
          "DRIVING_DIRECTIONS_FROM_THE_SOUTH",
          "DRIVING_DIRECTIONS_FROM_THE_EAST",
          "DRIVING_DIRECTIONS_FROM_THE_WEST",
          "SURCHARGE_INFORMATION",
          "MINIMUM_STAY_INFORMATION",
          "MAXIMUM_STAY_INFORMATION",
          "CHECK_IN_POLICY",
          "CHECK_OUT_POLICY",
          "EXPRESS_CHECK_IN_POLICY",
          "EXPRESS_CHECK_OUT_POLICY",
          "FACILITY_RESTRICTIONS",
          "CUSTOMS_INFORMATION_FOR_MATERIAL",
          "SEASONS",
          "FOOD_AND_BEVERAGE_MINIMUMS_FOR_GROUPS",
          "DEPOSIT_POLICY_FOR_MASTER_ACCOUNT",
          "DEPOSIT_POLICY_FOR_RESERVATIONS",
          "RESTAURANT_SERVICES",
          "SPECIAL_EVENTS",
          "CUISINE_DESCRIPTION",
          "KEY_COLLECTION_INFO",
          "IMPORTANT_INFO"
        ]
      },
      "HotelAmenities": {
        "title": "HotelAmenities",
        "type": "object",
        "description": "Type of hotel amenity",
        "properties": {
          "type": {
            "$ref": "#/components/schemas/HotelAmenityType"
          },
          "additionalInfo": {
            "type": "string",
            "description": "Amenity description",
            "example": "Complimentary in-room coffee or tea"
          },
          "complimentary": {
            "type": "boolean",
            "description": "Is Amenity complimentary",
            "example": true
          }
        }
      },
      "HotelAmenityType": {
        "title": "HotelAmenityType",
        "type": "string",
        "description": "Type of hotel amenity.",
        "enum": [
          "TWENTY_FOUR_HOUR_FRONT_DESK",
          "TWENTY_FOUR_HOUR_ROOM_SERVICE",
          "TWENTY_FOUR_HOUR_SECURITY",
          "ADJOINING_ROOMS",
          "AIR_CONDITIONING",
          "AIRLINE_DESK",
          "ATM_CASH_MACHINE",
          "BABY_SITTING",
          "BBQ_PICNIC_AREA",
          "BILINGUAL_STAFF",
          "BOOKSTORE",
          "BOUTIQUES_STORES",
          "BRAILED_ELEVATORS",
          "BUSINESS_LIBRARY",
          "CAR_RENTAL_DESK",
          "CASINO",
          "CHECK_CASHING_POLICY",
          "CHECK_IN_KIOSK",
          "COCKTAIL_LOUNGE",
          "COFFEE_SHOP",
          "COIN_OPERATED_LAUNDRY",
          "CONCIERGE_DESK",
          "CONCIERGE_FLOOR",
          "CONFERENCE_FACILITIES",
          "COURTYARD",
          "CURRENCY_EXCHANGE",
          "DESK_WITH_ELECTRICAL_OUTLET",
          "DOCTOR_ON_CALL",
          "DOOR_MAN",
          "DRIVING_RANGE",
          "DRUGSTORE_PHARMACY",
          "DUTY_FREE_SHOP",
          "ELEVATORS",
          "EXECUTIVE_FLOOR",
          "EXERCISE_GYM",
          "EXPRESS_CHECK_IN",
          "EXPRESS_CHECK_OUT",
          "FAMILY_PLAN",
          "FLORIST",
          "FOLIOS",
          "FREE_AIRPORT_SHUTTLE",
          "FREE_PARKING",
          "FREE_TRANSPORTATION",
          "GAME_ROOM",
          "GIFT_NEWS_STAND",
          "HAIRDRESSER_BARBER",
          "ACCESSIBLE_FACILITIES",
          "HEALTH_CLUB",
          "HEATED_POOL",
          "HOUSEKEEPING_DAILY",
          "HOUSEKEEPING_WEEKLY",
          "ICE_MACHINE",
          "INDOOR_PARKING",
          "INDOOR_POOL",
          "JACUZZI",
          "JOGGING_TRACK",
          "KENNELS",
          "LAUNDRY_VALET_SERVICE",
          "LIQUOR_STORE",
          "LIVE_ENTERTAINMENT",
          "MASSAGE_SERVICES",
          "NIGHTCLUB",
          "OFF_SITE_PARKING",
          "ON_SITE_PARKING",
          "OUTDOOR_PARKING",
          "OUTDOOR_POOL",
          "PACKAGE_PARCEL_SERVICES",
          "PARKING",
          "PHOTOCOPY_CENTER",
          "PLAYGROUND",
          "POOL",
          "POOLSIDE_SNACK_BAR",
          "PUBLIC_ADDRESS_SYSTEM",
          "RAMP_ACCESS",
          "RECREATIONAL_VEHICLE_PARKING",
          "RESTAURANT",
          "ROOM_SERVICE",
          "SAFE_DEPOSIT_BOX",
          "SAUNA",
          "SECURITY",
          "SHOE_SHINE_STAND",
          "SHOPPING_MALL",
          "SOLARIUM",
          "SPA",
          "SPORTS_BAR",
          "STEAM_BATH",
          "STORAGE_SPACE",
          "SUNDRY_CONVENIENCE_STORE",
          "TECHNICAL_CONCIERGE",
          "THEATRE_DESK",
          "TOUR_SIGHTSEEING_DESK",
          "TRANSLATION_SERVICES",
          "TRAVEL_AGENCY",
          "TRUCK_PARKING",
          "VALET_CLEANING",
          "DRY_CLEANING",
          "VALET_PARKING",
          "VENDING_MACHINES",
          "VIDEO_TAPES",
          "WAKEUP_SERVICE",
          "WHEELCHAIR_ACCESS",
          "WHIRLPOOL",
          "MULTILINGUAL_STAFF",
          "WEDDING_SERVICES",
          "BANQUET_FACILITIES",
          "BELL_STAFF_PORTER",
          "BEAUTY_SHOP_SALON",
          "COMPLIMENTARY_SELF_SERVICE_LAUNDRY",
          "DIRECT_DIAL_TELEPHONE",
          "FEMALE_TRAVELER_ROOM_FLOOR",
          "PHARMACY",
          "STABLES",
          "ONE_TWENTY_AC",
          "ONE_TWENTY_DC",
          "TWO_TWENTY_AC",
          "ACCESSIBLE_PARKING",
          "TWO_TWENTY_DC",
          "BARBEQUE_GRILLS",
          "WOMENS_CLOTHING",
          "MENS_CLOTHING",
          "CHILDRENS_CLOTHING",
          "SHOPS_AND_COMMERCIAL_SERVICES",
          "VIDEO_GAMES",
          "SPORTS_BAR_OPEN_FOR_LUNCH",
          "SPORTS_BAR_OPEN_FOR_DINNER",
          "ROOM_SERVICE_FULL_MENU",
          "ROOM_SERVICE_LIMITED_MENU",
          "ROOM_SERVICE_LIMITED_HOURS",
          "VALET_SAME_DAY_DRY_CLEANING",
          "BODY_SCRUB",
          "BODY_WRAP",
          "PUBLIC_AREA_AIR_CONDITIONED",
          "EFOLIO_AVAILABLE_TO_COMPANY",
          "INDIVIDUAL_EFOLIO_AVAILABLE",
          "VIDEO_REVIEW_BILLING",
          "BUTLER_SERVICE",
          "COMPLIMENTARY_IN_ROOM_COFFEE_OR_TEA",
          "COMPLIMENTARY_BUFFET_BREAKFAST",
          "COMPLIMENTARY_COCKTAILS",
          "COMPLIMENTARY_COFFEE_IN_LOBBY",
          "COMPLIMENTARY_CONTINENTAL_BREAKFAST",
          "COMPLIMENTARY_FULL_AMERICAN_BREAKFAST",
          "DINNER_DELIVERY_SERVICE_FROM_LOCAL_RESTAURANT",
          "COMPLIMENTARY_NEWSPAPER_DELIVERED_TO_ROOM",
          "COMPLIMENTARY_NEWSPAPER_IN_LOBBY",
          "COMPLIMENTARY_SHOESHINE",
          "EVENING_RECEPTION",
          "FRONT_DESK",
          "GROCERY_SHOPPING_SERVICE_AVAILABLE",
          "HALAL_FOOD_AVAILABLE",
          "KOSHER_FOOD_AVAILABLE",
          "LIMOUSINE_SERVICE",
          "MANAGERS_RECEPTION",
          "MEDICAL_FACILITIES_SERVICE",
          "TELEPHONE_JACK_ADAPTOR_AVAILABLE",
          "ALL_INCLUSIVE_MEAL_PLAN",
          "BUFFET_BREAKFAST",
          "COMMUNAL_BAR_AREA",
          "CONTINENTAL_BREAKFAST",
          "FULL_MEAL_PLAN",
          "FULL_AMERICAN_BREAKFAST",
          "MEAL_PLAN_AVAILABLE",
          "MODIFIED_AMERICAN_MEAL_PLAN",
          "FOOD_AND_BEVERAGE_OUTLETS",
          "LOUNGES_BARS",
          "BARBER_SHOP",
          "VIDEO_CHECKOUT",
          "ONSITE_LAUNDRY",
          "TWENTY_FOUR_HOUR_FOOD_AND_BEVERAGE_KIOSK",
          "CONCIERGE_LOUNGE",
          "PARKING_FEE_MANAGED_BY_HOTEL",
          "TRANSPORTATION",
          "BREAKFAST_SERVED_IN_RESTAURANT",
          "LUNCH_SERVED_IN_RESTAURANT",
          "DINNER_SERVED_IN_RESTAURANT",
          "FULL_SERVICE_HOUSEKEEPING",
          "LIMITED_SERVICE_HOUSEKEEPING",
          "HIGH_SPEED_INTERNET_ACCESS_FOR_LAPTOP_IN_PUBLIC_AREAS",
          "WIRELESS_INTERNET_CONNECTION_IN_PUBLIC_AREAS",
          "ADDITIONAL_SERVICES_AMENITIES_FACILITIES_ON_PROPERTY",
          "TRANSPORTATION_SERVICES_LOCAL_AREA",
          "TRANSPORTATION_SERVICES_LOCAL_OFFICE",
          "DVD_VIDEO_RENTAL",
          "PARKING_LOT",
          "PARKING_DECK",
          "STREET_SIDE_PARKING",
          "COCKTAIL_LOUNGE_WITH_ENTERTAINMENT",
          "COCKTAIL_LOUNGE_WITH_LIGHT_FARE",
          "MOTORCYCLE_PARKING",
          "PHONE_SERVICES",
          "BALLROOM",
          "BUS_PARKING",
          "CHILDRENS_PLAY_AREA",
          "CHILDRENS_NURSERY",
          "DISCO",
          "EARLY_CHECK_IN",
          "LOCKER_ROOM",
          "NON_SMOKING_ROOMS_GENERIC",
          "TRAIN_ACCESS",
          "AEROBICS_INSTRUCTION",
          "BAGGAGE_HOLD",
          "BICYCLE_RENTALS",
          "DIETICIAN",
          "LATE_CHECK_OUT_AVAILABLE",
          "PET_SITTING_SERVICES",
          "PRAYER_MATS",
          "SPORTS_TRAINER",
          "TURNDOWN_SERVICE",
          "DVDS_VIDEOS_CHILDREN",
          "BANK",
          "LOBBY_COFFEE_SERVICE",
          "BANKING_SERVICES",
          "STAIRWELLS",
          "PET_AMENITIES_AVAILABLE",
          "EXHIBITION_CONVENTION_FLOOR",
          "LONG_TERM_PARKING",
          "CHILDREN_NOT_ALLOWED",
          "CHILDREN_WELCOME",
          "COURTESY_CAR",
          "HOTEL_DOES_NOT_PROVIDE_PORNOGRAPHIC_FILMS_TV",
          "HOTSPOTS",
          "FREE_HIGH_SPEED_INTERNET_CONNECTION",
          "INTERNET_SERVICES",
          "PETS_ALLOWED",
          "GOURMET_HIGHLIGHTS",
          "CATERING_SERVICES",
          "COMPLIMENTARY_BREAKFAST",
          "BUSINESS_CENTER",
          "BUSINESS_SERVICES",
          "SECURED_PARKING",
          "RACQUETBALL",
          "SNOW_SPORTS",
          "TENNIS_COURT",
          "WATER_SPORTS",
          "CHILD_PROGRAMS",
          "GOLF",
          "HORSEBACK_RIDING",
          "OCEANFRONT",
          "BEACHFRONT",
          "HAIR_DRYER",
          "IRONING_BOARD",
          "HEATED_GUEST_ROOMS",
          "TOILET",
          "PARLOR",
          "VIDEO_GAME_PLAYER",
          "THALASSOTHERAPY",
          "PRIVATE_DINING_FOR_GROUPS",
          "HEARING_IMPAIRED_SERVICES",
          "CARRYOUT_BREAKFAST",
          "DELUXE_CONTINENTAL_BREAKFAST",
          "HOT_CONTINENTAL_BREAKFAST",
          "HOT_BREAKFAST",
          "PRIVATE_POOL",
          "CONNECTING_ROOMS",
          "DATA_PORT",
          "EXTERIOR_CORRIDORS",
          "GULF_VIEW",
          "ACCESSIBLE_ROOMS",
          "HIGH_SPEED_INTERNET_ACCESS",
          "INTERIOR_CORRIDORS",
          "HIGH_SPEED_WIRELESS",
          "KITCHENETTE",
          "PRIVATE_BATH_OR_SHOWER",
          "FIRE_SAFETY_COMPLIANT",
          "WELCOME_DRINK",
          "BOARDING_PASS_PRINT_OUT_AVAILABLE",
          "PRINTING_SERVICES_AVAILABLE",
          "ALL_PUBLIC_AREAS_NON_SMOKING",
          "MEETING_ROOMS",
          "MOVIES_IN_ROOM",
          "SECRETARIAL_SERVICE",
          "SNOW_SKIING",
          "WATER_SKIING",
          "FAX_SERVICE",
          "GREAT_ROOM",
          "LOBBY",
          "MULTIPLE_PHONE_LINES_BILLED_SEPARATELY",
          "UMBRELLAS",
          "GAS_STATION",
          "GROCERY_STORE",
          "TWENTY_FOUR_HOUR_COFFEE_SHOP",
          "AIRPORT_SHUTTLE_SERVICE",
          "LUGGAGE_SERVICE",
          "PIANO_BAR",
          "VIP_SECURITY",
          "COMPLIMENTARY_WIRELESS_INTERNET",
          "CONCIERGE_BREAKFAST",
          "SAME_GENDER_FLOOR",
          "CHILDREN_PROGRAMS",
          "BUILDING_MEETS_LOCAL_STATE_AND_COUNTRY_BUILDING_CODES",
          "INTERNET_BROWSER_ON_TV",
          "NEWSPAPER",
          "PARKING_CONTROLLED_ACCESS_GATES_TO_ENTER_PARKING_AREA",
          "HOTEL_SAFE_DEPOSIT_BOX_NOT_ROOM_SAFE_BOX",
          "STORAGE_SPACE_AVAILABLE_FEE",
          "TYPE_OF_ENTRANCES_TO_GUEST_ROOMS",
          "BEVERAGE_COCKTAIL",
          "CELL_PHONE_RENTAL",
          "COFFEE_TEA",
          "EARLY_CHECK_IN_GUARANTEE",
          "FOOD_AND_BEVERAGE_DISCOUNT",
          "LATE_CHECK_OUT_GUARANTEE",
          "ROOM_UPGRADE_CONFIRMED",
          "ROOM_UPGRADE_ON_AVAILABILITY",
          "SHUTTLE_TO_LOCAL_BUSINESSES",
          "SHUTTLE_TO_LOCAL_ATTRACTIONS",
          "SOCIAL_HOUR",
          "VIDEO_BILLING",
          "WELCOME_GIFT",
          "HYPOALLERGENIC_ROOMS",
          "ROOM_AIR_FILTRATION",
          "SMOKE_FREE_PROPERTY",
          "WATER_PURIFICATION_SYSTEM_IN_USE",
          "POOLSIDE_SERVICE",
          "CLOTHING_STORE",
          "ELECTRIC_CAR_CHARGING_STATIONS",
          "OFFICE_RENTAL",
          "PIANO",
          "INCOMING_FAX",
          "OUTGOING_FAX",
          "SEMI_PRIVATE_SPACE",
          "LOADING_DOCK",
          "BABY_KIT",
          "CHILDRENS_BREAKFAST",
          "CLOAKROOM_SERVICE",
          "COFFEE_LOUNGE",
          "EVENTS_TICKET_SERVICE",
          "LATE_CHECK_IN",
          "LIMITED_PARKING",
          "OUTDOOR_SUMMER_BAR_CAFE",
          "NO_PARKING_AVAILABLE",
          "BEER_GARDEN",
          "GARDEN_LOUNGE_BAR",
          "SUMMER_TERRACE",
          "WINTER_TERRACE",
          "ROOF_TERRACE",
          "BEACH_BAR",
          "HELICOPTER_SERVICE",
          "FERRY",
          "TAPAS_BAR",
          "CAFE_BAR",
          "SNACK_BAR",
          "GUESTROOM_WIRED_INTERNET",
          "GUESTROOM_WIRELESS_INTERNET",
          "FITNESS_CENTER",
          "ALCOHOLIC_BEVERAGES",
          "NON_ALCOHOLIC_BEVERAGES",
          "HEALTH_AND_BEAUTY_SERVICES",
          "LOCAL_CALLS",
          "MINIBAR",
          "REFRIGERATOR",
          "IN_ROOM_SAFE",
          "SMOKING_ROOMS_AVAILBLE",
          "MOUNTAIN_VIEW",
          "POOL_VIEW",
          "BEACH_VIEW",
          "OCEAN_VIEW",
          "ROOMS_WITH_BALCONY",
          "FAMILY_ROOM",
          "CRIB_CHARGE",
          "ROLLAWAY_ADULT",
          "FREE_WIFI_IN_MEETING_ROOMS",
          "ECO_FRIENDLY",
          "EXTRA_PERSON",
          "STAY_SAFE",
          "ENHANCED_HYGIENE_CLEANLINESS_PROTOCOLS"
        ],
        "example": "ECO_FRIENDLY"
      },
      "HotelAncillary": {
        "type": "object",
        "title": "Hotel Ancillary",
        "description": "Represents an individual ancillary service or add-on for a hotel booking.",
        "required": [
          "ancillaryKey",
          "category",
          "displayName",
          "dailyPrice",
          "totalPrice",
          "refundability",
          "purchaseStatus",
          "paymentType"
        ],
        "properties": {
          "ancillaryKey": {
            "type": "string",
            "description": "Unique identifier for the ancillary service."
          },
          "category": {
            "type": "string",
            "enum": [
              "ANCILLARY_UNKNOWN",
              "EARLY_CHECKIN",
              "LATE_CHECKOUT",
              "WIFI",
              "BREAKFAST",
              "PARKING",
              "PETS",
              "MEAL_PLAN",
              "OTHER"
            ],
            "description": "Type of ancillary."
          },
          "displayName": {
            "type": "string",
            "description": "Display name of ancillary."
          },
          "description": {
            "type": "string",
            "description": "Detailed description of ancillary."
          },
          "dailyPrice": {
            "$ref": "#/components/schemas/Money",
            "description": "Per day price of ancillary."
          },
          "totalPrice": {
            "$ref": "#/components/schemas/Money",
            "description": "Total price for the entire stay."
          },
          "refundability": {
            "type": "string",
            "enum": [
              "REFUNDABILITY_UNKNOWN",
              "FULLY_REFUNDABLE",
              "PARTIALLY_REFUNDABLE",
              "NON_REFUNDABLE"
            ],
            "description": "Refundability information about the ancillary."
          },
          "purchaseStatus": {
            "type": "string",
            "enum": [
              "PURCHASE_STATUS_UNKNOWN",
              "AVAILABLE",
              "ALREADY_PURCHASED",
              "INCLUDED_IN_RATE"
            ],
            "description": "Purchase status of the ancillary."
          },
          "paymentType": {
            "type": "string",
            "enum": [
              "PAYMENT_TYPE_UNKNOWN",
              "PREPAID",
              "POSTPAID"
            ],
            "description": "Payment type for the ancillary."
          }
        }
      },
      "HotelBookingGuideline": {
        "title": "HotelBookingGuideline",
        "description": "Hotel related guidelines",
        "type": "object",
        "properties": {
          "allowedHotels": {
            "description": "List of allowed Hotel details for the event",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/HotelInfo"
            }
          },
          "checkinBookingWindow": {
            "$ref": "#/components/schemas/EventBookingWindow"
          },
          "checkoutBookingWindow": {
            "$ref": "#/components/schemas/EventBookingWindow"
          },
          "paymentGuidelines": {
            "$ref": "#/components/schemas/HotelBookingPaymentGuidelines",
            "readOnly": true
          }
        }
      },
      "HotelBookingGuidelineWrapper": {
        "type": "object",
        "title": "HotelBookingGuidelineWrapper",
        "description": "Wrapper for HotelBookingGuideline",
        "properties": {
          "hotelBookingGuideLine": {
            "$ref": "#/components/schemas/HotelBookingGuideline"
          }
        }
      },
      "HotelBookingPaymentGuidelines": {
        "title": "HotelBookingPaymentGuidelines",
        "description": "Hotel booking payment guidelines",
        "type": "object",
        "properties": {
          "onlyVpayEnabledBooking": {
            "type": "boolean",
            "readOnly": true,
            "description": "Whether only Vpay enabled bookings are allowed for the event.",
            "example": true
          }
        }
      },
      "HotelBrand": {
        "type": "object",
        "title": "HotelBrand",
        "description": "The brand of hotel.",
        "properties": {
          "brandCode": {
            "type": "string",
            "description": "The code of hotel brand.",
            "example": "HY"
          },
          "brandName": {
            "type": "string",
            "description": "The name of hotel brand.",
            "example": "Global Hytt Corp."
          }
        }
      },
      "HotelChain": {
        "type": "object",
        "title": "HotelChain",
        "description": "The chain of hotel.",
        "properties": {
          "chainCode": {
            "type": "string",
            "description": "The code of hotel chain.",
            "example": "EM"
          },
          "chainName": {
            "type": "string",
            "description": "The name of hotel chain.",
            "example": "Mariott"
          }
        }
      },
      "HotelCo2EmissionDetail": {
        "type": "object",
        "description": "The co2 emission detail for the hotel.",
        "required": [
          "co2EmissionValue"
        ],
        "properties": {
          "co2EmissionValue": {
            "type": "number",
            "format": "double",
            "example": 10.5,
            "description": "CO2 emission value in kg per room for the entire stay."
          }
        }
      },
      "HotelData": {
        "type": "object",
        "title": "HotelData",
        "description": "Hotel specific details.",
        "properties": {
          "hotelName": {
            "type": "string",
            "description": "Name of the hotel.",
            "example": "Marriott Bellandur"
          },
          "address": {
            "description": "Address of the hotel.",
            "$ref": "#/components/schemas/PostalAddress"
          }
        }
      },
      "HotelDescription": {
        "type": "object",
        "title": "HotelDescription",
        "description": "Hotel description",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "GENERAL",
              "ALERTS",
              "DINING",
              "FACILITIES",
              "RECREATION",
              "SERVICES",
              "ATTRACTIONS",
              "CANCELLATION_POLICY",
              "DEPOSIT_POLICY",
              "DIRECTIONS",
              "POLICIES",
              "SAFETY",
              "TRANSPORTATION"
            ],
            "description": "Hotel description type",
            "example": ""
          },
          "value": {
            "type": "string",
            "description": "Hotel description value",
            "example": ""
          }
        }
      },
      "HotelImageCategory": {
        "type": "string",
        "description": "Category of image such as exterior, spa, etc.",
        "enum": [
          "UNKNOWN_CATEGORY",
          "EXTERIOR_VIEW",
          "LOBBY_VIEW",
          "POOL_VIEW",
          "RESTAURANT",
          "HEALTH_CLUB",
          "GUEST_ROOM",
          "SUITE",
          "MEETING_ROOM",
          "BALLROOM",
          "GOLF_COURSE",
          "BEACH",
          "SPA",
          "BAR_OR_LOUNGE",
          "RECREATIONAL_FACILITY",
          "LOGO",
          "BASICS",
          "MAP",
          "PROMOTIONAL",
          "HOT_NEWS",
          "MISCELLANEOUS",
          "GUEST_ROOM_AMENITY",
          "PROPERTY_AMENITY",
          "BUSINESS_CENTER"
        ]
      },
      "HotelImageSet": {
        "type": "object",
        "description": "Object containing details of images of different for a given category.",
        "required": [
          "category",
          "imageGroup"
        ],
        "properties": {
          "category": {
            "$ref": "#/components/schemas/HotelImageCategory"
          },
          "imageGroup": {
            "$ref": "#/components/schemas/ImageGroup"
          }
        }
      },
      "HotelInfo": {
        "type": "object",
        "title": "HotelInfo",
        "description": "Hotel info",
        "required": [
          "address",
          "name"
        ],
        "properties": {
          "address": {
            "$ref": "#/components/schemas/PostalAddress",
            "description": "Address of the hotel."
          },
          "chainCode": {
            "type": "string",
            "description": "Chain code of the hotel.",
            "example": "RF"
          },
          "chainName": {
            "type": "string",
            "description": "Chain name of the hotel.",
            "example": "Red Roof Inns"
          },
          "coordinates": {
            "$ref": "#/components/schemas/Latlng",
            "description": "Coordinates of the hotel."
          },
          "email": {
            "type": "string",
            "description": "Email address of the hotel.",
            "example": "user@business.com"
          },
          "hotelId": {
            "type": "string",
            "description": "Hotel id.",
            "example": "100094780"
          },
          "name": {
            "type": "string",
            "description": "Name of the hotel.",
            "example": "San Francisco Airport Red Roof"
          },
          "phone": {
            "$ref": "#/components/schemas/PhoneNumber",
            "description": "Phone number of the hotel."
          },
          "starRating": {
            "type": "number",
            "description": "Star rating of the hotel.",
            "format": "double",
            "example": 3.5
          },
          "fax": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PhoneNumber"
            }
          },
          "masterChainCode": {
            "type": "string",
            "description": "Master chain code of the hotel.",
            "example": "EM"
          },
          "brandName": {
            "type": "string",
            "description": "Brand name of the hotel.",
            "example": "Marriott Hotel Brands"
          },
          "amenities": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/HotelAmenities"
            }
          },
          "additionalAmenities": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "List of amenities provided by the supplier.",
            "example": [
              "Room service",
              "Wifi"
            ]
          },
          "imageSets": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/HotelImageSet"
            }
          },
          "descriptions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/HotelDescription"
            }
          },
          "thirdPartyHotelCodes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ThirdPartyHotelCode"
            }
          }
        }
      },
      "HotelItem": {
        "type": "object",
        "title": "HotelItem",
        "description": "This describes the hotelItem related to a particular itemGroup.",
        "required": [
          "itemType"
        ],
        "properties": {
          "itemType": {
            "type": "string"
          },
          "checkInDateTime": {
            "description": "date time of check in",
            "$ref": "#/components/schemas/DateTimeLocal"
          },
          "checkoutDateTime": {
            "description": "date time of check out",
            "$ref": "#/components/schemas/DateTimeLocal"
          },
          "isPrepaid": {
            "type": "boolean",
            "description": "If the booking is prepaid",
            "example": false
          },
          "prepaidAmount": {
            "description": "Amount due now",
            "$ref": "#/components/schemas/Money"
          },
          "postpaidAmount": {
            "description": "Amount due later",
            "$ref": "#/components/schemas/Money"
          },
          "averageNightlyRate": {
            "description": "Average Rate for all the nights.",
            "$ref": "#/components/schemas/HotelNightlyRate"
          },
          "nightlyRates": {
            "type": "array",
            "description": "Rates for all nights in stay date range.",
            "items": {
              "$ref": "#/components/schemas/HotelNightlyRate"
            }
          },
          "hotelData": {
            "$ref": "#/components/schemas/HotelData"
          },
          "rateType": {
            "description": "Rate type for the hotel.",
            "$ref": "#/components/schemas/HotelRateType"
          }
        }
      },
      "HotelNightlyRate": {
        "title": "HotelNightlyRate",
        "description": "Contains nightly rate for the relevant hotel.",
        "properties": {
          "total": {
            "description": "Nightly total rate.",
            "$ref": "#/components/schemas/Money"
          },
          "base": {
            "description": "Nightly base rate.",
            "$ref": "#/components/schemas/Money"
          },
          "tax": {
            "description": "Nightly tax rate.",
            "$ref": "#/components/schemas/Money"
          }
        }
      },
      "HotelOccupancy": {
        "type": "object",
        "title": "HotelOccupancy",
        "description": "Occupancy information",
        "properties": {
          "numAdults": {
            "type": "integer",
            "description": "Number of adults in the hotel pnr",
            "example": 1
          },
          "numChildren": {
            "type": "integer",
            "description": "Number of children in the hotel pnr",
            "example": 1
          },
          "childAges": {
            "type": "array",
            "items": {
              "type": "integer",
              "description": "Age of each child in the hotel pnr",
              "example": 10
            }
          },
          "numInfants": {
            "type": "integer",
            "description": "Number of infants in the hotel pnr",
            "example": 1
          }
        }
      },
      "HotelPref": {
        "type": "object",
        "title": "HotelPref",
        "description": "Travel preferences related to hotel.",
        "properties": {
          "hotelParentChains": {
            "type": "array",
            "description": "A list of hotel parent chains.",
            "items": {
              "$ref": "#/components/schemas/HotelChain"
            }
          },
          "hotelBrands": {
            "type": "array",
            "description": "A list of hotel brands.",
            "items": {
              "$ref": "#/components/schemas/HotelBrand"
            }
          },
          "hotelAmenityTypes": {
            "type": "array",
            "description": "A list of HotelAmenities.",
            "items": {
              "$ref": "#/components/schemas/HotelPrefAmenity"
            }
          },
          "roomPreference": {
            "$ref": "#/components/schemas/RoomPreference"
          },
          "conditionalRates": {
            "type": "array",
            "description": "A list of conditional rates for rail.",
            "items": {
              "$ref": "#/components/schemas/ConditionalRate"
            }
          }
        }
      },
      "HotelPrefAmenity": {
        "type": "string",
        "description": "Preferred hotel amenity.",
        "enum": [
          "PARKING",
          "FREE_PARKING",
          "FREE_BREAKFAST",
          "POOL",
          "WIFI",
          "FITNESS_CENTER",
          "FAMILY_FRIENDLY",
          "RECEPTION",
          "SPA",
          "RESTAURANT",
          "BAR",
          "TRANSPORTATION",
          "PET_FRIENDLY",
          "BUSINESS_CENTER",
          "AIR_CONDITIONING",
          "BEACH_ACCESS",
          "LAUNDRY_SERVICES",
          "ROOM_SERVICE",
          "ACCESSIBLE"
        ]
      },
      "HotelRateAssuranceMetadata": {
        "title": "HotelRateAssuranceMetadata",
        "type": "object",
        "description": "Savings information from the rate assurance rebooking",
        "properties": {
          "selfReportedSavings": {
            "$ref": "#/components/schemas/SimpleMoney"
          },
          "actualSavings": {
            "$ref": "#/components/schemas/SimpleMoney"
          }
        }
      },
      "HotelRateType": {
        "type": "string",
        "title": "HotelRate Type",
        "enum": [
          "PUBLISHED",
          "CORPORATE",
          "SPOTNANA",
          "REGULAR",
          "AAA",
          "AARP",
          "SENIOR_CITIZEN",
          "GOVERNMENT",
          "MILITARY",
          "MEMBERSHIP",
          "BEST_AVAILABLE_RATE",
          "TMC"
        ]
      },
      "HotelRoomAmenity": {
        "type": "object",
        "title": "HotelRoomAmenity",
        "description": "Hotel Room amenities",
        "properties": {
          "additionalInfo": {
            "type": "string",
            "description": "Extra information about the room amenity"
          },
          "complimentary": {
            "type": "boolean",
            "description": "Is amenity complimentary",
            "example": true
          },
          "type": {
            "type": "string",
            "description": "Room amenity type",
            "enum": [
              "UNKNOWN",
              "ADJOINING_ROOMS",
              "AIR_CONDITIONING",
              "ALARM_CLOCK",
              "ALL_NEWS_CHANNEL",
              "AM_FM_RADIO",
              "BABY_LISTENING_DEVICE",
              "BALCONY_LANAI_TERRACE",
              "BARBEQUE_GRILLS",
              "BATH_TUB_WITH_SPRAY_JETS",
              "BATHROBE",
              "BATHROOM_AMENITIES",
              "BATHROOM_TELEPHONE",
              "BATHTUB",
              "BATHTUB_ONLY",
              "BATHTUB_SHOWER_COMBINATION",
              "BIDET",
              "BOTTLED_WATER",
              "CABLE_TELEVISION",
              "COFFEE_TEA_MAKER",
              "COLOR_TELEVISION",
              "COMPUTER",
              "CONNECTING_ROOMS",
              "CONVERTERS_VOLTAGE_ADAPTORS",
              "COPIER",
              "CORDLESS_PHONE",
              "CRIBS",
              "DATA_PORT",
              "DESK",
              "DESK_WITH_LAMP",
              "DINING_GUIDE",
              "DIRECT_DIAL_PHONE_NUMBER",
              "DISHWASHER",
              "DOUBLE_BEDS",
              "DUAL_VOLTAGE_OUTLET",
              "ELECTRICAL_CURRENT_VOLTAGE",
              "ERGONOMIC_CHAIR",
              "EXTENDED_PHONE_CORD",
              "FAX_MACHINE",
              "FIRE_ALARM",
              "FIRE_ALARM_WITH_LIGHT",
              "FIREPLACE",
              "FREE_TOLL_FREE_CALLS",
              "FREE_CALLS",
              "FREE_CREDIT_CARD_ACCESS_CALLS",
              "FREE_LOCAL_CALLS",
              "FREE_MOVIES_VIDEO",
              "FULL_KITCHEN",
              "GRAB_BARS_IN_BATHROOM",
              "GRECIAN_TUB",
              "HAIRDRYER",
              "HIGH_SPEED_INTERNET_CONNECTION",
              "INTERACTIVE_WEB_TV",
              "INTERNATIONAL_DIRECT_DIALING",
              "INTERNET_ACCESS",
              "IRON",
              "IRONING_BOARD",
              "WHIRPOOL",
              "KING_BED",
              "KITCHEN",
              "KITCHEN_SUPPLIES",
              "KITCHENETTE",
              "KNOCK_LIGHT",
              "LAPTOP",
              "LARGE_DESK",
              "LARGE_WORK_AREA",
              "LAUNDRY_BASKET_CLOTHES_HAMPER",
              "LOFT",
              "MICROWAVE",
              "MINIBAR",
              "MODEM",
              "MODEM_JACK",
              "MULTILINE_PHONE",
              "NEWSPAPER",
              "NONSMOKING",
              "NOTEPADS",
              "OFFICE_SUPPLIES",
              "OVEN",
              "PAY_PER_VIEW_MOVIES_ON_TV",
              "PENS",
              "PHONE_IN_BATHROOM",
              "PLATES_AND_BOWLS",
              "POTS_AND_PANS",
              "PRAYER_MATS",
              "PRINTER",
              "PRIVATE_BATHROOM",
              "QUEEN_BED",
              "RECLINER",
              "REFRIGERATOR",
              "REFRIGERATOR_WITH_ICE_MAKER",
              "REMOTE_CONTROL_TELEVISION",
              "ROLLAWAY_BED",
              "SAFE",
              "SCANNER",
              "SEPARATE_CLOSET",
              "SEPARATE_MODEM_LINE_AVAILABLE",
              "SHOE_POLISHER",
              "SHOWER_ONLY",
              "SILVERWARE_UTENSILS",
              "SITTING_AREA",
              "SMOKE_DETECTORS",
              "SMOKING",
              "SOFA_BED",
              "SPEAKER_PHONE",
              "STEREO",
              "STOVE",
              "TAPE_RECORDER",
              "TELEPHONE",
              "TELEPHONE_FOR_HEARING_IMPAIRED",
              "TELEPHONES_WITH_MESSAGE_LIGHT",
              "TOASTER_OVEN",
              "TROUSER_PANT_PRESS",
              "TURN_DOWN_SERVICE",
              "TWIN_BED",
              "VAULTED_CEILINGS",
              "VCR_MOVIES",
              "VCR_PLAYER",
              "VIDEO_GAMES_AMENITY",
              "VOICE_MAIL",
              "WAKEUP_CALLS",
              "WATER_CLOSET",
              "WATER_PURIFICATION_SYSTEM",
              "WET_BAR",
              "WIRELESS_INTERNET_CONNECTION",
              "WIRELESS_KEYBOARD",
              "ADAPTOR_AVAILABLE_FOR_TELEPHONE_PC_USE",
              "AIR_CONDITIONING_INDIVIDUALLY_CONTROLLED_IN_ROOM",
              "BATHTUB_ANDWHIRLPOOL_SEPARATE",
              "TELEPHONE_WITH_DATA_PORTS",
              "CD_PLAYER",
              "COMPLIMENTARY_LOCAL_CALLS_TIME_LIMIT",
              "EXTRA_PERSON_CHARGE_FOR_ROLLAWAY_USE",
              "DOWN_FEATHER_PILLOWS",
              "DESK_WITH_ELECTRICAL_OUTLET",
              "ESPN_AVAILABLE",
              "FOAM_PILLOWS",
              "HBO_AVAILABLE",
              "HIGH_CEILINGS",
              "MARBLE_BATHROOM",
              "LIST_OF_MOVIE_CHANNELS_AVAILABLE",
              "PETS_ALLOWED",
              "OVERSIZED_BATHTUB",
              "SHOWER",
              "SINK_INROOM",
              "SOUNDPROOFED_ROOM",
              "STORAGE_SPACE",
              "TABLES_AND_CHAIRS",
              "TWOLINE_PHONE",
              "WALKIN_CLOSET",
              "WASHER_DRYER",
              "WEIGHT_SCALE",
              "WELCOME_GIFT",
              "SPARE_ELECTRICAL_OUTLET_AVAILABLE_AT_DESK",
              "NONREFUNDABLE_CHARGE_FOR_PETS",
              "REFUNDABLE_DEPOSIT_FOR_PETS",
              "SEPARATE_TUB_AND_SHOWER",
              "ENTRANCE_TYPE_TO_GUEST_ROOM",
              "CEILING_FAN",
              "CNN_AVAILABLE",
              "ELECTRICAL_ADAPTORS_AVAILABLE",
              "BUFFET_BREAKFAST",
              "ACCESSIBLE_ROOM",
              "CLOSETS_IN_ROOM",
              "DVD_PLAYER",
              "MINIREFRIGERATOR",
              "SEPARATE_LINE_BILLING_FOR_MULTILINE_PHONE",
              "SELFCONTROLLED_HEATING_COOLING_SYSTEM",
              "TOASTER",
              "ANALOG_DATA_PORT",
              "COLLECT_CALLS",
              "INTERNATIONAL_CALLS",
              "CARRIER_ACCESS",
              "INTERSTATE_CALLS",
              "INTRASTATE_CALLS",
              "LOCAL_CALLS",
              "LONG_DISTANCE_CALLS",
              "OPERATORASSISTED_CALLS",
              "CREDIT_CARD_ACCESS_CALLS",
              "CALLING_CARD_CALLS",
              "TOLL_FREE_CALLS",
              "UNIVERSAL_AC_DC_ADAPTORS",
              "BATHTUB_SEAT",
              "CANOPY_POSTER_BED",
              "CUPS_GLASSWARE",
              "ENTERTAINMENT_CENTER",
              "FAMILY_OVERSIZED_ROOM",
              "HYPOALLERGENIC_BED",
              "HYPOALLERGENIC_PILLOWS",
              "LAMP",
              "MEAL_INCLUDED_BREAKFAST",
              "MEAL_INCLUDED_CONTINENTAL_BREAKFAST",
              "MEAL_INCLUDED_DINNER",
              "MEAL_INCLUDED_LUNCH",
              "SHARED_BATHROOM",
              "TELEPHONE_TDD_TEXTPHONE",
              "WATER_BED",
              "EXTRA_ADULT_CHARGE",
              "EXTRA_CHILD_CHARGE",
              "EXTRA_CHILD_CHARGE_FOR_ROLLAWAY_USE",
              "MEAL_INCLUDED_FULL_AMERICAN_BREAKFAST",
              "FUTON",
              "MURPHY_BED",
              "TATAMI_MATS",
              "SINGLE_BED",
              "ANNEX_ROOM",
              "FREE_NEWSPAPER",
              "HONEYMOON_SUITES",
              "COMPLIMENTARY_HIGH_SPEED_INTERNET_IN_ROOM",
              "MAID_SERVICE",
              "PC_HOOKUP_IN_ROOM",
              "SATELLITE_TELEVISION",
              "VIP_ROOMS",
              "CELL_PHONE_RECHARGER",
              "DVR_PLAYER",
              "IPOD_DOCKING_STATION",
              "MEDIA_CENTER",
              "PLUG_AND_PLAY_PANEL",
              "SATELLITE_RADIO",
              "VIDEO_ON_DEMAND",
              "EXTERIOR_CORRIDORS",
              "GULF_VIEW",
              "ACCESSIBLE_ROOM_AMENITY",
              "INTERIOR_CORRIDORS",
              "MOUNTAIN_VIEW",
              "OCEAN_VIEW",
              "HIGH_SPEED_INTERNET_ACCESS_FEE",
              "HIGH_SPEED_WIRELESS",
              "PREMIUM_MOVIE_CHANNELS",
              "SLIPPERS",
              "FIRST_NIGHTERS_KIT",
              "CHAIR_PROVIDED_WITH_DESK",
              "PILLOW_TOP_MATTRESS",
              "FEATHER_BED",
              "DUVET",
              "LUXURY_LINEN_TYPE",
              "INTERNATIONAL_CHANNELS",
              "PANTRY",
              "DISHCLEANING_SUPPLIES",
              "DOUBLE_VANITY",
              "LIGHTED_MAKEUP_MIRROR",
              "UPGRADED_BATHROOM_AMENITIES",
              "VCR_PLAYER_AVAILABLE_AT_FRONT_DESK",
              "INSTANT_HOT_WATER",
              "OUTDOOR_SPACE",
              "HINOKI_TUB",
              "PRIVATE_POOL",
              "HIGH_DEFINITION_HD_FLAT_PANEL_TELEVISION_32_INCHES_OR_GREATER",
              "ROOM_WINDOWS_OPEN",
              "BEDDING_TYPE_UNKNOWN_OR_UNSPECIFIED",
              "FULL_BED",
              "ROUND_BED",
              "TV",
              "CHILD_ROLLAWAY",
              "DVD_PLAYER_AVAILABLE_AT_FRONT_DESK",
              "VIDEO_GAME_PLAYER",
              "VIDEO_GAME_PLAYER_AVAILABLE_AT_FRONT_DESK",
              "DINING_ROOM_SEATS",
              "FULL_SIZE_MIRROR",
              "MOBILE_CELLULAR_PHONES",
              "MOVIES",
              "MULTIPLE_CLOSETS",
              "PLATES_GLASSWARE",
              "SAFE_LARGE_ENOUGH_TO_ACCOMMODATE_A_LAPTOP",
              "BED_LINEN_THREAD_COUNT",
              "BLACKOUT_CURTAIN",
              "BLURAY_PLAYER",
              "DEVICE_WITH_MP3",
              "NO_ADULT_CHANNELS_OR_ADULT_CHANNEL_LOCK",
              "NONALLERGENIC_ROOM",
              "PILLOW_TYPE",
              "SEATING_AREA_WITH_SOFA_CHAIR",
              "SEPARATE_TOILET_AREA",
              "WEB_ENABLED",
              "WIDESCREEN_TV",
              "OTHER_DATA_CONNECTION",
              "PHONELINE_BILLED_SEPARATELY",
              "SEPARATE_TUB_OR_SHOWER",
              "VIDEO_GAMES",
              "ROOF_VENTILATOR",
              "CHILDRENS_PLAYPEN",
              "PLUNGE_POOL",
              "DVD_MOVIES",
              "AIR_FILTRATION"
            ],
            "example": "WEB_ENABLED"
          }
        }
      },
      "HotelRoomMeal": {
        "type": "object",
        "title": "HotelRoomMeal",
        "description": "Meal details for the room.",
        "required": [
          "mealPlan"
        ],
        "properties": {
          "mealsIncluded": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/HotelRoomMealsIncluded"
            }
          },
          "mealPlan": {
            "$ref": "#/components/schemas/HotelRoomMealType",
            "description": "Meal type added with the room booked."
          }
        }
      },
      "HotelRoomMealType": {
        "type": "string",
        "description": "Type of meal plan",
        "enum": [
          "UNKNOWN",
          "ALL_INCLUSIVE",
          "AMERICAN",
          "BED_AND_BREAKFAST",
          "BUFFET_BREAKFAST",
          "CARIBBEAN_BREAKFAST",
          "CONTINENTAL_BREAKFAST",
          "ENGLISH_BREAKFAST",
          "EUROPEAN_PLAN",
          "FAMILY_PLAN",
          "FULL_BOARD",
          "FULL_BREAKFAST",
          "HALF_BOARD_MODIFIED_AMERICAN_PLAN",
          "AS_BROCHURED",
          "ROOM_ONLY",
          "SELF_CATERING",
          "BERMUDA",
          "DINNER_BED_AND_BREAKFAST_PLAN",
          "FAMILY_AMERICAN",
          "BREAKFAST_MEAL_PLAN",
          "MODIFIED",
          "LUNCH_MEAL_PLAN",
          "DINNER_MEAL_PLAN",
          "BREAKFAST_AND_LUNCH"
        ],
        "example": "ENGLISH_BREAKFAST"
      },
      "HotelRoomMealsIncluded": {
        "type": "string",
        "description": "Meals included, (Breakfast/Lunch/Dinner)",
        "enum": [
          "BREAKFAST",
          "LUNCH",
          "DINNER"
        ],
        "example": "BREAKFAST"
      },
      "HotelRsvpResponse": {
        "title": "HotelRsvpResponse",
        "type": "object",
        "description": "Hotel rsvp response",
        "properties": {
          "notNeeded": {
            "type": "boolean",
            "description": "Whether hotel booking is needed by the traveler or not",
            "example": true
          }
        }
      },
      "HotelSpecialRequests": {
        "type": "object",
        "title": "HotelSpecialRequest",
        "description": "Hotel special requests",
        "properties": {
          "roomLocations": {
            "type": "array",
            "description": "Room Location special request",
            "items": {
              "type": "string",
              "enum": [
                "HIGH_FLOOR",
                "LOW_FLOOR"
              ],
              "example": "HIGH_FLOOR"
            }
          },
          "roomFeatures": {
            "type": "array",
            "description": "Room Features List",
            "items": {
              "type": "string",
              "enum": [
                "CRIB",
                "ROLLAWAY_BED",
                "FEATHER_FREE_ROOM",
                "ACCESSIBLE_ROOM",
                "NEAR_ELEVATOR"
              ],
              "example": "FEATHER_FREE_ROOM"
            }
          },
          "checkIn": {
            "type": "string",
            "description": "Early or Late Check-in",
            "enum": [
              "EARLY_CHECK_IN",
              "LATE_CHECK_IN"
            ],
            "example": "LATE_CHECK_IN"
          },
          "checkInTime": {
            "description": "Requested time for check-in",
            "$ref": "#/components/schemas/TimeLocal"
          },
          "flightNumber": {
            "type": "string",
            "description": "Attach flight number",
            "example": "AC1234"
          },
          "additionalNote": {
            "type": "string",
            "description": "Free form text to describe special request",
            "example": "Extra pillows and blankets for added comfort during the stay."
          },
          "accessibleFeatures": {
            "type": "array",
            "description": "Accessible Features List",
            "items": {
              "$ref": "#/components/schemas/HotelAccessibleFeatureType"
            }
          }
        }
      },
      "HotelTravelerInfo": {
        "title": "HotelTravelerInfo",
        "description": "Hotel Traveler Info",
        "required": [
          "travelerIdx"
        ],
        "properties": {
          "travelerIdx": {
            "type": "integer",
            "description": "Index of traveler in travelers list to which this info belongs",
            "format": "int32",
            "example": 0,
            "minimum": 0
          },
          "userId": {
            "$ref": "#/components/schemas/UserId",
            "description": "User ID of traveler to which TravelerInfo belongs"
          },
          "loyaltyInfos": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LoyaltyInfo"
            }
          }
        }
      },
      "IdInfo": {
        "type": "object",
        "title": "IdInfo",
        "description": "Identity information of the buyer or seller",
        "required": [
          "idType",
          "value"
        ],
        "properties": {
          "idType": {
            "description": "The type of Id.",
            "type": "string",
            "enum": [
              "TAX_ID",
              "VAT_ID",
              "VAT_REG_NO",
              "GST_NO",
              "ABN",
              "GSTIN",
              "SIRET",
              "BUSINESS_REG_NO",
              "UID",
              "CVR_NO",
              "EIN"
            ],
            "example": "TAX_ID"
          },
          "value": {
            "description": "Value of the Id.",
            "type": "string",
            "example": "TXG239023092"
          }
        }
      },
      "IdentityDocument": {
        "type": "object",
        "title": "IdentityDocument",
        "description": "Identity document details. Currently supported documents are passport, immigration document, \nknown traveler number, redress number and national document.\n",
        "oneOf": [
          {
            "$ref": "#/components/schemas/PassportWrapper"
          },
          {
            "$ref": "#/components/schemas/ImmigrationDocumentWrapper"
          },
          {
            "$ref": "#/components/schemas/RedressNumberWrapper"
          },
          {
            "$ref": "#/components/schemas/KnownTravelerNumberWrapper"
          },
          {
            "$ref": "#/components/schemas/NationalDocWrapper"
          }
        ]
      },
      "Image": {
        "type": "object",
        "title": "Image",
        "description": "An image with meta data. Either the `data` or `url` property must be supplied to load the image.",
        "properties": {
          "data": {
            "type": "string",
            "format": "byte",
            "example": "6935813e12584abda0e43d71cd2ea260"
          },
          "dimensions": {
            "$ref": "#/components/schemas/Dimensions"
          },
          "url": {
            "type": "string",
            "example": "https://static.wixstatic.com/media/73f2e2_6935813e12584abda0e43d71cd2ea260~mv2.png/v1/fill/w_630,h_94,al_c,q_85,usm_0.66_1.00_0.01/Spotnana%403x.webp"
          }
        }
      },
      "ImageGroup": {
        "type": "object",
        "title": "ImageGroup",
        "description": "Contains different sizes of the same image.",
        "required": [
          "images"
        ],
        "properties": {
          "caption": {
            "type": "string",
            "description": "Caption for the image.",
            "example": "Exterior"
          },
          "images": {
            "type": "array",
            "description": "List of images.",
            "items": {
              "$ref": "#/components/schemas/Image"
            }
          }
        }
      },
      "ImmigrationDocument": {
        "type": "object",
        "title": "ImmigrationDocument",
        "description": "Immigration document details.",
        "required": [
          "docId",
          "expiryDate",
          "issueCountry"
        ],
        "properties": {
          "authorizedStayDuration": {
            "description": "Duration of the stay authorized by the immigration document.",
            "$ref": "#/components/schemas/Duration"
          },
          "docId": {
            "type": "string",
            "description": "The ID of the immigration document.",
            "example": "ImmigrationDocumentID"
          },
          "expiryDate": {
            "description": "The date on which the immigration document expires.",
            "$ref": "#/components/schemas/DateModel"
          },
          "issueCountry": {
            "type": "string",
            "description": "The country that issued the immigration document.",
            "example": "IN"
          },
          "issuedDate": {
            "description": "The date on which the immigration document was issued.",
            "$ref": "#/components/schemas/DateModel"
          },
          "nationalityCountry": {
            "type": "string",
            "example": "IN"
          },
          "reentryRequirementDuration": {
            "$ref": "#/components/schemas/Duration"
          },
          "type": {
            "type": "string",
            "enum": [
              "UNKNOWN",
              "VISA"
            ],
            "example": "VISA"
          }
        }
      },
      "ImmigrationDocumentWrapper": {
        "type": "object",
        "title": "ImmigrationDocumentWrapper",
        "properties": {
          "immigrationDoc": {
            "$ref": "#/components/schemas/ImmigrationDocument"
          }
        }
      },
      "IncludeLocation": {
        "type": "string",
        "title": "IncludeLocation",
        "description": "Various traveler notifications (e.g. emails) where the responses to this field should be included.",
        "enum": [
          "BOOKING_CONFIRMATION_EMAILS",
          "APPROVAL_EMAILS",
          "COMPANY_REPORTS",
          "CONSOLIDATED_ITINERARY_EMAILS"
        ],
        "example": "APPROVAL_EMAILS"
      },
      "Int32Range": {
        "type": "object",
        "properties": {
          "min": {
            "type": "integer",
            "format": "int32",
            "description": "Minimum value - inclusive."
          },
          "max": {
            "type": "integer",
            "format": "int32",
            "description": "Maximum value - inclusive."
          }
        }
      },
      "Int32RangeWrapper": {
        "type": "object",
        "title": "Int32RangeWrapper",
        "properties": {
          "iRange": {
            "$ref": "#/components/schemas/Int32Range"
          }
        }
      },
      "Int32Wrapper": {
        "type": "object",
        "title": "Int32Wrapper",
        "properties": {
          "i": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "Int64Wrapper": {
        "type": "object",
        "title": "Int64Wrapper",
        "properties": {
          "l": {
            "type": "integer",
            "format": "int64"
          }
        }
      },
      "IntListWrapper": {
        "type": "object",
        "title": "IntListWrapper",
        "properties": {
          "iList": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            }
          }
        }
      },
      "InternalTaskType": {
        "title": "InternalTaskType",
        "description": "Type of task",
        "type": "string",
        "enum": [
          "APPROVAL_DECLINED",
          "APPROVAL_TIMEOUT",
          "HARD_APPROVAL_INITIATED",
          "PNR_VOID_FAILURE",
          "UNHANDLED_APPROVAL_PENDING",
          "UNHANDLED_APPROVAL_ITINERARY_CHANGE",
          "UNHANDLED_APPROVAL_VOID_TOO_CLOSE",
          "UNHANDLED_APPROVAL_APPROVER_INVALID",
          "NEW_SEAT1A_BOOKING",
          "SEAT1A_REMINDER",
          "PNR_CANCELLATION_REQUIRED",
          "PNR_CANCELLATION_FAILURE",
          "UNUSED_CREDIT",
          "EXCHANGE_FAILURE",
          "AGENT_CREATED_TASK",
          "TRAVELER_LASTNAME_MISSPELLED",
          "VENDOR_CONFIRMATION_MISSING",
          "DUPLICATE_TICKETS",
          "QC_CHECK_FAILURE",
          "PNR_NOT_TICKETED",
          "PNR_NOT_FINALIZED",
          "QC_CHECK_ERROR",
          "DUPLICATE_BOOKING",
          "EXCHANGED_SEAT1A_BOOKING",
          "COMMISSION_PROCESSING_ERROR",
          "PRE_TICKETING_CHECK_FAILURE",
          "TICKETING_CHECK_FAILURE",
          "POST_TICKETING_CHECK_FAILURE",
          "PNR_IN_HOUSE_TICKETING_UNABLE_TO_ISSUE_TICKET",
          "FLIGHT_LAYOVER_CHECK",
          "RED_EYE_FLIGHT",
          "FLIGHT_METROPOLITAN_CHECK",
          "FRAUD_COUNTRY_DETECTED",
          "FRAUD_AIRPORT_DETECTED",
          "FARE_THRESHOLD_LIMIT_EXCEEDED",
          "HOTEL_METROPOLITAN_CHECK",
          "TIME_CONTINUITY_CHECK",
          "IN_HOUSE_UNUSED_CREDIT_CREATION_FAILURE",
          "SCHEDULE_CHANGE_MANUAL_REVIEW",
          "SCHEDULE_CHANGE_MANUAL_REVIEW_TRAVEL_SOON",
          "SCHEDULE_CHANGE_AUTO_ACCEPT_FAILED",
          "COMMISSION_NOT_PRESENT_IN_EXCHANGE_PNR",
          "VALIDATING_CARRIER_ERROR",
          "PAYMENT_CARD_NOT_ACCEPTED",
          "FRAUD_CITY_IN_PNR",
          "MISSING_SECURE_FLIGHT_INFO",
          "FRAUD_AIRPORT_IN_PNR",
          "DATE_OF_BIRTH_MISSING",
          "IRD_FARE_THRESHOLD_LIMIT_EXCEEDED",
          "BLOCKED_AIRLINES_IN_PNR",
          "IRD_REVIEW_MULTI_SEGMENT",
          "FOP_RULE_CHECK",
          "TEST_REMARK_REQUEST",
          "PNR_QUEUE_PLACEMENT_ERROR",
          "PNR_SYNC_FAILURE",
          "MCO_RESIDUAL",
          "PAYMENT_FAILED",
          "CAR_METROPOLITAN_CHECK",
          "CAR_TIME_CONTINUITY_CHECK",
          "SSR_OSI_VALIDATION_CHECK",
          "MCO_REDEMPTION_QC_CHECK",
          "UNUSED_CREDIT_NAME_CHANGE_REDEMPTION_QC_CHECK",
          "GDS_EXCHANGE_CHECK",
          "HX_STATUS",
          "HX_AUTOMATION",
          "FARE_THRESHOLD_ON_FLOW_CHECK",
          "BSP_EXCHANGE_EMD_QC_CHECK",
          "HOTEL_CANCELLATION_QC_CHECK",
          "IN_HOUSE_TICKETING_UNABLE_TO_ISSUE_TICKET_PAYMENT_FAILED",
          "HX_MANUAL_REVIEW",
          "VOUCHER_ACTIVATION_FAILED",
          "CONTACT_INFO_UPDATE_FAILED",
          "UNCONFIRMED_SEGMENT_MANUAL_REVIEW",
          "IN_HOUSE_TICKETING_UNABLE_TO_ISSUE_INVALID_PLATING_CARRIER",
          "IN_HOUSE_TICKETING_UNABLE_TO_ISSUE_ANCILLARY_BOOKING_ERROR",
          "SCHEDULE_CHANGE_TRAVELER_ACTION_PENDING",
          "RATE_CODE_UPDATE_FAILED"
        ],
        "x-enum-varnames": [
          "APPROVAL_DECLINED",
          "APPROVAL_TIMEOUT",
          "HARD_APPROVAL_INITIATED",
          "PNR_VOID_FAILURE",
          "UNHANDLED_APPROVAL_PENDING",
          "UNHANDLED_APPROVAL_ITINERARY_CHANGE",
          "UNHANDLED_APPROVAL_VOID_TOO_CLOSE",
          "UNHANDLED_APPROVAL_APPROVER_INVALID",
          "NEW_SEAT1A_BOOKING",
          "SEAT1A_REMINDER",
          "PNR_CANCELLATION_REQUIRED",
          "PNR_CANCELLATION_FAILURE",
          "UNUSED_CREDIT",
          "EXCHANGE_FAILURE",
          "AGENT_CREATED_TASK",
          "TRAVELER_LASTNAME_MISSPELLED",
          "VENDOR_CONFIRMATION_MISSING",
          "DUPLICATE_TICKETS",
          "QC_CHECK_FAILURE",
          "PNR_NOT_TICKETED",
          "PNR_NOT_FINALIZED",
          "QC_CHECK_ERROR",
          "DUPLICATE_BOOKING",
          "EXCHANGED_SEAT1A_BOOKING",
          "COMMISSION_PROCESSING_ERROR",
          "PRE_TICKETING_CHECK_FAILURE",
          "TICKETING_CHECK_FAILURE",
          "POST_TICKETING_CHECK_FAILURE",
          "PNR_IN_HOUSE_TICKETING_UNABLE_TO_ISSUE_TICKET",
          "FLIGHT_LAYOVER_CHECK",
          "RED_EYE_FLIGHT",
          "FLIGHT_METROPOLITAN_CHECK",
          "FRAUD_COUNTRY_DETECTED",
          "FRAUD_AIRPORT_DETECTED",
          "FARE_THRESHOLD_LIMIT_EXCEEDED",
          "HOTEL_METROPOLITAN_CHECK",
          "TIME_CONTINUITY_CHECK",
          "IN_HOUSE_UNUSED_CREDIT_CREATION_FAILURE",
          "SCHEDULE_CHANGE_MANUAL_REVIEW",
          "SCHEDULE_CHANGE_MANUAL_REVIEW_TRAVEL_SOON",
          "SCHEDULE_CHANGE_AUTO_ACCEPT_FAILED",
          "COMMISSION_NOT_PRESENT_IN_EXCHANGE_PNR",
          "VALIDATING_CARRIER_ERROR",
          "PAYMENT_CARD_NOT_ACCEPTED",
          "FRAUD_CITY_IN_PNR",
          "MISSING_SECURE_FLIGHT_INFO",
          "FRAUD_AIRPORT_IN_PNR",
          "DATE_OF_BIRTH_MISSING",
          "IRD_FARE_THRESHOLD_LIMIT_EXCEEDED",
          "BLOCKED_AIRLINES_IN_PNR",
          "IRD_REVIEW_MULTI_SEGMENT",
          "FOP_RULE_CHECK",
          "TEST_REMARK_REQUEST",
          "PNR_QUEUE_PLACEMENT_ERROR",
          "PNR_SYNC_FAILURE",
          "MCO_RESIDUAL",
          "PAYMENT_FAILED",
          "CAR_METROPOLITAN_CHECK",
          "CAR_TIME_CONTINUITY_CHECK",
          "SSR_OSI_VALIDATION_CHECK",
          "MCO_REDEMPTION_QC_CHECK",
          "UNUSED_CREDIT_NAME_CHANGE_REDEMPTION_QC_CHECK",
          "GDS_EXCHANGE_CHECK",
          "HX_STATUS",
          "HX_AUTOMATION",
          "FARE_THRESHOLD_ON_FLOW_CHECK",
          "BSP_EXCHANGE_EMD_QC_CHECK",
          "HOTEL_CANCELLATION_QC_CHECK",
          "IN_HOUSE_TICKETING_UNABLE_TO_ISSUE_TICKET_PAYMENT_FAILED",
          "HX_MANUAL_REVIEW",
          "VOUCHER_ACTIVATION_FAILED",
          "CONTACT_INFO_UPDATE_FAILED",
          "UNCONFIRMED_SEGMENT_MANUAL_REVIEW",
          "IN_HOUSE_TICKETING_UNABLE_TO_ISSUE_INVALID_PLATING_CARRIER",
          "IN_HOUSE_TICKETING_UNABLE_TO_ISSUE_ANCILLARY_BOOKING_ERROR",
          "SCHEDULE_CHANGE_TRAVELER_ACTION_PENDING",
          "RATE_CODE_UPDATE_FAILED"
        ],
        "example": "NEW_SEAT1A_BOOKING"
      },
      "InviteEmailConfig": {
        "title": "InviteEmailConfig",
        "description": "Configuration for event invite/reminder emails",
        "type": "object",
        "properties": {
          "emailExcludeCoordinatorInfo": {
            "type": "boolean",
            "description": "Whether to exclude coordinator information in emails sent to travelers.",
            "default": false,
            "example": true
          }
        }
      },
      "InvoiceInfo": {
        "type": "object",
        "title": "InvoiceInfo",
        "required": [
          "invoiceNumber",
          "productType",
          "invoiceId"
        ],
        "properties": {
          "invoiceNumber": {
            "type": "string",
            "description": "The invoice number for an invoice",
            "example": "SPOT-0001"
          },
          "productType": {
            "description": "Type of product for which invoice is generated.",
            "$ref": "#/components/schemas/ProductType"
          },
          "invoiceId": {
            "type": "string",
            "description": "Unique ID of the invoice.",
            "example": "2a5c0a73-1306-47f2-8210-7dfc812f4d0e"
          }
        }
      },
      "ItemGroup": {
        "type": "object",
        "title": "ItemGroup",
        "description": "This represents what has been purchased/refunded as a part of this ticket for air and confirmation for hotel,car and rail.",
        "properties": {
          "transactionType": {
            "description": "Type of this transaction",
            "$ref": "#/components/schemas/TransactionType"
          },
          "userId": {
            "description": "User id of the user to which the itemGroup is related",
            "$ref": "#/components/schemas/UserId"
          },
          "confirmationNumber": {
            "type": "string",
            "example": "2797091789401"
          },
          "transactionDateTime": {
            "description": "Date time of the transaction",
            "$ref": "#/components/schemas/DateTimeLocal"
          },
          "transactionAmountDiff": {
            "description": "Difference between amount relating to this itemGroup and last itemGroup having same confirmation number.",
            "$ref": "#/components/schemas/FareAmount"
          },
          "transactionFeesDiff": {
            "description": "Difference between airline fees in case of air and last itemGroup having same confirmation number.",
            "$ref": "#/components/schemas/Money"
          },
          "totalAmountDiff": {
            "description": "Difference between total amount for this itemGroup and last itemGroup having same confirmation number.",
            "$ref": "#/components/schemas/FareAmount"
          },
          "penaltyDiff": {
            "description": "Difference between penalty charged for this itemGroup and last itemGroup having same confirmation number.",
            "$ref": "#/components/schemas/Money"
          },
          "transactionAmount": {
            "description": "Amount relating to this itemGroup.",
            "$ref": "#/components/schemas/FareAmount"
          },
          "transactionFees": {
            "description": "Airline fees in case of air",
            "$ref": "#/components/schemas/Money"
          },
          "totalAmount": {
            "description": "Total amount for this itemGroup.",
            "$ref": "#/components/schemas/FareAmount"
          },
          "totalPnrAmount": {
            "description": "Total amount for this pnr up until this transaction.",
            "$ref": "#/components/schemas/Money"
          },
          "penalty": {
            "description": "Penalty charged for this itemGroup.",
            "$ref": "#/components/schemas/Money"
          },
          "originalTicketNumber": {
            "description": "Original ticket number if this is an exchanged ticket",
            "type": "string"
          },
          "invoiceData": {
            "description": "Invoice related data",
            "$ref": "#/components/schemas/ItemGroupInvoiceData"
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TransactionItem"
            }
          },
          "transactionFares": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TransactionFare"
            }
          },
          "previousTransactionFares": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TransactionFare"
            }
          },
          "transactionFareDetails": {
            "type": "array",
            "description": "Detailed fare information for email display.",
            "items": {
              "$ref": "#/components/schemas/TransactionFareDetail"
            }
          },
          "previousTransactionFareDetails": {
            "type": "array",
            "description": "Previous detailed fare information for email display.",
            "items": {
              "$ref": "#/components/schemas/TransactionFareDetail"
            }
          },
          "associatedTicketNumber": {
            "description": "Associated ticket number in case of penalty and taxes in separate ticket",
            "type": "string"
          }
        }
      },
      "ItemGroupInvoiceData": {
        "type": "object",
        "title": "ItemGroupInvoiceData",
        "description": "Data related to invoice is kept in this object for an item group",
        "properties": {
          "invoiceNumber": {
            "type": "string",
            "description": "The invoice number for an invoice",
            "example": 2797091789401
          },
          "buyer": {
            "$ref": "#/components/schemas/BuyerInfo",
            "description": "Buyer details in the invoice"
          },
          "seller": {
            "$ref": "#/components/schemas/SellerInfo",
            "description": "Seller details in the invoice"
          }
        }
      },
      "KeyValue": {
        "title": "KeyValue",
        "type": "object",
        "description": "A key-value structure.",
        "properties": {
          "key": {
            "type": "string",
            "description": "Header key."
          },
          "value": {
            "type": "string",
            "description": "Header value."
          }
        }
      },
      "KeywordWithReasonListWrapper": {
        "type": "object",
        "title": "KeywordWithReasonListWrapper",
        "properties": {
          "keywordWithReasonList": {
            "$ref": "#/components/schemas/KeywordsWithReasonList"
          }
        }
      },
      "KeywordsWithReasonList": {
        "type": "object",
        "properties": {
          "keywords": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RestrictedKeywordsWithReason"
            }
          }
        }
      },
      "KnownTravelerNumber": {
        "type": "object",
        "title": "KnownTravelerNumber",
        "description": "Information about the Known Traveler Number (KTN).",
        "required": [
          "number",
          "issueCountry"
        ],
        "properties": {
          "number": {
            "type": "string",
            "example": "12345"
          },
          "issueCountry": {
            "type": "string",
            "example": "US"
          }
        }
      },
      "KnownTravelerNumberWrapper": {
        "type": "object",
        "title": "KnownTravelerNumberWrapper",
        "properties": {
          "ktn": {
            "$ref": "#/components/schemas/KnownTravelerNumber"
          }
        }
      },
      "LLFPnrInfo": {
        "title": "LLFPnrInfo",
        "description": "Lowest logical fare info at pnr level",
        "required": [
          "totalFare"
        ],
        "properties": {
          "totalFare": {
            "$ref": "#/components/schemas/Money"
          }
        }
      },
      "Latlng": {
        "title": "Latlng",
        "description": "Latitude and Longitude for a Location",
        "type": "object",
        "required": [
          "latitude",
          "longitude"
        ],
        "properties": {
          "latitude": {
            "type": "number",
            "description": "Latitude of the Location",
            "format": "double",
            "example": 77.1025
          },
          "longitude": {
            "type": "number",
            "description": "Longitude of the Location",
            "format": "double",
            "example": 28.7041
          }
        }
      },
      "LayoutAmenity": {
        "type": "object",
        "title": "LayoutAmenity",
        "description": "Layout Amenity properties",
        "properties": {
          "displayText": {
            "type": "string",
            "example": "1-2-1 seat layout"
          },
          "directAisleAccess": {
            "type": "string",
            "example": "yes"
          }
        }
      },
      "LayoutAmenityWrapper": {
        "type": "object",
        "title": "LayoutAmenityWrapper",
        "properties": {
          "layoutAmenity": {
            "$ref": "#/components/schemas/LayoutAmenity"
          }
        }
      },
      "Leg": {
        "type": "object",
        "title": "FlightLeg",
        "description": "Leg info",
        "required": [
          "flights"
        ],
        "properties": {
          "flights": {
            "type": "array",
            "description": "List of flights in this leg",
            "items": {
              "$ref": "#/components/schemas/Flight"
            },
            "minItems": 1
          },
          "brandName": {
            "type": "string",
            "description": "Brand name",
            "example": "BUSFLEX"
          },
          "validatingAirlineCode": {
            "type": "string",
            "description": "2 letter IATA airline code for validating airline",
            "example": "AA"
          },
          "legStatus": {
            "description": "The leg status, which is supposed to be displayed to the end user.",
            "readOnly": true,
            "$ref": "#/components/schemas/UserFacingStatus"
          },
          "sortingPriority": {
            "type": "integer",
            "format": "int32",
            "readOnly": true,
            "description": "This field sets the sorting priority of the leg to determine its order of display on the\ntrips page\n",
            "example": 1
          },
          "travelerRestrictions": {
            "type": "array",
            "description": "Per traveler list of restrictions such as loyalty, ktn edit etc.",
            "readOnly": true,
            "items": {
              "type": "object",
              "title": "TravelerRestrictions",
              "required": [
                "userId"
              ],
              "properties": {
                "userId": {
                  "$ref": "#/components/schemas/UserId",
                  "description": "User ID of traveler to which this restriction applies"
                },
                "restrictions": {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "title": "Restriction",
                    "description": "Restrictions such as loyalty, KTN edit, etc.",
                    "enum": [
                      "NONE",
                      "SEAT_EDIT_NOT_ALLOWED",
                      "LOYALTY_EDIT_NOT_ALLOWED",
                      "KTN_EDIT_NOT_ALLOWED",
                      "REDRESS_EDIT_NOT_ALLOWED",
                      "SSR_EDIT_NOT_ALLOWED",
                      "OSI_EDIT_NOT_ALLOWED",
                      "SEAT_CHANGE_NOT_ALLOWED"
                    ],
                    "example": "KTN_EDIT_NOT_ALLOWED"
                  }
                }
              }
            }
          },
          "fareOffers": {
            "type": "array",
            "description": "Fare offers for this leg including baggage, cancellation policy, etc",
            "items": {
              "type": "object",
              "title": "FareOffers",
              "description": "Fare offers for a traveler",
              "required": [
                "userId"
              ],
              "properties": {
                "userId": {
                  "$ref": "#/components/schemas/UserId",
                  "description": "User ID of traveler to which this fare offer applies"
                },
                "baggagePolicy": {
                  "$ref": "#/components/schemas/BaggagePolicy"
                },
                "cancellationPolicy": {
                  "$ref": "#/components/schemas/CancellationPolicy1"
                },
                "exchangePolicy": {
                  "$ref": "#/components/schemas/ExchangePolicy"
                }
              }
            }
          },
          "legId": {
            "type": "string",
            "readOnly": true,
            "description": "Identifier for leg",
            "example": "1"
          },
          "rateType": {
            "description": "Type of fare booked for this leg",
            "$ref": "#/components/schemas/RateType"
          },
          "legUpdates": {
            "readOnly": true,
            "$ref": "#/components/schemas/LegUpdates"
          },
          "preferredTypes": {
            "type": "array",
            "readOnly": true,
            "deprecated": true,
            "x-sunset": "2026-07-01",
            "description": "Preference types for a leg, like org preferred, spotters choice, etc.",
            "items": {
              "$ref": "#/components/schemas/PreferredType"
            }
          },
          "preferences": {
            "type": "array",
            "readOnly": true,
            "description": "Preference info for a leg, like org preferred, spotters choice, etc.",
            "items": {
              "$ref": "#/components/schemas/Preference"
            }
          },
          "scheduleChangeInfo": {
            "$ref": "#/components/schemas/ScheduleChangeInfo"
          },
          "legIndex": {
            "type": "integer",
            "description": "Index of leg in the booking",
            "example": 0
          }
        }
      },
      "LegInfoRail": {
        "type": "object",
        "title": "LegInfoRail",
        "description": "LegInfo about a rail.",
        "properties": {
          "arrivalDateTime": {
            "description": "Date time of arrival.",
            "$ref": "#/components/schemas/DateTimeLocal"
          },
          "departureDateTime": {
            "description": "Date time of departure.",
            "$ref": "#/components/schemas/DateTimeLocal"
          },
          "originInfo": {
            "description": "Origin station info.",
            "$ref": "#/components/schemas/RailStationInfo"
          },
          "destinationInfo": {
            "description": "Destination station info.",
            "$ref": "#/components/schemas/RailStationInfo"
          }
        }
      },
      "LegMetadata": {
        "title": "LegMetadata",
        "description": "Leg metadata against which document is associated.",
        "type": "object",
        "properties": {
          "legId": {
            "type": "string",
            "description": "Unique identifier of the leg.",
            "example": "CgNTRk8SA0RFThoKNTQ1NzI5ODcxMQ=="
          }
        }
      },
      "LegMetadataWrapper": {
        "type": "object",
        "title": "LegMetadataWrapper",
        "properties": {
          "legMetadata": {
            "$ref": "#/components/schemas/LegMetadata"
          }
        }
      },
      "LegUpdates": {
        "type": "object",
        "title": "LegUpdates",
        "description": "Alerts like connection risk for a leg",
        "properties": {
          "connectionAlerts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ConnectionRiskAlert"
            }
          }
        }
      },
      "LegalEntityId": {
        "type": "object",
        "title": "LegalEntityId",
        "description": "The ID of the legal entity.",
        "required": [
          "id"
        ],
        "properties": {
          "id": {
            "type": "string",
            "example": "fc1ccbce-8413-4fe9-b233-a324dfbe7421"
          }
        }
      },
      "LegalEntityIdListWrapper": {
        "type": "object",
        "title": "LegalEntityIdListWrapper",
        "properties": {
          "legalEntityIdList": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LegalEntityId"
            }
          }
        }
      },
      "LegalEntityIdWrapper": {
        "type": "object",
        "title": "LegalEntityIdWrapper",
        "properties": {
          "legalEntityId": {
            "$ref": "#/components/schemas/LegalEntityId"
          }
        }
      },
      "Length": {
        "type": "object",
        "title": "Length",
        "description": "Specifies the length or a distance.",
        "required": [
          "length",
          "unit"
        ],
        "properties": {
          "length": {
            "type": "number",
            "description": "Distance from search point.",
            "format": "double",
            "example": 150
          },
          "unit": {
            "type": "string",
            "description": "Unit of measure being applied.",
            "enum": [
              "UNKNOWN_UNIT",
              "KM",
              "MILE",
              "CENTIMETER",
              "METER"
            ],
            "example": "MILE",
            "x-ignoreBreakingChanges": [
              "unit->CENTIMETER",
              "unit->METER"
            ]
          }
        }
      },
      "LengthWrapper": {
        "type": "object",
        "title": "LengthWrapper",
        "properties": {
          "length": {
            "$ref": "#/components/schemas/Length"
          }
        }
      },
      "LimoAmenities": {
        "type": "object",
        "title": "LimoAmenities",
        "description": "Limo car amenities.",
        "properties": {
          "numPassengers": {
            "type": "integer",
            "format": "int32",
            "description": "Number of passengers allowed."
          },
          "numSmallBags": {
            "type": "integer",
            "format": "int32",
            "description": "Number of small bags allowed."
          },
          "numLargeBags": {
            "type": "integer",
            "format": "int32",
            "description": "Number of large bags allowed."
          }
        }
      },
      "LimoInfo": {
        "title": "LimoInfo",
        "description": "Limo info",
        "required": [
          "legs",
          "limoDetails",
          "rate",
          "vendorConfirmationNumber"
        ],
        "properties": {
          "cancellationPolicy": {
            "$ref": "#/components/schemas/CancellationPolicy2",
            "description": "Limo cancellation policy."
          },
          "driver": {
            "type": "object",
            "title": "Driver",
            "description": "Driver details of the limo.",
            "required": [
              "name",
              "phone"
            ],
            "properties": {
              "name": {
                "type": "string",
                "description": "Driver name.",
                "example": "John Doe"
              },
              "phone": {
                "$ref": "#/components/schemas/PhoneNumber",
                "description": "Driver phone number."
              },
              "driverInstructions": {
                "type": "string",
                "description": "Notes to inform driver about any special instructions."
              }
            }
          },
          "legs": {
            "type": "array",
            "description": "List of legs covered in the booking.",
            "items": {
              "type": "object",
              "title": "LimoLegInfo",
              "description": "Leg info.",
              "required": [
                "dropOffLocation",
                "pickupDateTime",
                "pickupLocation"
              ],
              "properties": {
                "dropOffDateTime": {
                  "$ref": "#/components/schemas/DateTimeLocal",
                  "description": "Drop off date and time."
                },
                "dropOffLocation": {
                  "$ref": "#/components/schemas/CarLocation",
                  "description": "Drop off location."
                },
                "dropOffNotes": {
                  "type": "string",
                  "description": "Drop off notes for the driver."
                },
                "pickupDateTime": {
                  "$ref": "#/components/schemas/DateTimeLocal",
                  "description": "Pick up date and time."
                },
                "pickupLocation": {
                  "$ref": "#/components/schemas/CarLocation",
                  "description": "Pick up location."
                },
                "pickupNotes": {
                  "type": "string",
                  "description": "Pick up notes for the driver."
                },
                "sortingPriority": {
                  "type": "integer",
                  "format": "int32",
                  "description": "Sorting priority of this leg"
                }
              }
            }
          },
          "limoDetails": {
            "type": "object",
            "title": "LimoDetails",
            "description": "Limo details.",
            "required": [
              "carType",
              "electricVehicle"
            ],
            "properties": {
              "carType": {
                "type": "string",
                "title": "CarType",
                "description": "Limo type.",
                "enum": [
                  "UNKNOWN_CAR_TYPE",
                  "STANDARD_CAR",
                  "EXECUTIVE_CAR",
                  "BUSINESS_VAN",
                  "FIRST_CLASS",
                  "SUV",
                  "SEDAN",
                  "EXECUTIVE_SEDAN",
                  "LUXURY_SEDAN",
                  "EXECUTIVE_VAN",
                  "BUSINESS_SEDAN"
                ],
                "example": "STANDARD_CAR"
              },
              "electricVehicle": {
                "$ref": "#/components/schemas/ElectricVehicle",
                "description": "Whether the limo is electric."
              },
              "vendorName": {
                "type": "string",
                "description": "Vendor name of the limo.",
                "example": "NATIONAL",
                "deprecated": true,
                "x-sunset": "2026-07-01"
              },
              "limoVendorInfo": {
                "$ref": "#/components/schemas/LimoVendorInfo",
                "description": "Vendor details of the limo."
              },
              "amenities": {
                "$ref": "#/components/schemas/LimoAmenities",
                "description": "Contains information about amenities like number of seats, number of bags etc."
              }
            }
          },
          "bookingNotes": {
            "type": "string",
            "description": "Contains information about rate, cancellation policies and terms and conditions."
          },
          "duration": {
            "description": "Booking duration",
            "$ref": "#/components/schemas/Duration"
          },
          "notesToVendor": {
            "type": "string",
            "description": "Notes added by the booker for the vendor at the checkout."
          },
          "paymentType": {
            "type": "string",
            "description": "Payment type.",
            "enum": [
              "UNKNOWN_PAYMENT_TYPE",
              "PAY_AT_VENDOR",
              "PREPAID"
            ],
            "example": "PREPAID"
          },
          "pnrStatus": {
            "$ref": "#/components/schemas/PnrStatus",
            "description": "Pnr status."
          },
          "rate": {
            "$ref": "#/components/schemas/Cost",
            "description": "Limo rate."
          },
          "vendorConfirmationNumber": {
            "type": "string",
            "description": "Limo confirmation number.",
            "example": "2108528068"
          },
          "sourceStatus": {
            "type": "string",
            "description": "Source status code of the pnr"
          }
        }
      },
      "LimoItem": {
        "type": "object",
        "title": "LimoItem",
        "description": "This describes the limoItem related to a particular itemGroup.",
        "required": [
          "itemType"
        ],
        "properties": {
          "itemType": {
            "type": "string"
          },
          "pickupDateTime": {
            "description": "Check in date time.",
            "$ref": "#/components/schemas/DateTimeLocal"
          },
          "dropOffDateTime": {
            "description": "Check out date time.",
            "$ref": "#/components/schemas/DateTimeLocal"
          },
          "pickupLocation": {
            "description": "Pick up location.",
            "$ref": "#/components/schemas/CarLocation"
          },
          "dropOffLocation": {
            "description": "Drop off location.",
            "$ref": "#/components/schemas/CarLocation"
          },
          "limoType": {
            "description": "Car specific details.",
            "$ref": "#/components/schemas/LimoType"
          }
        }
      },
      "LimoType": {
        "type": "string",
        "description": "Limo type.",
        "enum": [
          "STANDARD_CAR",
          "EXECUTIVE_CAR",
          "BUSINESS_VAN",
          "FIRST_CLASS",
          "SUV",
          "SEDAN",
          "EXECUTIVE_SEDAN",
          "LUXURY_SEDAN",
          "EXECUTIVE_VAN",
          "BUSINESS_SEDAN"
        ],
        "example": "STANDARD_CAR"
      },
      "LimoVendorInfo": {
        "type": "object",
        "title": "LimoVendorInfo",
        "description": "Information about limo vendor.",
        "required": [
          "name"
        ],
        "properties": {
          "code": {
            "type": "string",
            "description": "Vendor code",
            "example": "ZE"
          },
          "name": {
            "type": "string",
            "description": "Vendor name",
            "example": "HERTZ"
          },
          "email": {
            "type": "string",
            "description": "Vendor Email",
            "example": "mail@mail.com"
          }
        }
      },
      "Location": {
        "title": "Location",
        "description": "Location details",
        "type": "object",
        "required": [
          "name"
        ],
        "properties": {
          "countryCode": {
            "type": "string",
            "description": "Unique country code for a location",
            "example": "TR"
          },
          "countryName": {
            "type": "string",
            "description": "Full name of the country",
            "example": "Turkey"
          },
          "googlePlaceId": {
            "type": "string",
            "description": "Unique place ID for the location assigned by Google",
            "example": "ChIJL_P_CXMEDTkRw0ZdG-0GVvw"
          },
          "latlong": {
            "$ref": "#/components/schemas/Latlng"
          },
          "name": {
            "type": "string",
            "description": "Full name of the Location",
            "example": "Denver"
          },
          "stateName": {
            "type": "string",
            "description": "Full name of the state",
            "example": "Colorado"
          }
        }
      },
      "LocationContactInfo": {
        "type": "object",
        "title": "LocationContactInfo",
        "description": "Contact info of the location",
        "properties": {
          "phone": {
            "type": "array",
            "items": {
              "type": "string",
              "description": "Phone number of the location",
              "example": "123 456-7890"
            }
          },
          "fax": {
            "type": "array",
            "items": {
              "type": "string",
              "description": "Fax contact for the location",
              "example": "123 456-7890"
            }
          },
          "email": {
            "type": "array",
            "items": {
              "type": "string",
              "description": "Email address of the location",
              "example": "user@business.com"
            }
          }
        }
      },
      "LocationOperatingSchedule": {
        "type": "object",
        "title": "LocationOperatingSchedule",
        "description": "Operating schedule of vendor",
        "required": [
          "interval"
        ],
        "properties": {
          "interval": {
            "type": "array",
            "description": "Operating schedule interval",
            "items": {
              "$ref": "#/components/schemas/DateTimeRange"
            }
          }
        }
      },
      "LoyaltyDetails": {
        "description": "Details about the traveler loyalty program and number.",
        "type": "object",
        "properties": {
          "loyaltyProgram": {
            "type": "string"
          },
          "loyaltyNumber": {
            "type": "string"
          }
        }
      },
      "LoyaltyInfo": {
        "type": "object",
        "title": "LoyaltyInfo",
        "description": "Loyalty Info details.",
        "required": [
          "id",
          "type",
          "issuedBy"
        ],
        "properties": {
          "appliedTo": {
            "type": "array",
            "items": {
              "type": "string",
              "example": "TAJ"
            }
          },
          "id": {
            "type": "string",
            "example": "firstId"
          },
          "issuedBy": {
            "type": "string",
            "example": "firstIssuedBy"
          },
          "type": {
            "type": "string",
            "enum": [
              "UNKNOWN_TYPE",
              "AIR",
              "HOTEL",
              "CAR",
              "RAIL"
            ],
            "example": "AIR"
          },
          "linked": {
            "type": "boolean",
            "description": "Indicates if this loyalty account is linked to the external provider. Only applicable for certain loyalty types.",
            "default": false,
            "example": false
          }
        }
      },
      "LuggageInfo": {
        "type": "object",
        "title": "Luggage",
        "description": "Additional luggage info",
        "required": [
          "weightKg",
          "amount"
        ],
        "properties": {
          "legIdx": {
            "type": "integer",
            "description": "Index of leg to which this luggage belongs. If -1, belongs to all legs",
            "format": "int32",
            "example": 0,
            "minimum": 0
          },
          "amount": {
            "$ref": "#/components/schemas/Money",
            "description": "Total price"
          },
          "weightKg": {
            "type": "integer",
            "format": "int32",
            "description": "Total weight in Kgs",
            "example": 40,
            "minimum": 0
          },
          "numBags": {
            "type": "integer",
            "format": "int32",
            "description": "Number of bags.",
            "example": 2,
            "minimum": 0
          },
          "status": {
            "type": "string",
            "description": "Status of baggage",
            "enum": [
              "UNKNOWN",
              "CONFIRMED",
              "PENDING",
              "CANCELLED"
            ],
            "example": "CONFIRMED"
          }
        }
      },
      "MaskAmenity": {
        "type": "object",
        "title": "MaskAmenity",
        "description": "Properties associated with the mask amenity.",
        "properties": {
          "displayText": {
            "type": "string",
            "description": "The basic text displayed for mask amenity.",
            "example": "Face covering required"
          },
          "maskDescription": {
            "type": "string",
            "description": "A full description of the mask amenity.",
            "example": "All passengers are required to wear a face covering throughout their journey"
          },
          "maskAttrDescription": {
            "type": "string",
            "example": "yes"
          }
        }
      },
      "MaskAmenityWrapper": {
        "type": "object",
        "title": "MaskAmenityWrapper",
        "properties": {
          "maskAmenity": {
            "$ref": "#/components/schemas/MaskAmenity"
          }
        }
      },
      "McoIssuanceEligibility": {
        "title": "McoIssuanceEligibility",
        "type": "string",
        "description": "Type of residue for cases where the ticket is exchanged to a lower amount",
        "enum": [
          "ELIGIBLE",
          "NOT_ELIGIBLE",
          "MAYBE_ELIGIBLE"
        ]
      },
      "MealPref": {
        "type": "object",
        "title": "MealPref",
        "description": "Meal preferences.",
        "properties": {
          "exclMealPrefs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MealType"
            }
          },
          "inclMealPrefs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MealType"
            }
          },
          "specialMealDescription": {
            "type": "string",
            "example": "Veg only meal"
          }
        }
      },
      "MealType": {
        "type": "string",
        "title": "MealType",
        "description": "Type of the meal",
        "enum": [
          "UNKNOWN_MEAL",
          "AVML",
          "BBML",
          "BLML",
          "CHML",
          "DBML",
          "FPML",
          "GFML",
          "HFML",
          "HNML",
          "KSML",
          "LCML",
          "LFML",
          "LPML",
          "LSML",
          "MOML",
          "NLML",
          "NSML",
          "ORML",
          "PFML",
          "RVML",
          "SFML",
          "SPML",
          "VGML",
          "VJML",
          "VLML",
          "VOML"
        ],
        "example": "VGML"
      },
      "MembershipInfo": {
        "type": "object",
        "description": "User's loyalty program membership details.",
        "properties": {
          "membershipInfos": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LoyaltyInfo"
            }
          },
          "isLoyaltyBlocked": {
            "type": "boolean",
            "description": "Whether user is blocked to use loyalty programs. This is a read only field.",
            "example": false
          }
        }
      },
      "MiscInfo": {
        "title": "MiscInfo",
        "description": "Misc info",
        "required": [
          "description",
          "endDateTime",
          "rate",
          "startDateTime",
          "vendorConfirmationNumber"
        ],
        "properties": {
          "description": {
            "type": "string",
            "description": "Description of the miscellaneous segment.",
            "example": "Any text info"
          },
          "endDateTime": {
            "$ref": "#/components/schemas/DateTimeLocal",
            "description": "End date and time."
          },
          "pnrStatus": {
            "$ref": "#/components/schemas/PnrStatus",
            "description": "Pnr status."
          },
          "rate": {
            "$ref": "#/components/schemas/Cost",
            "description": "Miscellaneous segment rate."
          },
          "startDateTime": {
            "$ref": "#/components/schemas/DateTimeLocal",
            "description": "Start date and time."
          },
          "vendorConfirmationNumber": {
            "type": "string",
            "description": "Miscellaneous segment confirmation number.",
            "example": "2108528068"
          },
          "sortingPriority": {
            "type": "integer",
            "format": "int32",
            "description": "Sorting priority of this pnr",
            "example": 10
          },
          "sourceStatus": {
            "type": "string",
            "description": "Source status code of the pnr"
          }
        }
      },
      "MiscItem": {
        "type": "object",
        "title": "MiscItem",
        "description": "This describes the Miscellaneous Item related to a particular itemGroup.",
        "required": [
          "itemType"
        ],
        "properties": {
          "itemType": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "startDateTime": {
            "description": "Start date time of the booking.",
            "$ref": "#/components/schemas/DateTimeLocal"
          },
          "endDateTime": {
            "description": "End date time of the booking.",
            "$ref": "#/components/schemas/DateTimeLocal"
          }
        }
      },
      "Money": {
        "type": "object",
        "title": "Money",
        "description": "Money object containing details such as the amount, the currency code, and the converted amount.\n",
        "required": [
          "amount",
          "currencyCode"
        ],
        "properties": {
          "amount": {
            "type": "number",
            "format": "double",
            "description": "The numeric value for the amount of money.",
            "example": 510
          },
          "currencyCode": {
            "type": "string",
            "description": "The 3-letter currency code for the money amount (defined using ISO 4217 standard).",
            "example": "GBP"
          },
          "convertedAmount": {
            "type": "number",
            "format": "double",
            "description": "The converted currency and amount that has been converted (if a currency conversion has been requested).\nFor example, if the call requests that money be sent in a specified currency (because the frontend requested\nthe backend to send money in the user's preferred currency).\n",
            "example": 715.42
          },
          "convertedCurrency": {
            "type": "string",
            "description": "The 3-letter currency code for the converted currency (defined using ISO 4217 standard).",
            "example": "USD"
          },
          "otherCoinage": {
            "type": "array",
            "title": "OtherCoinage",
            "description": "List of the dollar amount in other coinage systems like reward points, cryptocurrency etc.",
            "items": {
              "type": "object",
              "properties": {
                "coinageCode": {
                  "$ref": "#/components/schemas/PaymentMethod",
                  "description": "Payment method"
                },
                "amount": {
                  "type": "number",
                  "format": "double",
                  "example": 1000
                },
                "conversionRate": {
                  "type": "number",
                  "format": "double",
                  "description": "1 coin in this system equals to how many currency value",
                  "example": 0.01
                },
                "preferredCurrencyConversionRate": {
                  "type": "number",
                  "format": "double",
                  "description": "1 coin in this system equals to how many currency value",
                  "example": 0.01
                }
              }
            }
          }
        }
      },
      "MoneyWrapper": {
        "type": "object",
        "title": "MoneyWrapper",
        "properties": {
          "money": {
            "$ref": "#/components/schemas/Money"
          }
        }
      },
      "Name": {
        "type": "object",
        "title": "Name",
        "description": "Full name containing first, middle, last (family) names, and suffix.",
        "required": [
          "given",
          "family1"
        ],
        "properties": {
          "family1": {
            "type": "string",
            "description": "Last (family) name.",
            "example": "Gandas"
          },
          "family2": {
            "type": "string",
            "example": "FamilyTwo"
          },
          "given": {
            "type": "string",
            "description": "First (given) name.",
            "example": "Vichitr"
          },
          "middle": {
            "type": "string",
            "description": "Middle name.",
            "example": "Kumar"
          },
          "suffix": {
            "$ref": "#/components/schemas/NameSuffix",
            "description": "Suffix used with the name. For example SR or JR.",
            "example": "SR"
          },
          "preferred": {
            "type": "string",
            "description": "Informal preferred name added by traveler. This is not used on any PNR or tickets",
            "example": "Don"
          }
        }
      },
      "NameSuffix": {
        "title": "NameSuffix",
        "description": "Suffix for name",
        "type": "string",
        "enum": [
          "NAME_SUFFIX_UNKNOWN",
          "SR",
          "JR",
          "MD",
          "PHD",
          "II",
          "III",
          "IV",
          "DO",
          "ATTY",
          "V",
          "VI",
          "ESQ",
          "DC",
          "DDS",
          "VM",
          "JD",
          "SECOND",
          "THIRD"
        ],
        "example": "SR"
      },
      "NationalDoc": {
        "type": "object",
        "title": "NationalDoc",
        "description": "National Document Id details.",
        "required": [
          "docId",
          "issueCountry"
        ],
        "properties": {
          "docId": {
            "type": "string",
            "description": "Unique id identifying the national document.",
            "example": "NationalDocId"
          },
          "issueCountry": {
            "type": "string",
            "description": "IS0 2 letter country code of the country issuing this id.",
            "example": "IN"
          },
          "issuedDate": {
            "$ref": "#/components/schemas/DateModel"
          },
          "expiryDate": {
            "$ref": "#/components/schemas/DateModel"
          },
          "type": {
            "type": "string",
            "enum": [
              "DNI",
              "NIE"
            ],
            "example": "DNI"
          }
        }
      },
      "NationalDocWrapper": {
        "type": "object",
        "title": "NationalDocWrapper",
        "properties": {
          "nationalDoc": {
            "$ref": "#/components/schemas/NationalDoc"
          }
        }
      },
      "NonBillableReason": {
        "type": "object",
        "title": "NonBillableReason",
        "description": "Reason for non-billable agent contact.",
        "required": [
          "reasonCode"
        ],
        "properties": {
          "reasonCode": {
            "$ref": "#/components/schemas/NonBillableReasonCode",
            "description": "Reason code for non-billable agent contact.",
            "example": "MINOR_REQUEST"
          },
          "notes": {
            "type": "string",
            "description": "Notes for non-billable agent contact.",
            "example": "Waived off"
          }
        }
      },
      "NonBillableReasonCode": {
        "type": "string",
        "title": "NonBillableReasonCode",
        "description": "Reason code for non-billable agent contact.",
        "enum": [
          "PRODUCT_ISSUE",
          "ALREADY_CHARGED",
          "CUSTOMER_GOODWILL",
          "MINOR_REQUEST",
          "NON_BILLABLE_REASON_OTHER"
        ]
      },
      "NotificationEmailPreference": {
        "type": "object",
        "title": "NotificationEmailPreference",
        "description": "Email preference for notification type.",
        "properties": {
          "enabled": {
            "type": "boolean",
            "description": "Whether the email preference is enabled or not.",
            "default": true
          },
          "ccEmails": {
            "type": "array",
            "description": "List of cc emails for the email preference.",
            "items": {
              "type": "string",
              "format": "email"
            }
          }
        }
      },
      "NotificationPreferencePerType": {
        "type": "object",
        "title": "NotificationPreferencePerType",
        "description": "Notification preference for a notification type.",
        "properties": {
          "notificationType": {
            "$ref": "#/components/schemas/NotificationType"
          },
          "emailPreference": {
            "$ref": "#/components/schemas/NotificationEmailPreference"
          }
        }
      },
      "NotificationPreferences": {
        "type": "object",
        "title": "NotificationPreferences",
        "description": "Notification preferences of a user for different notification types.",
        "properties": {
          "preferences": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NotificationPreferencePerType"
            }
          }
        }
      },
      "NotificationType": {
        "type": "string",
        "enum": [
          "FLIGHT_NOTIFICATION",
          "BOOKING_NOTIFICATION"
        ]
      },
      "NumStopsPref": {
        "type": "object",
        "title": "NumStopsPref",
        "description": "Preferred number of stops.",
        "required": [
          "numOfStops"
        ],
        "properties": {
          "numOfStops": {
            "type": "integer",
            "format": "int32",
            "example": 34
          }
        }
      },
      "Office": {
        "type": "object",
        "title": "Office",
        "description": "Office details.",
        "required": [
          "id",
          "name"
        ],
        "properties": {
          "address": {
            "$ref": "#/components/schemas/PostalAddress"
          },
          "id": {
            "$ref": "#/components/schemas/OfficeId"
          },
          "name": {
            "type": "string",
            "example": "Office"
          },
          "latlng": {
            "$ref": "#/components/schemas/Latlng"
          },
          "taxId": {
            "type": "string",
            "example": "133232"
          }
        }
      },
      "OfficeId": {
        "type": "object",
        "title": "OfficeId",
        "description": "The unique ID of the office.",
        "required": [
          "id"
        ],
        "properties": {
          "id": {
            "type": "string",
            "description": "The value of the unique ID for the office.",
            "example": "531ccbce-8413-4fe9-b233-a324dfbe7421"
          }
        }
      },
      "OfficeIdListWrapper": {
        "type": "object",
        "title": "OfficeIdListWrapper",
        "properties": {
          "officeIdList": {
            "type": "array",
            "description": "A list of office IDs.",
            "items": {
              "$ref": "#/components/schemas/OfficeId"
            }
          }
        }
      },
      "OfficeIdWrapper": {
        "type": "object",
        "title": "OfficeIdWrapper",
        "properties": {
          "officeId": {
            "$ref": "#/components/schemas/OfficeId"
          }
        }
      },
      "OperationSummary": {
        "type": "object",
        "description": "Operation summary for webhook payload",
        "properties": {
          "ticketsIssued": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "The tickets issued"
          },
          "ticketsVoided": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "The tickets voided"
          },
          "ticketsRefunded": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "The tickets refunded"
          }
        }
      },
      "Option": {
        "type": "object",
        "title": "Option",
        "description": "Answer option for a question",
        "required": [
          "displayCode"
        ],
        "properties": {
          "displayCode": {
            "type": "string",
            "description": "The code which is sent in answer response."
          },
          "displayValue": {
            "type": "string",
            "description": "The text to be displayed to the user beside this option."
          }
        }
      },
      "OptionInfo": {
        "type": "object",
        "title": "OptionInfo",
        "description": "Options related information for the question.",
        "required": [
          "source"
        ],
        "properties": {
          "source": {
            "$ref": "#/components/schemas/OptionSource",
            "default": "MANUAL"
          },
          "sourceMetadata": {
            "$ref": "#/components/schemas/OptionSourceMetadata"
          },
          "totalNumOptions": {
            "type": "integer",
            "description": "Total number of options"
          },
          "options": {
            "type": "array",
            "description": "Available options for the question. This will contain only max 10 options if only \nsummary is requested.\n",
            "items": {
              "$ref": "#/components/schemas/Option"
            }
          }
        }
      },
      "OptionSource": {
        "type": "string",
        "enum": [
          "MANUAL",
          "COMPANY_CONFIG"
        ],
        "description": "Option source",
        "example": "MANUAL"
      },
      "OptionSourceMetadata": {
        "type": "object",
        "title": "OptionSourceMetadata",
        "description": "Metadata information for the option source.",
        "oneOf": [
          {
            "$ref": "#/components/schemas/CompanyConfigSourceWrapper"
          }
        ]
      },
      "OrganizationAgencyId": {
        "type": "object",
        "title": "OrganizationAgencyId",
        "description": "Agency id for the organization.",
        "deprecated": true,
        "x-sunset": "2026-07-01",
        "required": [
          "id"
        ],
        "properties": {
          "id": {
            "type": "string"
          }
        }
      },
      "OrganizationBasicInfo": {
        "type": "object",
        "title": "OrganizationBasicInfo",
        "description": "Basic information about the organization",
        "required": [
          "orgName"
        ],
        "properties": {
          "orgId": {
            "type": "string",
            "example": "4974a66b-7493-4f41-908c-58ba81093947"
          },
          "orgName": {
            "type": "string",
            "example": "Spotnana"
          },
          "emailDomains": {
            "type": "array",
            "description": "List of the email domains",
            "items": {
              "type": "string",
              "description": "Email domain"
            }
          }
        }
      },
      "OrganizationId": {
        "type": "object",
        "title": "OrganizationId",
        "description": "Organization id for traveler.",
        "required": [
          "id"
        ],
        "properties": {
          "id": {
            "type": "string"
          }
        }
      },
      "OriginalTicketDetails": {
        "type": "object",
        "title": "OriginalTicketDetails",
        "description": "Original ticket details in case of an exchange ticket.",
        "required": [
          "ticketNumber"
        ],
        "properties": {
          "ticketNumber": {
            "type": "string",
            "description": "Ticket number of the original ticket.",
            "example": "1234567890"
          },
          "amount": {
            "$ref": "#/components/schemas/FareAmount",
            "description": "Face value of the original ticket."
          },
          "taxBreakdown": {
            "$ref": "#/components/schemas/PnrTaxBreakdown",
            "description": "Tax breakdown of the original ticket."
          },
          "conjunctionTicketSuffix": {
            "type": "string",
            "description": "Conjunction ticket suffix.",
            "example": "A"
          },
          "cogsAmount": {
            "$ref": "#/components/schemas/FareAmount",
            "description": "The cost amount of original ticket"
          },
          "cogsRefund": {
            "$ref": "#/components/schemas/FareAmount",
            "description": "COGS refund in original ticket as part of this exchange"
          },
          "ctcRefund": {
            "$ref": "#/components/schemas/FareAmount",
            "description": "CTC refund in original ticket as part of this exchange"
          },
          "fop": {
            "description": "Form of payment",
            "$ref": "#/components/schemas/FormOfPayment"
          }
        }
      },
      "OtherAncillaryFare": {
        "type": "object",
        "title": "OtherAncillaryFare",
        "description": "Other ancillary fare info",
        "required": [
          "type",
          "totalFare"
        ],
        "properties": {
          "type": {
            "$ref": "#/components/schemas/AncillaryType"
          },
          "totalFare": {
            "$ref": "#/components/schemas/FareAmount",
            "description": "Total fare for this ancillary"
          }
        }
      },
      "OtherFeeInfo": {
        "type": "object",
        "title": "OtherFeeInfo",
        "description": "Other Fee Info",
        "required": [
          "bookingFeeType",
          "otherFeeType"
        ],
        "properties": {
          "bookingFeeType": {
            "type": "string",
            "description": "Type of the booking fee",
            "example": "OTHER_FEE"
          },
          "calculatedAmount": {
            "$ref": "#/components/schemas/Money"
          },
          "chargeProcessorInfo": {
            "$ref": "#/components/schemas/ChargeProcessorInfo"
          },
          "otherFeeType": {
            "$ref": "#/components/schemas/OtherFeeType"
          },
          "feeName": {
            "type": "string",
            "description": "Name of the fee to be charged.",
            "example": "TMC Standard Fee"
          }
        }
      },
      "OtherFeeType": {
        "type": "string",
        "title": "OtherFeeType",
        "description": "Other fee type",
        "enum": [
          "MERCHANT_FEE"
        ],
        "example": "MERCHANT_FEE"
      },
      "OtherServiceInformationDetail": {
        "title": "OtherServiceInformationDetail",
        "description": "Other Service Information (OSI) details.",
        "properties": {
          "customText": {
            "type": "string",
            "description": "The special instruction is given in the form of text.",
            "example": "Wheelchair access"
          },
          "flightIndexes": {
            "type": "array",
            "description": "Index of flight mapping with the OSI, starts with 0. One OSI belong to one airline, so all the segments of an airline will have the same OSI.",
            "items": {
              "$ref": "#/components/schemas/FlightAndLegIndex"
            }
          }
        }
      },
      "OwnershipLabel": {
        "title": "OwnershipLabel",
        "type": "string",
        "description": "Ownership label of the card whether it is personal, corporate or central.",
        "enum": [
          "CORPORATE",
          "PERSONAL",
          "CENTRAL"
        ]
      },
      "OwningPCCInfo": {
        "type": "object",
        "title": "OwningPCCInfo",
        "properties": {
          "zoneId": {
            "type": "string",
            "description": "Zone id of the PCC",
            "example": "America/Chicago"
          }
        }
      },
      "PassengerAge": {
        "title": "PassengerAge",
        "type": "object",
        "required": [
          "numYears"
        ],
        "description": "Age of the traveler",
        "properties": {
          "numYears": {
            "type": "integer",
            "description": "Age of the passenger",
            "example": 22
          }
        }
      },
      "PassengerCapacityAmenity": {
        "type": "object",
        "title": "PassengerCapacityAmenity",
        "description": "Passenger capacity amenity properties.",
        "properties": {
          "displayText": {
            "type": "string",
            "example": "Standard passenger capacity"
          },
          "passengerCapacityDescription": {
            "type": "string",
            "example": "Ticket sales are not limited for this flight"
          },
          "passengerCapacityAttrDescription": {
            "type": "string",
            "example": "no"
          }
        }
      },
      "PassengerCapacityAmenityWrapper": {
        "type": "object",
        "title": "PassengerCapacityAmenityWrapper",
        "properties": {
          "passengerCapacityAmenity": {
            "$ref": "#/components/schemas/PassengerCapacityAmenity"
          }
        }
      },
      "PassengerType": {
        "title": "PassengerType",
        "description": "Type of passenger",
        "type": "string",
        "enum": [
          "UNKNOWN_PASSENGER_TYPE",
          "ADULT",
          "CHILD",
          "INFANT",
          "INFANT_ON_LAP",
          "YOUTH",
          "SENIOR",
          "TEEN"
        ],
        "example": "ADULT"
      },
      "Passport": {
        "type": "object",
        "title": "Passport",
        "description": "Passport details.",
        "required": [
          "docId",
          "expiryDate",
          "issueCountry",
          "nationalityCountry"
        ],
        "properties": {
          "docId": {
            "type": "string",
            "example": "PassportID"
          },
          "expiryDate": {
            "$ref": "#/components/schemas/DateModel"
          },
          "issueCountry": {
            "type": "string",
            "example": "IN"
          },
          "issuedDate": {
            "$ref": "#/components/schemas/DateModel"
          },
          "nationalityCountry": {
            "type": "string",
            "example": "IN"
          },
          "type": {
            "type": "string",
            "enum": [
              "UNKNOWN",
              "REGULAR"
            ],
            "example": "REGULAR"
          }
        }
      },
      "PassportWrapper": {
        "type": "object",
        "title": "PassportWrapper",
        "properties": {
          "passport": {
            "$ref": "#/components/schemas/Passport"
          }
        }
      },
      "Payment": {
        "title": "Payment",
        "description": "This will contain the total fare of goods along with other charges like service fee. The price\nbreak down of goods should be added in PNR details, like airPnr\n",
        "type": "object",
        "required": [
          "travelerIndices",
          "paymentType"
        ],
        "properties": {
          "travelerIndices": {
            "type": "array",
            "description": "The list of traveler indices on which this payment applies.",
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "minItems": 1,
            "example": [
              0,
              1
            ]
          },
          "userIds": {
            "type": "array",
            "description": "The list of traveler user IDs on which this payment applies.",
            "items": {
              "$ref": "#/components/schemas/UserId"
            }
          },
          "amount": {
            "description": "Total amount",
            "$ref": "#/components/schemas/FareAmount"
          },
          "fop": {
            "$ref": "#/components/schemas/FormOfPayment"
          },
          "paymentReference": {
            "type": "string",
            "description": "Reference number for original payment made for this service",
            "example": "HAH2618716871"
          },
          "paymentType": {
            "type": "string",
            "description": "Service for which this payment is made",
            "enum": [
              "UNKNOWN",
              "FLIGHTS",
              "SERVICE_FEE",
              "MISCELLANEOUS",
              "HOTELS",
              "CARS",
              "RAILS",
              "LIMO",
              "MISC"
            ],
            "example": "FLIGHTS"
          },
          "paymentThirdParty": {
            "type": "string",
            "description": "Third party who is processing the payment",
            "enum": [
              "UNKNOWN_PARTY",
              "STRIPE",
              "TFPAY",
              "TRAINLINE",
              "BREX",
              "OUTSIDE_OBT",
              "RAZORPAY"
            ],
            "example": "STRIPE"
          },
          "paymentId": {
            "type": "string",
            "description": "The payment id for this transaction"
          },
          "paymentGateway": {
            "type": "string",
            "description": "Third party payment gateway used to process the payment",
            "enum": [
              "PAYMENT_GATEWAY_UNKNOWN",
              "STRIPE",
              "BREX"
            ],
            "example": "STRIPE"
          },
          "isRefunded": {
            "type": "boolean",
            "description": "Whether the payment is refunded to the customer",
            "example": false
          },
          "selectedPaymentSource": {
            "$ref": "#/components/schemas/SelectedPaymentSource"
          },
          "networkTransactionId": {
            "type": "string",
            "description": "Network transaction id provided by the card network. Applicable only for cards.",
            "example": "721107212171711"
          },
          "tmcGatewayInfo": {
            "$ref": "#/components/schemas/TmcGatewayInfo"
          }
        }
      },
      "PaymentData": {
        "type": "object",
        "title": "PaymentData",
        "description": "Payment related data for the given transaction",
        "properties": {
          "isRefunded": {
            "type": "boolean",
            "description": "If the relevant amount was refunded.",
            "example": true
          },
          "amount": {
            "description": "Amount relating to this payment method",
            "$ref": "#/components/schemas/Money"
          },
          "fop": {
            "description": "fop used for this payment amount",
            "$ref": "#/components/schemas/FormOfPayment"
          },
          "isGuarantee": {
            "type": "boolean",
            "description": "If the booking can be reserved now and paid later on site.",
            "example": true
          },
          "transactionStatus": {
            "description": "Status of the service fee transaction.",
            "$ref": "#/components/schemas/TransactionStatus"
          },
          "balanceDue": {
            "description": "Balance amount due for this payment method.",
            "$ref": "#/components/schemas/Money"
          }
        }
      },
      "PaymentInfo": {
        "type": "object",
        "title": "PaymentInfo",
        "description": "Payment information.",
        "required": [
          "card"
        ],
        "properties": {
          "applicableTo": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "UNKNOWN_APPLICABLE_TO",
                "AIR",
                "HOTEL",
                "RAIL",
                "CAR",
                "SERVICE_FEE"
              ],
              "example": "HOTEL"
            }
          },
          "card": {
            "$ref": "#/components/schemas/Card"
          },
          "accessType": {
            "$ref": "#/components/schemas/CreditCardAccessType"
          },
          "access": {
            "$ref": "#/components/schemas/CreditCardAccess"
          }
        }
      },
      "PaymentMetadata": {
        "title": "PaymentMetadata",
        "description": "Payment metadata related to form of payment",
        "type": "object",
        "properties": {
          "customPaymentMethodMetadata": {
            "type": "object",
            "description": "Metadata related to custom payment method",
            "properties": {
              "brexBudgetMetadata": {
                "type": "object",
                "description": "Metadata for Brex Budget",
                "properties": {
                  "budgetName": {
                    "type": "string",
                    "description": "Name of the budget",
                    "example": "Travel budget"
                  },
                  "paidByPersonalCard": {
                    "type": "boolean",
                    "description": "Whether it was paid by budget card or personal card",
                    "example": false
                  }
                }
              }
            }
          },
          "vendorProgramPaymentMetadata": {
            "$ref": "#/components/schemas/VendorProgramPaymentMetadata2"
          },
          "virtualCardMetadata": {
            "$ref": "#/components/schemas/VirtualCardPaymentMetadata"
          },
          "cardMetadata": {
            "$ref": "#/components/schemas/CardMetadata2"
          }
        }
      },
      "PaymentMethod": {
        "type": "string",
        "description": "Payment method",
        "enum": [
          "PAYMENT_METHOD_UNKNOWN",
          "CREDIT_CARD",
          "BREX_POINTS",
          "CASH",
          "QANTAS_POINTS",
          "VENDOR_PROGRAM_PAYMENT",
          "DELAYED_INVOICING",
          "FLIGHT_CREDITS",
          "QANTAS_TRAVEL_FUND",
          "CUSTOM_VIRTUAL_PAYMENT",
          "FLIGHT_PASS",
          "MISCELLANEOUS_CREDIT_ORDER"
        ],
        "x-ignoreBreakingChanges": [
          "PaymentMethod->MISCELLANEOUS_CREDIT_ORDER"
        ],
        "example": "BREX_POINTS"
      },
      "PaymentSourceType": {
        "type": "string",
        "description": "Type of Payment Source",
        "enum": [
          "CARD",
          "VIRTUAL_CARD",
          "REWARDS_PROGRAM",
          "DELAYED_INVOICING",
          "CUSTOM_PAYMENT_METHOD",
          "VENDOR_PROGRAM_PAYMENT",
          "UNUSED_CREDIT",
          "CASH"
        ]
      },
      "PaymentStatus": {
        "type": "string",
        "title": "PaymentStatus",
        "description": "Payment status.",
        "enum": [
          "SUCCESS",
          "DELAYED_INVOICE",
          "MANUAL",
          "NO_CHARGE",
          "WAIVED_OFF"
        ]
      },
      "PaymentTransaction": {
        "type": "object",
        "title": "PaymentTransaction",
        "description": "Payment Transaction",
        "properties": {
          "gatewayIdentifier": {
            "description": "Gateway Identifier",
            "$ref": "#/components/schemas/GatewayIdentifier"
          },
          "paymentReference": {
            "type": "string",
            "description": "payment reference"
          },
          "networkTransactionId": {
            "type": "string",
            "description": "Network Transaction Id"
          },
          "gatewayInfo": {
            "$ref": "#/components/schemas/GatewayInfo"
          },
          "failureReason": {
            "$ref": "#/components/schemas/FailureReason"
          }
        }
      },
      "PaymentTransactionInfo": {
        "title": "PaymentTransactionInfo",
        "type": "object",
        "description": "Payment transaction information",
        "properties": {
          "paymentReference": {
            "type": "string",
            "description": "Payment transaction reference",
            "example": "pi_2PAlaAIE$aaaaAaA0bLqk9AI"
          },
          "networkTransactionId": {
            "type": "string",
            "description": "Network transaction id provided by the card network. Applicable only for cards.",
            "example": "721107212171711"
          },
          "gatewayInfo": {
            "$ref": "#/components/schemas/GatewayInfo"
          },
          "failureReason": {
            "$ref": "#/components/schemas/FailureReason"
          },
          "gatewayId": {
            "type": "string",
            "description": "GatewayId for related gatewayInfo.",
            "example": "demo-us:1"
          }
        }
      },
      "PercentageWrapper": {
        "type": "object",
        "title": "PercentageWrapper",
        "properties": {
          "percentage": {
            "type": "number",
            "format": "double"
          }
        }
      },
      "Persona": {
        "type": "string",
        "title": "Persona",
        "description": "Persona of the user",
        "enum": [
          "UNKNOWN_PERSONA",
          "EMPLOYEE",
          "GUEST",
          "PERSONAL",
          "RELATIVE",
          "ADHOC"
        ],
        "example": "EMPLOYEE"
      },
      "PersonaListWrapper": {
        "type": "object",
        "title": "PersonaListWrapper",
        "properties": {
          "personaList": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Persona"
            }
          }
        }
      },
      "PersonaWrapper": {
        "type": "object",
        "title": "PersonaWrapper",
        "properties": {
          "persona": {
            "$ref": "#/components/schemas/Persona"
          }
        }
      },
      "PhoneNumber": {
        "type": "object",
        "title": "PhoneNumber",
        "description": "Properly formatted phone number.",
        "properties": {
          "countryCode": {
            "type": "integer",
            "format": "int32",
            "description": "two digit country code",
            "example": 91
          },
          "countryCodeSource": {
            "type": "string",
            "enum": [
              "UNSPECIFIED",
              "FROM_NUMBER_WITH_PLUS_SIGN",
              "FROM_NUMBER_WITH_IDD",
              "FROM_NUMBER_WITHOUT_PLUS_SIGN",
              "FROM_DEFAULT_COUNTRY"
            ],
            "example": "FROM_NUMBER_WITH_PLUS_SIGN"
          },
          "extension": {
            "description": "phone number extension",
            "type": "string",
            "example": "222"
          },
          "isoCountryCode": {
            "description": "ISO alpha-2 code",
            "type": "string",
            "example": "IN"
          },
          "italianLeadingZero": {
            "type": "boolean",
            "default": false,
            "example": true
          },
          "nationalNumber": {
            "type": "integer",
            "format": "int64",
            "example": 8150
          },
          "numberOfLeadingZeros": {
            "type": "integer",
            "format": "int32",
            "default": 0,
            "example": 1
          },
          "preferredDomesticCarrierCode": {
            "type": "string",
            "example": "7"
          },
          "rawInput": {
            "type": "string",
            "example": "77777"
          },
          "type": {
            "type": "string",
            "enum": [
              "UNKNOWN_TYPE",
              "MOBILE",
              "LANDLINE"
            ],
            "example": "MOBILE"
          }
        }
      },
      "PnrApproval": {
        "type": "object",
        "x-ignore-naming-case": true,
        "properties": {
          "event_type": {
            "type": "string",
            "description": "PNR_APPROVAL"
          },
          "operationSummary": {
            "$ref": "#/components/schemas/OperationSummary"
          },
          "operation": {
            "$ref": "#/components/schemas/PnrApprovalOperationType"
          },
          "payload": {
            "$ref": "#/components/schemas/PnrApprovalEventPayload"
          },
          "timestamp": {
            "type": "string",
            "description": "Timestamp when the event was published"
          },
          "audience": {
            "$ref": "#/components/schemas/WebhookAudience"
          }
        }
      },
      "PnrApprovalEventPayload": {
        "type": "object",
        "properties": {
          "pnrId": {
            "type": "string",
            "description": "PNR ID for the approval event"
          },
          "tripId": {
            "type": "string",
            "description": "Trip ID for the approval event"
          },
          "approvalId": {
            "type": "string",
            "description": "Approval ID containing approval related info."
          },
          "appliedApprovalType": {
            "$ref": "#/components/schemas/ApprovalType",
            "description": "The approval type that is applied."
          },
          "deadline": {
            "$ref": "#/components/schemas/DateTimeLocalWithZone",
            "description": "Deadline to execute the approval action."
          },
          "approvers": {
            "type": "array",
            "description": "List of approvers for the approval event.",
            "items": {
              "$ref": "#/components/schemas/ApproverWebhookPayload"
            }
          }
        }
      },
      "PnrApprovalOperationType": {
        "description": "The approval status for the PNR",
        "type": "string",
        "enum": [
          "APPROVAL_PENDING",
          "APPROVED",
          "DENIED",
          "TIMED_OUT",
          "TIMED_OUT_REMINDER",
          "APPROVAL_NOT_REQUIRED",
          "SOFT_APPROVAL_TIMEOUT"
        ],
        "example": "APPROVAL_PENDING",
        "x-enumDescriptions": {
          "APPROVAL_PENDING": "A PNR’s approval status has been changed to `APPROVAL_PENDING`.",
          "APPROVED": "A PNR has been approved.",
          "DENIED": "The approver has denied a PNR booking.",
          "TIMED_OUT": "A PNR with hard approval has timed out since none of the approvers have taken action. In this scenario, the itinerary will be canceled.",
          "TIMED_OUT_REMINDER": "A PNR with hard approval has been created, and a reminder notification must be sent to the approver.",
          "APPROVAL_NOT_REQUIRED": "The PNR no longer requires approval (e.g., the traveler has canceled the booking before the approver could take action).",
          "SOFT_APPROVAL_TIMEOUT": "A PNR with soft approval has timed out since none of the approvers have taken any action.\nIn this scenario, the itinerary will be booked for the traveler.\n"
        }
      },
      "PnrBookingStatus": {
        "type": "string",
        "description": "User facing status for this booking",
        "enum": [
          "PENDING",
          "CONFIRMED",
          "ACTIVE",
          "COMPLETED",
          "CANCELLED",
          "REFUNDED",
          "VOIDED",
          "PROCESSING",
          "UNCONFIRMED",
          "AIRLINE_CONTROL",
          "PAYMENT_DECLINED",
          "SCHEDULE_CHANGE",
          "UNKNOWN",
          "HOLD",
          "APPROVAL_REQUESTED",
          "APPROVAL_DENIED",
          "CANCELLATION_IN_PROGRESS",
          "INOPERATIVE_STATUS",
          "FLIGHT_UNCONFIRMED_STATUS"
        ],
        "example": "CONFIRMED"
      },
      "PnrCreationDetails": {
        "title": "PnrCreationDetails",
        "type": "object",
        "description": "Information about pnr creation",
        "properties": {
          "requestedByDetails": {
            "$ref": "#/components/schemas/RequestedByDetails"
          }
        }
      },
      "PnrData": {
        "title": "PnrData",
        "type": "object",
        "description": "Pnr data with all information about a single booking containing one of Air, Hotel,\nCar, Rail, Limo or Miscellaneous PNR.\n",
        "properties": {
          "version": {
            "type": "integer",
            "format": "int32",
            "description": "Current PNR version. This field is used for handling conflicts in case of concurrent \nupdates. This should be sent unmodified in update request.\n",
            "example": 1
          },
          "createdVia": {
            "$ref": "#/components/schemas/CreatedVia"
          },
          "initialVersionCreatedVia": {
            "$ref": "#/components/schemas/CreatedVia"
          },
          "sourceInfo": {
            "$ref": "#/components/schemas/SourceInfo"
          },
          "invoiceDelayedBooking": {
            "type": "boolean",
            "description": "True if the billing is delayed",
            "example": false
          },
          "travelers": {
            "type": "array",
            "deprecated": true,
            "x-sunset": "2026-07-01",
            "items": {
              "$ref": "#/components/schemas/Traveler"
            },
            "minItems": 1
          },
          "pnrTravelers": {
            "description": "List of travelers on this pnr and their information. This is a required field.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PnrTraveler"
            },
            "minItems": 1
          },
          "costOfGoodsSold": {
            "$ref": "#/components/schemas/COGS"
          },
          "costToCustomer": {
            "$ref": "#/components/schemas/CTC"
          },
          "transactions": {
            "type": "array",
            "readOnly": true,
            "items": {
              "$ref": "#/components/schemas/Transaction"
            }
          },
          "splitPayment": {
            "$ref": "#/components/schemas/SplitPayment",
            "description": "Split payment details for claiming reimbursements."
          },
          "isFinalized": {
            "type": "boolean",
            "readOnly": true,
            "description": "Indicates if finalize action has been performed on the pnr.",
            "example": false
          },
          "policyInfo": {
            "description": "Policy related info for this booking",
            "$ref": "#/components/schemas/PolicyInfo"
          },
          "airPnr": {
            "$ref": "#/components/schemas/Air",
            "description": "Air booking information"
          },
          "hotelPnr": {
            "$ref": "#/components/schemas/Hotel",
            "description": "Hotel booking information"
          },
          "carPnr": {
            "$ref": "#/components/schemas/Car",
            "description": "Car booking information"
          },
          "railPnr": {
            "$ref": "#/components/schemas/Rail",
            "description": "Rail booking information"
          },
          "limoPnr": {
            "$ref": "#/components/schemas/LimoInfo",
            "description": "Limo booking information"
          },
          "miscPnr": {
            "$ref": "#/components/schemas/MiscInfo",
            "description": "Miscellaneous booking information"
          },
          "additionalMetadata": {
            "type": "object",
            "description": "Any addtional metadata associated with the booking",
            "properties": {
              "airportInfo": {
                "type": "array",
                "readOnly": true,
                "items": {
                  "$ref": "#/components/schemas/AirportInfo"
                }
              },
              "airlineInfo": {
                "type": "array",
                "readOnly": true,
                "items": {
                  "$ref": "#/components/schemas/AirlineInfo"
                }
              },
              "bta": {
                "type": "string",
                "readOnly": true,
                "description": "BTA (Business Travel Account) indicator for this PNR. This provides additional information and is only populated when the PNR is delay invoiced.",
                "example": "YMT"
              }
            }
          },
          "preBookAnswers": {
            "deprecated": true,
            "x-sunset": "2026-07-01",
            "description": "The per booking answers collected from the traveler during checkout.",
            "$ref": "#/components/schemas/PreBookAnswers"
          },
          "customFields": {
            "deprecated": true,
            "x-sunset": "2026-07-01",
            "type": "array",
            "description": "List of all the Custom Fields associated with this Pnr",
            "items": {
              "$ref": "#/components/schemas/CustomField"
            }
          },
          "customFieldsV3Responses": {
            "type": "array",
            "description": "List of all the Custom Fields responses associated with this Pnr.",
            "items": {
              "$ref": "#/components/schemas/CustomFieldResponsesPerEntity"
            }
          },
          "bookingHistory": {
            "type": "array",
            "description": "Change Log associated with a PNR/Booking",
            "readOnly": true,
            "items": {
              "$ref": "#/components/schemas/BookingHistory"
            }
          },
          "totalFare": {
            "description": "The total fare of the PNR inclusive of various components, for example: Flights, Seats, \nService fee for an Air Pnr; Hotel rooms, Hotel fee, Service for a Hotel PNR. Service fee is included only when show trip fee to traveler is enabled in service fee settings.\n",
            "readOnly": true,
            "$ref": "#/components/schemas/Money"
          },
          "serviceFees": {
            "type": "array",
            "description": "The service fees associated with this pnr.",
            "readOnly": true,
            "items": {
              "$ref": "#/components/schemas/ServiceFee"
            }
          },
          "paymentInfo": {
            "type": "array",
            "description": "FOP fare breakup for all payments",
            "readOnly": true,
            "items": {
              "type": "object",
              "title": "PaymentInfo",
              "required": [
                "fop",
                "totalCharge"
              ],
              "properties": {
                "fop": {
                  "description": "Form of payment",
                  "$ref": "#/components/schemas/FormOfPayment"
                },
                "totalCharge": {
                  "description": "Total charge for this FOP",
                  "$ref": "#/components/schemas/Money"
                },
                "totalRefund": {
                  "description": "Total refund for this FOP",
                  "$ref": "#/components/schemas/Money"
                },
                "netCharge": {
                  "description": "Total charge - total refund",
                  "$ref": "#/components/schemas/Money"
                }
              }
            }
          },
          "bookingStatus": {
            "readOnly": true,
            "description": "User facing status for this booking.",
            "$ref": "#/components/schemas/UserFacingStatus"
          },
          "contactSupport": {
            "type": "boolean",
            "readOnly": true,
            "description": "Set to true if there might be an issue in the PNR for which the user should be warned to\ncontact TMC support.\n",
            "example": false
          },
          "travelerPnrVisibilityStatus": {
            "type": "string",
            "description": "Represents the PNR visibility status, if marked as HIDDEN should not be displayed to the traveler",
            "enum": [
              "VISIBLE",
              "HIDDEN"
            ]
          },
          "shellPnrInfo": {
            "$ref": "#/components/schemas/ShellPnrInfo"
          },
          "pnrCreationDetails": {
            "$ref": "#/components/schemas/PnrCreationDetails"
          },
          "approvalInfo": {
            "type": "array",
            "description": "Approval related information for the PNR",
            "items": {
              "$ref": "#/components/schemas/ApprovalInfo"
            }
          },
          "cancellationRequestStatus": {
            "$ref": "#/components/schemas/CancellationRequestStatus"
          },
          "externalInfo": {
            "type": "object",
            "description": "PNR related external information",
            "properties": {
              "externalPnrId": {
                "type": "string",
                "description": "External Pnr ID",
                "example": "A2345"
              },
              "externalPnrVersion": {
                "type": "integer",
                "description": "External Pnr Version",
                "example": 1
              },
              "externalUrlMetadata": {
                "type": "string",
                "description": "External url information to be attached for pnr",
                "example": "exchange=a,cancel=b"
              }
            }
          },
          "tripId": {
            "type": "string",
            "description": "Spotnana trip ID to which the PNR belongs to",
            "example": "123456789"
          },
          "documents": {
            "type": "array",
            "readOnly": true,
            "items": {
              "$ref": "#/components/schemas/Document"
            }
          },
          "freshnessInfo": {
            "readOnly": true,
            "$ref": "#/components/schemas/FreshnessInfo"
          },
          "bookingEmailInfo": {
            "type": "object",
            "description": "Information passed to the Spotnana email system that processes booking updates.",
            "properties": {
              "disableEmail": {
                "type": "boolean",
                "description": "Whether an email should be sent to travelers.",
                "example": true
              }
            }
          },
          "llfPnrInfo": {
            "$ref": "#/components/schemas/LLFPnrInfo"
          },
          "pnrId": {
            "type": "string",
            "description": "Spotnana PNR ID",
            "example": "123456789"
          },
          "invoiceInfos": {
            "type": "array",
            "description": "Invoice related information for the PNR",
            "items": {
              "$ref": "#/components/schemas/InvoiceInfo"
            }
          },
          "totalFareAmount": {
            "description": "Total fare amount of the PNR comprising components such as base fare and taxes. This field does not include any Service fees.",
            "$ref": "#/components/schemas/FareAmount"
          },
          "additionalFareAmounts": {
            "type": "array",
            "description": "Additional fare amounts of the PNR defining components like flight pass additional amount, change fee etc.",
            "items": {
              "$ref": "#/components/schemas/AdditionalFareAmount"
            }
          },
          "dkNumber": {
            "type": "string",
            "description": "DK number attached to the PNR.",
            "example": "123456789"
          },
          "savingsFare": {
            "deprecated": true,
            "x-sunset": "2026-07-01",
            "$ref": "#/components/schemas/SavingsFare"
          },
          "tripUsageMetadata": {
            "$ref": "#/components/schemas/TripUsageMetadata"
          },
          "owningPccInfo": {
            "$ref": "#/components/schemas/OwningPCCInfo"
          },
          "suspendReason": {
            "$ref": "#/components/schemas/SuspendReason"
          },
          "state": {
            "type": "string",
            "description": "State of the PNR",
            "enum": [
              "ITINERARY",
              "PNR"
            ],
            "example": "PNR"
          },
          "createdAt": {
            "$ref": "#/components/schemas/DateTimeOffset",
            "description": "PNR creation dateTime."
          },
          "updatedAt": {
            "$ref": "#/components/schemas/DateTimeOffset",
            "description": "DateTime when the PNR was last updated."
          },
          "basicTripInfo": {
            "$ref": "#/components/schemas/BasicTripInfo",
            "description": "Trip basic info with only trip id, name and description set."
          }
        }
      },
      "PnrDetailsResponseWithId": {
        "title": "PnrDetailsResponseWithId",
        "type": "object",
        "properties": {
          "pnrId": {
            "type": "string",
            "description": "Unique PNR ID",
            "example": "6926658168"
          },
          "data": {
            "$ref": "#/components/schemas/PnrData"
          }
        }
      },
      "PnrMetadata": {
        "title": "PnrMetadata",
        "description": "Metadata when document is associated to pnr entity.",
        "type": "object",
        "oneOf": [
          {
            "$ref": "#/components/schemas/FlightMetadataWrapper"
          },
          {
            "$ref": "#/components/schemas/LegMetadataWrapper"
          }
        ]
      },
      "PnrMetadataWrapper": {
        "type": "object",
        "title": "PnrMetadataWrapper",
        "required": [
          "travelType"
        ],
        "properties": {
          "pnrMetadata": {
            "$ref": "#/components/schemas/PnrMetadata"
          },
          "invoiceMetadata": {
            "type": "object",
            "title": "InvoiceMetadata",
            "description": "Metadata associated with an invoice document.",
            "required": [
              "invoiceNumber"
            ],
            "properties": {
              "invoiceNumber": {
                "type": "string",
                "example": "SPOT-0001"
              },
              "invoiceType": {
                "type": "string",
                "example": "FARE_INVOICE",
                "enum": [
                  "SERVICE_FEE_INVOICE",
                  "FARE_INVOICE",
                  "GENERIC_INVOICE"
                ]
              }
            }
          },
          "travelType": {
            "$ref": "#/components/schemas/TravelType"
          }
        }
      },
      "PnrPolicyId": {
        "title": "PnrPolicyId",
        "description": "Pnr Policy id",
        "type": "object",
        "required": [
          "id",
          "version"
        ],
        "properties": {
          "id": {
            "type": "string",
            "description": "Policy id"
          },
          "version": {
            "type": "string",
            "description": "version of the policy"
          },
          "policyName": {
            "type": "string",
            "description": "Name of the policy applied."
          },
          "approvalType": {
            "type": "string",
            "enum": [
              "HARD_APPROVAL",
              "SOFT_APPROVAL",
              "PASSIVE_APPROVAL"
            ],
            "example": "SOFT_APPROVAL"
          },
          "policyType": {
            "type": "string",
            "enum": [
              "GLOBAL",
              "DEFAULT",
              "GROUP"
            ],
            "example": "GLOBAL"
          }
        }
      },
      "PnrPolicyInfo": {
        "title": "PnrPolicyInfo",
        "description": "Policy Info applicable for the associated itinerary",
        "type": "object",
        "properties": {
          "policies": {
            "type": "array",
            "description": "List of policies applied to the itinerary.",
            "items": {
              "$ref": "#/components/schemas/PnrPolicyId"
            }
          },
          "ruleResultInfos": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PolicyRuleResultInfo"
            }
          }
        }
      },
      "PnrStatus": {
        "title": "PnrStatus",
        "type": "string",
        "enum": [
          "UNKNOWN",
          "INITIATED",
          "CANCELLED",
          "CONFIRMED",
          "GROUP_BOOKING_ON_REQUEST",
          "WAITLISTED",
          "PENDING",
          "AIRLINE_UPGRADE",
          "WAITLIST_CONFIRMED",
          "BOOKING_DENIED_CONTACT_SUPPORT",
          "NO_SHOW",
          "CONTACT_SUPPORT",
          "STATUS_CHANGED_CONTACT_SUPPORT",
          "SCHEDULE_CHANGE",
          "SEGMENT_REQUEST",
          "SCHEDULE_CHANGE_WAITLISTED_BOOKING",
          "REQUEST_PENDING",
          "WAITLISTED_NOT_CONFIRMED",
          "SCHEDULE_CHANGE_NOT_CONFIRMED",
          "SCHEDULE_CHANGE_PENDING_STATUS",
          "MIS_CONNECTION",
          "REQUESTED",
          "TICKETED",
          "VOIDED",
          "CANCELLED_BY_VENDOR",
          "CANCELLATION_IN_PROGRESS",
          "REINSTATED",
          "BOOKING_ON_HOLD",
          "AIRLINE_CONTROL",
          "MODIFIED",
          "PAYMENT_DECLINED",
          "INOPERATIVE",
          "UNCONFIRMED"
        ],
        "description": "Status of PNR",
        "example": "CONFIRMED"
      },
      "PnrTaxBreakdown": {
        "type": "object",
        "description": "Tax breakdown information for this ticket",
        "required": [
          "tax"
        ],
        "properties": {
          "tax": {
            "type": "array",
            "description": "List of taxes for this ticket",
            "items": {
              "type": "object",
              "title": "Tax",
              "required": [
                "amount",
                "taxCode"
              ],
              "properties": {
                "amount": {
                  "$ref": "#/components/schemas/Money",
                  "description": "Tax amount"
                },
                "taxCode": {
                  "type": "string",
                  "description": "Tax code"
                }
              }
            }
          }
        }
      },
      "PnrTraveler": {
        "type": "object",
        "title": "PnrTraveler",
        "required": [
          "userId"
        ],
        "properties": {
          "userId": {
            "$ref": "#/components/schemas/UserId",
            "description": "User ID for this traveler"
          },
          "travelerInfo": {
            "$ref": "#/components/schemas/TravelerInfoResponse",
            "description": "Traveler info for this traveler"
          },
          "personalInfo": {
            "$ref": "#/components/schemas/UserPersonalInfo",
            "description": "Personal info like name, email for this traveler"
          },
          "loyalties": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LoyaltyInfo"
            }
          },
          "persona": {
            "$ref": "#/components/schemas/Persona"
          },
          "businessInfo": {
            "$ref": "#/components/schemas/TravelerBusinessInfo",
            "description": "Business information of the traveler for this booking."
          },
          "originalBusinessInfo": {
            "$ref": "#/components/schemas/TravelerBusinessInfo",
            "description": "Original business information of the traveler before any trip-specific overrides are applied. It's populated only when trip overrides are applied.",
            "readOnly": true
          },
          "tier": {
            "$ref": "#/components/schemas/Tier"
          }
        }
      },
      "PnrTripDetailOperationType": {
        "description": "Pnr and trip details operation types",
        "type": "string",
        "enum": [
          "BOOKING_CREATED",
          "BOOKING_OTHER_UPDATE",
          "TRIP_UPDATED",
          "BOOKING_UPDATED",
          "BOOKING_CANCELED_BY_TRAVELER",
          "BOOKING_CANCELED_BY_VENDOR",
          "BOOKING_REBOOKED",
          "BOOKING_TICKETED",
          "TICKET_VOIDED",
          "TICKET_REFUNDED",
          "FLIGHT_SCHEDULE_CHANGE_PENDING",
          "FLIGHT_SCHEDULE_CHANGE_CLOSED",
          "FLIGHT_CABIN_CHANGED",
          "FLIGHT_SEAT_CANCELLED",
          "FLIGHT_SEAT_CONFIRMED",
          "FLIGHT_SEAT_CHANGED",
          "PAYMENT_DECLINED",
          "FLIGHT_CANCELLED",
          "SPLIT_PNR_CREATED",
          "REFUND",
          "EXCHANGE",
          "FLIGHT_CHANGED"
        ],
        "example": "BOOKING_CREATED",
        "x-enumDescriptions": {
          "BOOKING_CREATED": "The latest PNR status has been changed to `CONFIRMED` status (i.e., the booking has been confirmed by the supplier).",
          "BOOKING_OTHER_UPDATE": "If none of the other change types apply to the PNR update, the update will be attributed to this change type.",
          "TRIP_UPDATED": "Trip information (e.g., trip ID, trip status, trip name, etc) associated with a PNR has been updated.",
          "BOOKING_UPDATED": "An update has been made to a rail, hotel, car, limo, or a miscellaneous PNR. This operation doesn't support air PNR.",
          "BOOKING_CANCELED_BY_TRAVELER": "The status of the latest car or hotel PNR has been changed to `CANCELLED` or `VOIDED` by the traveler.\nCanceling via Shell PNRs will not trigger this operation.\n",
          "BOOKING_CANCELED_BY_VENDOR": "The status of the latest car or hotel PNR has been changed to `CANCELLED` or `VOIDED` by the vendor.\nCanceling via Shell PNRs will not trigger this operation.\n",
          "BOOKING_REBOOKED": "A car or a hotel PNR has been rebooked and its status is `CONFIRMED`. \nTo identify a rebooked PNR, compare the vendor confirmation numbers on the latest PNR version and its previous version. \nIf the values are different, then the PNR has been rebooked.\n",
          "BOOKING_TICKETED": "One or more ticket statuses for the latest air PNR have been changed to `ISSUED`. \nView the `operationSummary.ticketsIssued` array in the webhook request schema to identify the list of new tickets issued.\n",
          "TICKET_VOIDED": "One or more ticket statuses for the latest air PNR have been changed to `VOIDED`. \nView the `operationSummary.ticketsVoided` array in the webhook request schema to identify the voided tickets.\n",
          "TICKET_REFUNDED": "One or more ticket statuses for the latest air PNR have been changed to `REFUNDED` or `EXCHANGED`. \nView the `operationSummary.ticketsRefunded` array in the webhook request schema to identify the refunded tickets.\n",
          "FLIGHT_SCHEDULE_CHANGE_PENDING": "The status of at least one of the flights in the air PNR has been updated to `SCHEDULE_CHANGE`. \nThis indicates that a schedule change has been initiated by the airline but hasn’t been confirmed yet.\nFor Sabre, this operation is invoked when the latest PNR has a flight status of `SC`, `TK`, `TN`, or `TL`.\n",
          "FLIGHT_SCHEDULE_CHANGE_CLOSED": "A schedule change for a flight has been confirmed or canceled.\nFor Sabre, this operation is triggered when a flight's schedule change, indicated by status codes `SC`, `TK`, `TL`, or `TN` \nin the previous PNR version, has been `CONFIRMED` in the latest PNR version.\n",
          "FLIGHT_CABIN_CHANGED": "The cabin type of a flight in the latest PNR version has either been upgraded or downgraded from the previously selected type.",
          "FLIGHT_SEAT_CANCELLED": "The status for a flight seat in the latest PNR has been changed to `CANCELLED`.\nThe flight seat status of the previous PNR version should contain the values `CONFIRMED` or `PENDING`, \nindicating that a seat selection had been made or attempted.\n",
          "FLIGHT_SEAT_CONFIRMED": "The flight seat status of the latest PNR has been changed to `CONFIRMED` from a previous `UNCONFIRMED` state.",
          "FLIGHT_SEAT_CHANGED": "A confirmed flight seat number of the latest PNR has been changed.",
          "PAYMENT_DECLINED": "The payment for an air itinerary has failed (e.g., due to card decline, network problems, etc).\nThe traveler or agent can manually retry the payment. The ticket is issued after a successful payment retry.\n",
          "FLIGHT_CANCELLED": "The flight segment in the latest PNR has been canceled.",
          "SPLIT_PNR_CREATED": "A PNR has been split into multiple child PNRs. This occurs when a PNR is booked for multiple passengers.",
          "REFUND": "The status of the latest rail PNR version has been changed to `CANCELLED` or `VOIDED`.",
          "EXCHANGE": "A rail PNR has been exchanged (e.g., to change passenger details, to select a different travel card for the rail journey, etc.).\n",
          "FLIGHT_CHANGED": "When a flight is changed as part of exchange, but no new ticket is issued. In this case the original ticket is revalidated for new flights."
        }
      },
      "PnrV3": {
        "type": "object",
        "x-ignore-naming-case": true,
        "properties": {
          "event_type": {
            "type": "string",
            "description": "PNR_V3"
          },
          "operationSummary": {
            "$ref": "#/components/schemas/OperationSummary"
          },
          "operation": {
            "$ref": "#/components/schemas/PnrTripDetailOperationType"
          },
          "payload": {
            "$ref": "#/components/schemas/PnrData"
          },
          "timestamp": {
            "type": "string",
            "description": "Timestamp when the event was published"
          },
          "audience": {
            "$ref": "#/components/schemas/WebhookAudience"
          }
        }
      },
      "PolicyAction": {
        "type": "object",
        "description": "Action that is required / done for policy.",
        "oneOf": [
          {
            "$ref": "#/components/schemas/PolicyFlagActionWrapper"
          },
          {
            "$ref": "#/components/schemas/PolicyHideActionWrapper"
          },
          {
            "$ref": "#/components/schemas/PolicyAlertOnSelectionActionWrapper"
          },
          {
            "$ref": "#/components/schemas/PolicyTakeApprovalActionWrapper"
          },
          {
            "$ref": "#/components/schemas/PolicyPreventBookingActionWrapper"
          }
        ]
      },
      "PolicyAlertOnSelectionAction": {
        "type": "object",
        "title": "PolicyAlertOnSelectionAction",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      },
      "PolicyAlertOnSelectionActionWrapper": {
        "type": "object",
        "title": "PolicyAlertOnSelectionActionWrapper",
        "properties": {
          "alertOnSelection": {
            "$ref": "#/components/schemas/PolicyAlertOnSelectionAction"
          }
        }
      },
      "PolicyConstValue": {
        "type": "object",
        "properties": {
          "displaySuffix": {
            "type": "string",
            "description": "Optional display suffix for the policy const value"
          }
        },
        "oneOf": [
          {
            "$ref": "#/components/schemas/Int32Wrapper"
          },
          {
            "$ref": "#/components/schemas/Int64Wrapper"
          },
          {
            "$ref": "#/components/schemas/StringWrapper"
          },
          {
            "$ref": "#/components/schemas/DoubleWrapper"
          },
          {
            "$ref": "#/components/schemas/BoolWrapper"
          },
          {
            "$ref": "#/components/schemas/IntListWrapper"
          },
          {
            "$ref": "#/components/schemas/DoubleListWrapper"
          },
          {
            "$ref": "#/components/schemas/StringListWrapper"
          },
          {
            "$ref": "#/components/schemas/MoneyWrapper"
          },
          {
            "$ref": "#/components/schemas/LengthWrapper"
          },
          {
            "$ref": "#/components/schemas/PostalAddressWrapper"
          },
          {
            "$ref": "#/components/schemas/UserOrgIdWrapper"
          },
          {
            "$ref": "#/components/schemas/LegalEntityIdWrapper"
          },
          {
            "$ref": "#/components/schemas/OfficeIdWrapper"
          },
          {
            "$ref": "#/components/schemas/UserOrgIdListWrapper"
          },
          {
            "$ref": "#/components/schemas/LegalEntityIdListWrapper"
          },
          {
            "$ref": "#/components/schemas/OfficeIdListWrapper"
          },
          {
            "$ref": "#/components/schemas/RatingWrapper"
          },
          {
            "$ref": "#/components/schemas/PercentageWrapper"
          },
          {
            "$ref": "#/components/schemas/Int32RangeWrapper"
          },
          {
            "$ref": "#/components/schemas/DoubleRangeWrapper"
          },
          {
            "$ref": "#/components/schemas/PersonaWrapper"
          },
          {
            "$ref": "#/components/schemas/PersonaListWrapper"
          },
          {
            "$ref": "#/components/schemas/TravelClassHierarchyWrapper"
          },
          {
            "$ref": "#/components/schemas/KeywordWithReasonListWrapper"
          },
          {
            "$ref": "#/components/schemas/WorkerTypeWrapper"
          },
          {
            "$ref": "#/components/schemas/WorkerTypeListWrapper"
          },
          {
            "$ref": "#/components/schemas/AirRestrictedFaresParamsWrapper"
          }
        ],
        "x-ignoreBreakingChanges": [
          "PolicyConstValue->AirRestrictedFaresParamsWrapper"
        ]
      },
      "PolicyFlagAction": {
        "type": "object",
        "title": "PolicyFlagAction",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      },
      "PolicyFlagActionWrapper": {
        "type": "object",
        "title": "PolicyFlagActionWrapper",
        "properties": {
          "flag": {
            "$ref": "#/components/schemas/PolicyFlagAction"
          }
        }
      },
      "PolicyHideActionWrapper": {
        "type": "object",
        "title": "PolicyHideActionWrapper",
        "properties": {
          "hide": {
            "type": "boolean"
          }
        }
      },
      "PolicyInfo": {
        "type": "object",
        "title": "PolicyInfo",
        "description": "Policy related info for this booking",
        "required": [
          "outOfPolicy"
        ],
        "properties": {
          "outOfPolicy": {
            "type": "boolean",
            "description": "True if the booking is out of policy, else false",
            "example": false
          },
          "approverName": {
            "description": "The name of the approver. Required if out of policy is true",
            "$ref": "#/components/schemas/Name"
          },
          "reasonCode": {
            "description": "Reason code for booking out of policy",
            "$ref": "#/components/schemas/PreDefinedAnswers"
          },
          "reason": {
            "type": "string",
            "description": "Free form text if selected reason code is OTHER",
            "example": "Business class cheaper than economy"
          },
          "appliedPolicyInfo": {
            "description": "Information related to policies and results of those evaluation on this pnr\n",
            "$ref": "#/components/schemas/PnrPolicyInfo"
          }
        }
      },
      "PolicyPredicate": {
        "type": "string",
        "description": "This contains the enum mentioning the policy rule which was violated.",
        "enum": [
          "UNKNOWN_PREDICATE_STRING",
          "MAX_FARE_PER_TRAVELLER_VIOLATION",
          "FARE_MORE_THAN_MINIMUM",
          "FARE_MORE_THAN_MEDIAN",
          "FARE_LESS_THAN_MEDIAN",
          "FARE_MORE_THAN_LLF",
          "MAX_FARE_PER_TRAVELLER_VIOLATION_INCLUDING_TAX",
          "MAX_FARE_PER_TRAVELLER_VIOLATION_EXCLUDING_TAX",
          "HOTEL_PAYMENT_OPTIONS_VIOLATION",
          "RAIL_BOOKING_WINDOW_GAP_VIOLATION",
          "RAIL_TRAVEL_CLASS_VIOLATION",
          "RAIL_TICKET_REFUNDABLE_VIOLATION",
          "RAIL_MAX_BOOKING_PRICE_VIOLATION_INCLUDING_TAX",
          "RAIL_MAX_BOOKING_PRICE_VIOLATION_EXCLUDING_TAX",
          "AIR_MAX_PRICE_MORE_THAN_LLF_VIOLATION_INCLUDING_TAX",
          "AIR_MAX_PRICE_MORE_THAN_LLF_VIOLATION_EXCLUDING_TAX",
          "HOTEL_RESTRICTED_KEYWORDS_VIOLATION",
          "RESTRICTED_LOCATION_VIOLATION",
          "FLIGHT_ADVANCE_BOOKING_WINDOW_DOMESTIC_VIOLATION",
          "FLIGHT_ADVANCE_BOOKING_WINDOW_INTERNATIONAL_VIOLATION",
          "FLIGHT_ADVANCE_BOOKING_WINDOW_VIOLATION",
          "ITINERARY_WITHIN_EVENT_TRAVEL_WINDOW",
          "HOTEL_IN_ALLOWED_HOTEL_LIST",
          "PAYMENT_ACCESS_VIOLATION",
          "AIRPORT_IN_ALLOWED_AIRPORT_LIST",
          "ITINERARY_TYPE_IS_NOT_IN_ALLOWED_BOOKING_TYPES",
          "PAYMENT_AIR_ADDON_VIOLATION",
          "MAX_HOTEL_BOOKING_PRICE_INCLUDING_TAX",
          "MAX_HOTEL_BOOKING_PRICE_EXCLUDING_TAX",
          "AIR_NUM_TRAVELERS_ALLOWED",
          "PREFERRED_VENDOR_VIOLATION",
          "SEAT_ADDON_VIOLATION",
          "BAGGAGE_ADDON_VIOLATION",
          "EARLY_BIRD_ADDON_VIOLATION",
          "WIFI_ADDON_VIOLATION",
          "RESTRICTED_BOOKING_VIOLATION",
          "HIGHEST_ALLOWED_CABIN_VIOLATION",
          "LOWEST_FARE_PER_HOTEL_PROPERTY_VIOLATION",
          "AIR_RESTRICTED_FARES_VIOLATION",
          "AIR_ANCILLARY_VIOLATION"
        ],
        "x-ignoreBreakingChanges": [
          "PolicyPredicate->LOWEST_FARE_PER_HOTEL_PROPERTY_VIOLATION",
          "PolicyPredicate->AIR_RESTRICTED_FARES_VIOLATION",
          "PolicyPredicate->AIR_ANCILLARY_VIOLATION"
        ]
      },
      "PolicyPreventBookingAction": {
        "type": "object",
        "title": "PolicyPreventBookingAction",
        "description": "Whether to allow booking if a rule is violated.",
        "properties": {
          "prevent": {
            "type": "boolean",
            "description": "True if booking is to be blocked if rule is violated, else false"
          },
          "reason": {
            "type": "string",
            "description": "Reason describing why was that specific itinerary not allowed to book."
          }
        }
      },
      "PolicyPreventBookingActionWrapper": {
        "type": "object",
        "title": "PolicyPreventBookingActionWrapper",
        "properties": {
          "preventBooking": {
            "$ref": "#/components/schemas/PolicyPreventBookingAction"
          }
        }
      },
      "PolicyRuleResultInfo": {
        "type": "object",
        "properties": {
          "violationInfos": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PolicyViolationInfo"
            }
          },
          "subViolationInfos": {
            "type": "array",
            "description": "In case of complex rules this will contain extra information as to how the rule was \ncalculated.\n",
            "items": {
              "$ref": "#/components/schemas/PolicyViolationInfo"
            }
          },
          "actions": {
            "type": "array",
            "description": "Followed actions if rule was satisfied else violated actions.",
            "items": {
              "$ref": "#/components/schemas/PolicyAction"
            }
          }
        }
      },
      "PolicyTakeApprovalAction": {
        "type": "object",
        "title": "PolicyTakeApprovalAction",
        "properties": {
          "numHierarchyLevels": {
            "type": "integer",
            "format": "int32",
            "description": "How many levels of hierarchy should approval be taken? If it's just immediate manager, \nthis value would be 1. If it's manager and their manager, this would ge 2 and so on.\n"
          },
          "positionTitles": {
            "type": "array",
            "description": "What position in the cost center or department. For eg, any business class upgrade \nmight require VP approval.\n",
            "items": {
              "type": "string"
            }
          },
          "userOrgIds": {
            "type": "array",
            "description": "The specific users from whom to take approval. For eg, say for a company, all approvals\ngo through Adam.\n",
            "items": {
              "$ref": "#/components/schemas/UserOrgId"
            }
          },
          "allRequired": {
            "type": "boolean",
            "description": "This tells whether all the people above needs to approve or if any of these approve, \nit is sufficient.\n"
          },
          "hardApprovalRequired": {
            "type": "boolean",
            "description": "Whether to take soft approval (false) or hard approval (true)."
          },
          "approvalType": {
            "$ref": "#/components/schemas/ApprovalType",
            "description": "Type of approval for the policy."
          }
        }
      },
      "PolicyTakeApprovalActionWrapper": {
        "type": "object",
        "title": "PolicyTakeApprovalActionWrapper",
        "properties": {
          "takeApproval": {
            "$ref": "#/components/schemas/PolicyTakeApprovalAction"
          }
        }
      },
      "PolicyViolationInfo": {
        "type": "object",
        "description": "Policy Violation info.",
        "title": "PolicyViolationInfo",
        "properties": {
          "predicateString": {
            "type": "string"
          },
          "predicate": {
            "$ref": "#/components/schemas/PolicyPredicate"
          },
          "expectedValue": {
            "$ref": "#/components/schemas/PolicyConstValue"
          },
          "actualValue": {
            "$ref": "#/components/schemas/PolicyConstValue"
          }
        }
      },
      "PostalAddress": {
        "title": "PostalAddress",
        "description": "Postal Address Details",
        "type": "object",
        "required": [
          "addressLines",
          "regionCode"
        ],
        "properties": {
          "addressLines": {
            "description": "Address lines",
            "type": "array",
            "items": {
              "type": "string",
              "example": "Golden Gate Bridge"
            }
          },
          "administrativeArea": {
            "type": "string",
            "description": "Code of administrative area. For example: DL for Delhi, India.\nHighest administrative subdivision which is used for postal\naddresses of a country or region.\nFor example, this can be a state, a province, an oblast, or a prefecture.\nSpecifically, for Spain this is the province and not the autonomous\ncommunity (e.g. \"Barcelona\" and not \"Catalonia\").\nMany countries don't use an administrative area in postal addresses. E.g.\nin Switzerland this should be left unpopulated.\n",
            "example": "CA"
          },
          "administrativeAreaName": {
            "type": "string",
            "description": "Name of administrative area. This is full name corresponding to administrativeArea. \nLike Delhi for DL area code. For some places, code and name maybe same as well like Tokyo.\n",
            "example": "California"
          },
          "description": {
            "description": "Address description",
            "type": "string",
            "example": "San Francisco Home"
          },
          "isDefault": {
            "description": "Whether this address is default address in case multiple addresses are specified.",
            "type": "boolean",
            "example": true
          },
          "languageCode": {
            "description": "BCP-47 language code of the contents of this address (if known). This is often the UI \nlanguage of the input form or is expected to match one of the languages used in the \naddress' country/region, or their transliterated equivalents.\nThis can affect formatting in certain countries, but is not critical to the correctness \nof the data and will never affect any validation or other non-formatting related operations.\nExamples: \"zh-Hant\", \"ja\", \"ja-Latn\", \"en\".\n",
            "type": "string",
            "example": "en"
          },
          "locality": {
            "description": "Generally refers to the city/town portion of the address.",
            "type": "string",
            "example": "San Francisco"
          },
          "locationCode": {
            "description": "IATA 3-letter location code. See https://www.iata.org/en/services/codes.",
            "type": "string",
            "example": "LAX"
          },
          "organization": {
            "description": "The name of the organization at the address.",
            "type": "string",
            "example": "Spotnana"
          },
          "postalCode": {
            "description": "Postal code of the address. This is a required field when setting for a user/legal entity/company etc.",
            "type": "string",
            "example": "94130"
          },
          "continentCode": {
            "description": "2 letter continent code of the continent this address falls in.",
            "type": "string",
            "example": "AF"
          },
          "recipients": {
            "description": "The recipient at the address.",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "regionCode": {
            "description": "Region code of the country/region of the address.",
            "type": "string",
            "example": "US"
          },
          "regionName": {
            "description": "Region name of the country/region of the address.",
            "type": "string",
            "example": "America"
          },
          "revision": {
            "type": "integer",
            "format": "int32",
            "example": 1
          },
          "sortingCode": {
            "description": "Additional, country-specific, sorting code. This is not used\nin most regions. Where it is used, the value is either a string like\n\"CEDEX\", optionally followed by a number (e.g. \"CEDEX 7\"), or just a number\nalone, representing the \"sector code\" (Jamaica), \"delivery area indicator\"\n(Malawi) or \"post office indicator\" (e.g. Côte d'Ivoire).\n",
            "type": "string",
            "example": "Jamaica"
          },
          "sublocality": {
            "description": "Sublocality of the address. This can be neighborhoods, boroughs, districts.",
            "type": "string"
          },
          "timezone": {
            "description": "Time zone of the address.",
            "type": "string",
            "example": "America/Los_Angeles"
          },
          "coordinates": {
            "description": "Map coordinates of the address.",
            "$ref": "#/components/schemas/Latlng"
          }
        }
      },
      "PostalAddressWrapper": {
        "type": "object",
        "title": "PostalAddressWrapper",
        "properties": {
          "postalAddress": {
            "$ref": "#/components/schemas/PostalAddress"
          }
        }
      },
      "PowerAmenity": {
        "type": "object",
        "title": "PowerAmenity",
        "description": "Power Amenity properties",
        "properties": {
          "displayText": {
            "type": "string",
            "example": "Power USB outlets"
          },
          "powerType": {
            "type": "string",
            "example": "power/usb"
          },
          "cost": {
            "type": "string",
            "example": "free"
          },
          "usbPort": {
            "type": "string",
            "example": "yes"
          },
          "powerOutlet": {
            "type": "string",
            "example": "yes"
          }
        }
      },
      "PowerAmenityWrapper": {
        "type": "object",
        "title": "PowerAmenityWrapper",
        "properties": {
          "powerAmenity": {
            "$ref": "#/components/schemas/PowerAmenity"
          }
        }
      },
      "PreBookAnswers": {
        "type": "object",
        "properties": {
          "answers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EntityAnswer"
            }
          },
          "preBookQuestionResponseId": {
            "deprecated": true,
            "x-sunset": "2026-07-01",
            "type": "string",
            "description": "The unique id sent back in the pre book questions API response"
          }
        }
      },
      "PreCheckoutQuestionType": {
        "type": "string",
        "enum": [
          "UNKNOWN_CHECKOUT_QUESTION_TYPE",
          "USER_DEFINED_QUESTION",
          "OOP_REASON_CODE"
        ],
        "description": "Types of pre-checkout questions.\nUSER_DEFINED_QUESTION the default question type for all pre checkout questions which have been created from UI.\nOOP_REASON_CODE is kept separate so that existing OOP flow doesn't break.\n",
        "example": "OOP_REASON_CODE"
      },
      "PreDefinedAnswers": {
        "type": "string",
        "enum": [
          "UNKNOWN_CHECKOUT_ANSWER_TYPE",
          "OTHER",
          "TIMING_OR_SCHEDULING",
          "AIRLINE_PREFERENCE",
          "AIRPORT_PREFERENCE",
          "MILEAGE_OR_PROGRAM_UPGRADE",
          "NO_OTHER_OPTION_AVAILABLE",
          "FASTER_OPTION",
          "NO_ANSWER",
          "NOT_AVAILABLE"
        ],
        "description": "Predefined answers to pre search/pre checkout questions",
        "example": "TIMING_OR_SCHEDULING"
      },
      "PreSearchQuestionType": {
        "type": "string",
        "enum": [
          "UNKNOWN_SEARCH_QUESTION_TYPE",
          "PURPOSE_OF_TRIP"
        ],
        "description": "Types of pre-search questions.\nPURPOSE_OF_TRIP required to ask purpose of the trip user is going to. For example: meeting, training, interview.\n",
        "example": "PURPOSE_OF_TRIP"
      },
      "Preference": {
        "title": "Preference",
        "type": "object",
        "required": [
          "preferredType"
        ],
        "properties": {
          "preferredType": {
            "$ref": "#/components/schemas/PreferredType"
          },
          "blockedReason": {
            "type": "string",
            "description": "Reason for blocking the leg, hotel or car."
          },
          "label": {
            "type": "string",
            "description": "The label assigned to a specific tier of preference."
          }
        }
      },
      "PreferredAirport": {
        "type": "object",
        "title": "PreferredAirport",
        "description": "Airport preferred by traveler.",
        "required": [
          "airportCode",
          "label"
        ],
        "properties": {
          "airportName": {
            "type": "string",
            "description": "Airport name.",
            "example": "San Francisco International Airport"
          },
          "airportCode": {
            "type": "string",
            "description": "IATA airport code.",
            "example": "SFO"
          },
          "label": {
            "$ref": "#/components/schemas/PreferredLocationLabel"
          }
        }
      },
      "PreferredLocationLabel": {
        "type": "string",
        "title": "PreferredLocationLabel",
        "description": "The label of preferred airport or rail station.",
        "enum": [
          "HOME",
          "WORK",
          "OTHER"
        ],
        "example": "HOME"
      },
      "PreferredPronoun": {
        "title": "PreferredPronoun",
        "type": "string",
        "enum": [
          "SHE_HER_HERS",
          "HE_HIM_HIS",
          "THEY_THEM_THEIRS"
        ],
        "example": "SHE_HER_HERS"
      },
      "PreferredRailStation": {
        "type": "object",
        "title": "PreferredRailStation",
        "description": "Rail station preferred by traveler.",
        "required": [
          "stationCode",
          "label"
        ],
        "properties": {
          "stationName": {
            "type": "string",
            "description": "Rail station name.",
            "example": "Chicago Union Station"
          },
          "stationCode": {
            "type": "string",
            "description": "Rail station code.",
            "example": "CHI"
          },
          "cityName": {
            "type": "string",
            "description": "Name of city where the rail station is located.",
            "example": "Chicago"
          },
          "countryCode": {
            "type": "string",
            "description": "Alpha-2 country code where the rail station is located."
          },
          "label": {
            "$ref": "#/components/schemas/PreferredLocationLabel"
          }
        }
      },
      "PreferredType": {
        "title": "PreferredType",
        "type": "string",
        "description": "Preference type.",
        "enum": [
          "NOT_PREFERRED",
          "COMPANY_PREFERRED",
          "SPOTTERS_CHOICE",
          "COMPANY_BLOCKED",
          "TMC_PREFERRED"
        ]
      },
      "PrimaryServiceProviderTmc": {
        "type": "object",
        "title": "PrimaryServiceProviderTmc",
        "description": "Primary service provider TMC info",
        "required": [
          "tmcId"
        ],
        "properties": {
          "tmcId": {
            "$ref": "#/components/schemas/CompanyId",
            "description": "Id of the service provider TMC."
          }
        }
      },
      "Priority": {
        "type": "string",
        "description": "Priority of the task",
        "enum": [
          "URGENT",
          "HIGH",
          "MEDIUM",
          "LOW",
          "IGNORE",
          "NA"
        ],
        "example": "MEDIUM"
      },
      "ProductType": {
        "description": "Type of product being invoiced",
        "type": "string",
        "enum": [
          "PNR",
          "SERVICE_FEE"
        ],
        "example": "PNR"
      },
      "ProfileOwner": {
        "type": "object",
        "title": "ProfileOwner",
        "description": "Basic information about the owner of the ad-hoc user.",
        "required": [
          "userId"
        ],
        "properties": {
          "userId": {
            "$ref": "#/components/schemas/UserId"
          }
        }
      },
      "Question": {
        "type": "object",
        "title": "Question",
        "description": "The message defines the format of a question which can be asked to a user in any kind of workflows.",
        "required": [
          "id",
          "name",
          "isRequired",
          "isDisabled"
        ],
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "name": {
            "type": "string",
            "description": "Question display name that the user will see. For eg, 'Choose the purpose of your trip'."
          },
          "questionFormat": {
            "$ref": "#/components/schemas/QuestionFormat"
          },
          "optionInfo": {
            "$ref": "#/components/schemas/OptionInfo"
          },
          "isRequired": {
            "type": "boolean",
            "description": "Whether its compulsory to answer the question or not.",
            "default": false,
            "example": true
          },
          "isDisabled": {
            "type": "boolean",
            "description": "Whether the question is disabled or not. If true, this should not be asked.",
            "default": true,
            "example": true
          },
          "includeInItinerary": {
            "type": "boolean",
            "description": "Whether to include this question in the itinerary related emails.",
            "default": false,
            "example": true,
            "deprecated": true,
            "x-sunset": "2026-07-01"
          },
          "customFieldLocations": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomFieldLocation"
            }
          },
          "matchConditions": {
            "$ref": "#/components/schemas/CustomFieldMatchConditions"
          },
          "questionType": {
            "$ref": "#/components/schemas/QuestionType"
          }
        }
      },
      "QuestionFormat": {
        "type": "string",
        "enum": [
          "INPUT_BOX",
          "RADIO_BUTTON",
          "CHECKBOX",
          "CHECKBOX_WITH_PERCENTAGE"
        ],
        "description": "Question types. INPUT_BOX will make user enter a free flowing text.\nRADIO_BUTTON will have multiple options, user can select only one.\nCHECKBOX questions contain the possible set of options, from which the user can choose multiple options.\nCHECKBOX_WITH_PERCENTAGE is similar to checkbox, with the difference being that each option having an additional input field whose values must add up to 100.\n",
        "example": "CHECKBOX"
      },
      "QuestionType": {
        "type": "object",
        "title": "QuestionType",
        "description": "Question type.",
        "properties": {
          "preSearchQuestionType": {
            "$ref": "#/components/schemas/PreSearchQuestionType"
          },
          "preCheckoutQuestionType": {
            "$ref": "#/components/schemas/PreCheckoutQuestionType"
          }
        }
      },
      "Rail": {
        "title": "Rail",
        "description": "Rail PNR information",
        "required": [
          "legInfos",
          "outwardJourney",
          "rate",
          "ticketDetails",
          "type",
          "vendorConfirmationNumber"
        ],
        "properties": {
          "inwardJourney": {
            "$ref": "#/components/schemas/RailPnrJourneyInfo",
            "description": "Inward Journey."
          },
          "legInfos": {
            "type": "array",
            "description": "List of legs covered in the booking.",
            "items": {
              "$ref": "#/components/schemas/RailPnrLegInfo"
            }
          },
          "outwardJourney": {
            "$ref": "#/components/schemas/RailPnrJourneyInfo",
            "description": "Outward Journey."
          },
          "rate": {
            "$ref": "#/components/schemas/Cost",
            "description": "Rate information of the journey."
          },
          "rateMetadata": {
            "$ref": "#/components/schemas/RateMetadata",
            "description": "Price Metadata."
          },
          "passengerInfos": {
            "type": "array",
            "description": "List of passenger information.",
            "items": {
              "$ref": "#/components/schemas/RailPnrPassengerInfo"
            }
          },
          "paymentMode": {
            "type": "string",
            "enum": [
              "PRE_PAID",
              "PAID_AT_STATION"
            ],
            "example": "PRE_PAID"
          },
          "sections": {
            "type": "array",
            "description": "List of sections covered in the booking.",
            "items": {
              "$ref": "#/components/schemas/RailPnrSectionInfo"
            }
          },
          "tickets": {
            "type": "array",
            "description": "List of rail tickets.",
            "items": {
              "$ref": "#/components/schemas/RailPnrTicket"
            }
          },
          "ticketDetails": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RailPnrTicketDetail"
            }
          },
          "type": {
            "$ref": "#/components/schemas/RailSearchType",
            "description": "Journey type."
          },
          "vendorConfirmationNumber": {
            "type": "string",
            "description": "Rail confirmation number",
            "example": "ABQTEJ",
            "deprecated": true,
            "x-sunset": "2026-07-01"
          },
          "itineraryId": {
            "type": "string",
            "description": "Itinerary ID",
            "example": "abcde"
          },
          "ancillaries": {
            "type": "array",
            "description": "Details of the selected ancillaries for the booking.",
            "items": {
              "$ref": "#/components/schemas/RailAncillary"
            }
          },
          "termsAndConditions": {
            "$ref": "#/components/schemas/TermsAndConditions"
          },
          "exchangeInfo": {
            "description": "Exchange information for rail booking.",
            "$ref": "#/components/schemas/RailPnrExchangeInfo",
            "readOnly": true
          },
          "previousItinerary": {
            "description": "Previous itinerary information for rail booking.",
            "$ref": "#/components/schemas/RailPnrPreviousItinerary",
            "readOnly": true
          },
          "relatedRateInfos": {
            "type": "array",
            "description": "List of rate information for the related orders.",
            "readOnly": true,
            "items": {
              "$ref": "#/components/schemas/RailPnrRelatedRateInfo"
            }
          },
          "relatedRefundRateInfos": {
            "type": "array",
            "description": "List of refund rate information for the related refunds.",
            "readOnly": true,
            "items": {
              "$ref": "#/components/schemas/RailPnrRelatedRefundRateInfo"
            }
          }
        }
      },
      "RailAmenityType": {
        "type": "string",
        "description": "Rail amenity type",
        "enum": [
          "WIFI",
          "LUGGAGE_INCLUDED",
          "ELECTRICAL_SOCKET",
          "CAFE",
          "SEAT_DISPLAY",
          "NEWSPAPER",
          "MEAL",
          "QUIET_CAR",
          "SEAT_SELECTION",
          "LOCAL_TRANSPORT",
          "LOUNGE",
          "LEATHER_SEATS",
          "BICYCLE",
          "PET",
          "FIRST_CLASS_COMFORT",
          "BUSINESS_PREMIER",
          "PERSONALIZED_SERVICE",
          "BOARDING",
          "WHEELCHAIR_ACCESS",
          "NURSERY_SPACE",
          "TABLE_SEAT",
          "LARGE_SEAT",
          "EXTRA_LEGROOM",
          "AIR_CONDITIONING",
          "READING_LIGHT"
        ],
        "x-ignoreBreakingChanges": [
          "RailAmenityType->TABLE_SEAT",
          "RailAmenityType->LARGE_SEAT",
          "RailAmenityType->EXTRA_LEGROOM",
          "RailAmenityType->AIR_CONDITIONING",
          "RailAmenityType->READING_LIGHT"
        ],
        "example": "WIFI"
      },
      "RailAncillary": {
        "type": "object",
        "title": "RailAncillary",
        "description": "Ancillaries for rail.",
        "required": [
          "type"
        ],
        "properties": {
          "travelCard": {
            "description": "Details of the travel cards.",
            "$ref": "#/components/schemas/RailTravelCard"
          },
          "type": {
            "description": "Type of the ancillary",
            "type": "string",
            "enum": [
              "TRAVEL_CARD"
            ],
            "example": "TRAVEL_CARD"
          }
        }
      },
      "RailAppliedPromotion": {
        "type": "object",
        "title": "RailAppliedPromotion",
        "description": "Applied promotion for rail.",
        "required": [
          "name"
        ],
        "properties": {
          "type": {
            "type": "string",
            "description": "Type of the promotion",
            "enum": [
              "GROUP_SAVE"
            ],
            "example": "GROUP_SAVE"
          },
          "name": {
            "type": "string",
            "description": "Name of the promotion",
            "example": "GroupSave"
          },
          "description": {
            "type": "string",
            "description": "Description of the promotion",
            "example": "GroupSave discount allows any group of 3 - 9 passengers"
          },
          "conditions": {
            "type": "array",
            "description": "Conditions of the promotion",
            "items": {
              "type": "string",
              "example": "Passengers must travel together at all times for the tickets to be valid"
            }
          }
        }
      },
      "RailBookingGuideline": {
        "title": "RailBookingGuideline",
        "description": "Rail related guidelines",
        "type": "object",
        "properties": {
          "arrivalBookingWindow": {
            "description": "Booking window for rail-in-event.",
            "$ref": "#/components/schemas/EventBookingWindow"
          },
          "departureBookingWindow": {
            "description": "Booking window for rail-out-event.",
            "$ref": "#/components/schemas/EventBookingWindow"
          }
        }
      },
      "RailBookingGuidelineWrapper": {
        "type": "object",
        "title": "RailBookingGuidelineWrapper",
        "description": "Wrapper for RailBookingGuideline",
        "properties": {
          "railBookingGuideLine": {
            "$ref": "#/components/schemas/RailBookingGuideline"
          }
        }
      },
      "RailCard": {
        "type": "object",
        "title": "RailCard",
        "description": "Rail card",
        "required": [
          "name",
          "spotnanaCode",
          "vendor"
        ],
        "properties": {
          "cardNumber": {
            "type": "string",
            "description": "Number of card"
          },
          "expiryDate": {
            "description": "Expiry date of the Rail Card.",
            "$ref": "#/components/schemas/DateModel"
          },
          "name": {
            "type": "string",
            "description": "Name of the Rail Card.",
            "example": "Veterans Railcard"
          },
          "spotnanaCode": {
            "description": "Unique Spotnana code/identifier for Rail Card.",
            "type": "string",
            "example": "VET"
          },
          "vendor": {
            "type": "string",
            "description": "Vendor Name.",
            "example": "ATOC"
          }
        }
      },
      "RailCo2EmissionDetails": {
        "type": "object",
        "title": "RailCo2EmissionDetails",
        "description": "CO2 emission info for rail",
        "required": [
          "co2EmissionKilograms"
        ],
        "properties": {
          "co2EmissionKilograms": {
            "type": "number",
            "format": "double",
            "description": "CO2 emission for the outward/inward leg in kilograms for a single passenger.",
            "example": 10
          },
          "isApproximate": {
            "type": "boolean",
            "description": "Indicates whether the emissions value is approximate or not.",
            "example": true
          }
        }
      },
      "RailDeliveryOption": {
        "description": "Delivery options available.",
        "type": "string",
        "enum": [
          "ELECTRONIC_TICKET",
          "KIOSK"
        ],
        "example": "ELECTRONIC_TICKET"
      },
      "RailExchangeType": {
        "description": "Exchange type",
        "type": "string",
        "enum": [
          "AMEND_RESERVATION",
          "PAY_THE_DIFFERENCE",
          "REBOOK_AND_REFUND"
        ],
        "example": "AMEND_RESERVATION"
      },
      "RailFareComposition": {
        "type": "string",
        "description": "Rail Fare Composition",
        "enum": [
          "THROUGH",
          "DIRECT_SPLIT",
          "INTERCHANGE_SPLIT"
        ],
        "example": "DIRECT_SPLIT"
      },
      "RailFareDetail": {
        "type": "object",
        "title": "RailFareDetail",
        "description": "Details about this fare.",
        "required": [
          "description",
          "name"
        ],
        "properties": {
          "description": {
            "type": "string",
            "description": "Description about this fare.",
            "example": "Your journey must be on the date, or the day after the date, specified on the ticket."
          },
          "name": {
            "type": "string",
            "description": "Name of the Attribute.",
            "example": "VALIDITY"
          }
        }
      },
      "RailFareType": {
        "type": "object",
        "title": "RailFareType",
        "description": "Type of fare.",
        "required": [
          "description"
        ],
        "properties": {
          "description": {
            "type": "string",
            "description": "Description of this fare type.",
            "example": "Anytime Return (1st Class)"
          },
          "fareDetails": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RailFareDetail"
            }
          },
          "fareSummary": {
            "type": "string",
            "description": "Summary of the fare",
            "example": "Any time of day, return within 1 month."
          }
        }
      },
      "RailItem": {
        "type": "object",
        "title": "RailItem",
        "description": "This describes the railItem related to a particular itemGroup.",
        "required": [
          "itemType"
        ],
        "properties": {
          "itemType": {
            "type": "string"
          },
          "legInfos": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LegInfoRail"
            }
          },
          "ancillaries": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RailAncillary"
            }
          }
        }
      },
      "RailOrderStatus": {
        "type": "string",
        "description": "Order status for related orders",
        "enum": [
          "CREATED",
          "COMPLETE"
        ],
        "example": "COMPLETE"
      },
      "RailPassengerType": {
        "type": "string",
        "description": "Passenger type",
        "enum": [
          "ADULT",
          "CHILD",
          "INFANT",
          "YOUTH",
          "SENIOR"
        ],
        "example": "ADULT"
      },
      "RailPnrAmenity": {
        "type": "object",
        "title": "RailPnrAmenity",
        "description": "Amenities for rail.",
        "required": [
          "name"
        ],
        "properties": {
          "description": {
            "type": "string",
            "description": "Amenity description",
            "example": "Seat Reservation"
          },
          "name": {
            "type": "string",
            "description": "Amenity name",
            "example": "Seat Reservation"
          },
          "price": {
            "description": "Price of the amenity",
            "$ref": "#/components/schemas/Money"
          },
          "quantity": {
            "type": "integer",
            "format": "int32",
            "description": "Available/Selected quantity",
            "example": 1
          },
          "type": {
            "description": "Rail Amenity type",
            "$ref": "#/components/schemas/RailAmenityType"
          }
        }
      },
      "RailPnrETicketMetadata": {
        "type": "object",
        "title": "RailPnrETicketMetadata",
        "description": "For ELECTRONIC_TICKET, it contains e-ticket file info.",
        "required": [
          "eticketData",
          "type"
        ],
        "properties": {
          "description": {
            "type": "string",
            "description": "E-ticket file name.",
            "example": "Rail e-ticket"
          },
          "eticketData": {
            "type": "string",
            "description": "E-ticket data as bytes.",
            "format": "byte"
          },
          "type": {
            "$ref": "#/components/schemas/RailTicketType",
            "description": "Type of ticket."
          }
        }
      },
      "RailPnrExchangeInfo": {
        "type": "object",
        "title": "RailPnrExchangeInfo",
        "description": "Exchange information for rail PNR.",
        "required": [
          "exchangeType"
        ],
        "properties": {
          "exchangeType": {
            "description": "Exchange type.",
            "$ref": "#/components/schemas/RailExchangeType"
          },
          "relatedSectionInfo": {
            "description": "Related section information for the exchanged itinerary.",
            "$ref": "#/components/schemas/RailPnrRelatedSectionInfo"
          }
        }
      },
      "RailPnrFareInfo": {
        "type": "object",
        "title": "RailPnrFareInfo",
        "description": "Information about the rail fare.",
        "required": [
          "fareType",
          "fareLegs"
        ],
        "properties": {
          "appliedPromotions": {
            "type": "array",
            "description": "List of applied promotions for this fare.",
            "items": {
              "$ref": "#/components/schemas/RailAppliedPromotion"
            }
          },
          "destinationInfo": {
            "description": "Fare destination station info.",
            "$ref": "#/components/schemas/RailStationInfo"
          },
          "fareLegs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RailPnrFareLegInfo"
            }
          },
          "fareType": {
            "description": "Fare details for this fare.",
            "$ref": "#/components/schemas/RailFareType"
          },
          "originInfo": {
            "description": "Fare origin station info.",
            "$ref": "#/components/schemas/RailStationInfo"
          },
          "passengerRefs": {
            "type": "array",
            "description": "List of passenger indexes for this fare.",
            "items": {
              "type": "integer",
              "format": "int32",
              "example": 1,
              "minimum": 0
            }
          },
          "rate": {
            "description": "Rate Information of the fare.",
            "$ref": "#/components/schemas/Cost"
          },
          "routeRestriction": {
            "type": "string",
            "description": "Route restrictions for the fare.",
            "example": "Travel is allowed via any permitted route."
          }
        }
      },
      "RailPnrFareLegInfo": {
        "type": "object",
        "title": "FarePnrLegInfo",
        "description": "Information about the leg this fare represents.",
        "required": [
          "legIndex"
        ],
        "properties": {
          "legIndex": {
            "type": "integer",
            "format": "int32",
            "description": "Index of leg in journey.",
            "example": 1
          },
          "travelClass": {
            "$ref": "#/components/schemas/RailTravelClass",
            "example": "FIRST"
          }
        }
      },
      "RailPnrJourneyInfo": {
        "type": "object",
        "title": "RailPnrJourneyInfo",
        "description": "Journey info",
        "required": [
          "legs"
        ],
        "properties": {
          "journeyStatus": {
            "$ref": "#/components/schemas/PnrStatus",
            "description": "Status of journey."
          },
          "legs": {
            "type": "array",
            "description": "List of indexes of legs covered in the journey.",
            "items": {
              "type": "integer",
              "format": "int32",
              "example": 0,
              "minimum": 0
            }
          },
          "co2EmissionDetails": {
            "description": "This sets the CO2 emission info for rail.",
            "$ref": "#/components/schemas/RailCo2EmissionDetails"
          },
          "sortingPriority": {
            "type": "integer",
            "description": "Sort order of the rail journey on the trips page",
            "example": 0
          },
          "fareComposition": {
            "description": "Indicates whether the fare is through or split.",
            "$ref": "#/components/schemas/RailFareComposition"
          },
          "userFacingStatus": {
            "description": "User facing status of the journey.",
            "readOnly": true,
            "$ref": "#/components/schemas/UserFacingStatus"
          }
        }
      },
      "RailPnrLegInfo": {
        "type": "object",
        "title": "RailPnrLegInfo",
        "description": "Leg info",
        "required": [
          "destination",
          "fareType",
          "origin",
          "vehicle"
        ],
        "properties": {
          "allocatedSpaces": {
            "type": "array",
            "description": "Space allocated for each passenger.",
            "items": {
              "type": "object",
              "title": "RailAllocatedSpace",
              "description": "Space allocated for a passenger in the rail.",
              "required": [
                "coachNumber",
                "travelerIdx",
                "seatNumber"
              ],
              "properties": {
                "coachNumber": {
                  "type": "string",
                  "description": "Coach Number.",
                  "example": "B"
                },
                "travelerIdx": {
                  "type": "integer",
                  "description": "Traveler for which the seat belongs.",
                  "format": "int32",
                  "example": 0,
                  "minimum": 0
                },
                "userId": {
                  "$ref": "#/components/schemas/UserId",
                  "description": "User ID of traveler to which this seat belongs."
                },
                "seatNumber": {
                  "type": "string",
                  "description": "Seat Number.",
                  "example": "32"
                },
                "additionalProperties": {
                  "type": "array",
                  "description": "Additional Properties of allocated seat.",
                  "items": {
                    "type": "string",
                    "example": "Window"
                  }
                }
              }
            }
          },
          "travelerRailInfo": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TravelerRailInfo"
            }
          },
          "amenities": {
            "type": "array",
            "description": "List of amenities available for the leg.",
            "items": {
              "$ref": "#/components/schemas/RailPnrAmenity"
            }
          },
          "arriveAt": {
            "$ref": "#/components/schemas/DateTimeOffset",
            "description": "Date and time of arrival of the leg.",
            "deprecated": true,
            "x-sunset": "2026-07-01"
          },
          "departAt": {
            "$ref": "#/components/schemas/DateTimeOffset",
            "description": "Date and time of departure of the leg.",
            "deprecated": true,
            "x-sunset": "2026-07-01"
          },
          "arriveAtLocal": {
            "$ref": "#/components/schemas/DateTimeLocal",
            "description": "Date and time of arrival of the leg in local time of the arrival station."
          },
          "departAtLocal": {
            "$ref": "#/components/schemas/DateTimeLocal",
            "description": "Date and time of departure of the leg in local time of the departure station."
          },
          "destination": {
            "type": "string",
            "description": "Destination station name of the leg.",
            "example": "Liverpool Lime Street",
            "deprecated": true,
            "x-sunset": "2026-07-01"
          },
          "distance": {
            "description": "Distance covered by the leg.",
            "$ref": "#/components/schemas/Length"
          },
          "duration": {
            "description": "Duration of the leg.",
            "$ref": "#/components/schemas/Duration"
          },
          "fareType": {
            "type": "string",
            "description": "Details of fare for this leg.",
            "example": "Anytime Return"
          },
          "origin": {
            "description": "Originating station name of the leg.",
            "type": "string",
            "example": "London Euston",
            "deprecated": true,
            "x-sunset": "2026-07-01"
          },
          "travelClass": {
            "$ref": "#/components/schemas/RailTravelClass",
            "description": "Travel class for the leg."
          },
          "vehicle": {
            "$ref": "#/components/schemas/RailVehicle",
            "description": "Vehicle used in the leg."
          },
          "originInfo": {
            "description": "Information about origin station.",
            "$ref": "#/components/schemas/RailStationInfo"
          },
          "destinationInfo": {
            "description": "Information about destination station.",
            "$ref": "#/components/schemas/RailStationInfo"
          },
          "railFareType": {
            "description": "Captures Cancellation policy and Fair Rules",
            "$ref": "#/components/schemas/RailFareType"
          },
          "ticketNumber": {
            "type": "string",
            "description": "ticket number",
            "example": "345675333"
          },
          "carrierConfirmationNumber": {
            "type": "string",
            "description": "carrier confirmation number for a segment",
            "example": "QP123AF"
          },
          "seatPreferenceSelection": {
            "description": "Selected Seat Preferences for the leg.",
            "$ref": "#/components/schemas/RailSeatPreferenceSelection"
          },
          "legId": {
            "description": "Leg Id.",
            "type": "string",
            "example": "9a766905-b5e9-43f7-b985-0738ff692324"
          },
          "vendorName": {
            "type": "string",
            "description": "Name of the vendor for which current leg is reserved",
            "example": "ATOC"
          },
          "co2EmissionGramsPerPassenger": {
            "type": "integer",
            "format": "int32",
            "description": "CO2 emission for the current leg in gram for a single passenger.",
            "example": 10903
          }
        }
      },
      "RailPnrOrderRateInfo": {
        "type": "object",
        "title": "RailPnrOrderRateInfo",
        "description": "Order rate details including base fare, fees, and total.",
        "properties": {
          "base": {
            "description": "Base fare amount.",
            "$ref": "#/components/schemas/Money"
          },
          "fees": {
            "description": "Tax and fees amount.",
            "$ref": "#/components/schemas/Money"
          },
          "total": {
            "description": "Total amount (base + fees).",
            "$ref": "#/components/schemas/Money"
          }
        }
      },
      "RailPnrPassengerInfo": {
        "type": "object",
        "title": "RailPnrPassengerInfo",
        "description": "Passenger information for rail.",
        "properties": {
          "userOrgId": {
            "$ref": "#/components/schemas/UserOrgId",
            "description": "User organization ID."
          },
          "passengerType": {
            "$ref": "#/components/schemas/RailPassengerType",
            "description": "Type of passenger."
          }
        }
      },
      "RailPnrPreviousItinerary": {
        "type": "object",
        "title": "RailPnrPreviousItinerary",
        "description": "Previous itinerary information for rail PNR.",
        "required": [
          "type",
          "outwardJourney",
          "legInfos",
          "sections",
          "deliveryOption",
          "sourceReference",
          "rate"
        ],
        "properties": {
          "type": {
            "description": "Search type of the itinerary.",
            "$ref": "#/components/schemas/RailSearchType"
          },
          "outwardJourney": {
            "description": "Outward journey details.",
            "$ref": "#/components/schemas/RailPnrJourneyInfo"
          },
          "inwardJourney": {
            "description": "Inward journey details.",
            "$ref": "#/components/schemas/RailPnrJourneyInfo"
          },
          "legInfos": {
            "description": "List of legs covered in the booking.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RailPnrLegInfo"
            }
          },
          "sections": {
            "description": "List of sections covered in the itinerary.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RailPnrSectionInfo"
            }
          },
          "deliveryOption": {
            "description": "Delivery option of the itinerary.",
            "$ref": "#/components/schemas/RailDeliveryOption"
          },
          "sourceReference": {
            "description": "Source reference of the itinerary.",
            "type": "string"
          },
          "rate": {
            "$ref": "#/components/schemas/Cost",
            "description": "Rate information of the previous itinerary."
          }
        }
      },
      "RailPnrRefundRateInfo": {
        "type": "object",
        "title": "RailPnrRefundRateInfo",
        "description": "Refund rate details including fare refund, admin fee, and total refund.",
        "properties": {
          "fareRefund": {
            "description": "Fare refund amount.",
            "$ref": "#/components/schemas/Money"
          },
          "adminFee": {
            "description": "Admin fee for the refund.",
            "$ref": "#/components/schemas/Money"
          },
          "totalRefund": {
            "description": "Total refund amount (fareRefund - adminFee).",
            "$ref": "#/components/schemas/Money"
          }
        }
      },
      "RailPnrRelatedRateInfo": {
        "type": "object",
        "title": "RailPnrRelatedRateInfo",
        "description": "Rate information for the related order.",
        "properties": {
          "rateInfo": {
            "description": "Rate information for the related order.",
            "$ref": "#/components/schemas/RailPnrOrderRateInfo"
          },
          "sourceReference": {
            "type": "string",
            "description": "Source reference for the related order.",
            "example": "TL-ORDER-123456"
          },
          "transactionDateTime": {
            "description": "Transaction date time for the related order.",
            "$ref": "#/components/schemas/DateTimeOffset"
          },
          "orderStatus": {
            "description": "Order status for the related order.",
            "$ref": "#/components/schemas/RailOrderStatus"
          },
          "relatedRefunds": {
            "type": "array",
            "description": "List of related refund indexes associated with this order.",
            "items": {
              "type": "integer",
              "format": "int32",
              "example": 0
            }
          }
        }
      },
      "RailPnrRelatedRefundRateInfo": {
        "type": "object",
        "title": "RailPnrRelatedRefundRateInfo",
        "description": "Refund rate information for the related refund.",
        "properties": {
          "refundId": {
            "type": "string",
            "description": "Refund id from the supplier.",
            "example": "REFUND-123456"
          },
          "transactionDateTime": {
            "description": "Transaction date time for the related refund.",
            "$ref": "#/components/schemas/DateTimeOffset"
          },
          "legs": {
            "type": "array",
            "description": "List of leg indexes for the related refund.",
            "items": {
              "type": "integer",
              "format": "int32",
              "example": 0,
              "minimum": 0
            }
          },
          "passengerRefs": {
            "type": "array",
            "description": "List of passenger indexes for the related refund.",
            "items": {
              "type": "integer",
              "format": "int32",
              "example": 0,
              "minimum": 0
            }
          },
          "refundRateInfo": {
            "description": "Refund rate details including fare refund, admin fee, and total refund.",
            "$ref": "#/components/schemas/RailPnrRefundRateInfo"
          }
        }
      },
      "RailPnrRelatedSectionInfo": {
        "type": "object",
        "title": "RailPnrRelatedSectionInfo",
        "description": "Related section information for the exchanged itinerary.",
        "properties": {
          "newSectionIndexes": {
            "type": "array",
            "description": "Section indexes of the exchanged itinerary.",
            "items": {
              "type": "integer",
              "format": "int32",
              "example": 0
            }
          },
          "oldSectionIndexes": {
            "type": "array",
            "description": "Section indexes of the previous itinerary.",
            "items": {
              "type": "integer",
              "format": "int32",
              "example": 0
            }
          }
        }
      },
      "RailPnrSectionInfo": {
        "type": "object",
        "title": "RailPnrSectionInfo",
        "description": "Information about the rail section.",
        "required": [
          "fares"
        ],
        "properties": {
          "fares": {
            "type": "array",
            "description": "List of all fares in this section.",
            "items": {
              "$ref": "#/components/schemas/RailPnrFareInfo"
            }
          },
          "rate": {
            "description": "Rate information about the section.",
            "$ref": "#/components/schemas/Cost"
          },
          "sectionStatus": {
            "type": "string",
            "description": "Status of the section.",
            "enum": [
              "INITIATED",
              "CONFIRMED",
              "CANCELLED",
              "REQUESTED"
            ],
            "example": "CONFIRMED"
          },
          "vendorConfirmations": {
            "type": "array",
            "description": "List of vendor confirmation numbers for this section.",
            "items": {
              "$ref": "#/components/schemas/RailPnrVendorConfirmation"
            }
          },
          "vendorName": {
            "type": "string",
            "description": "Name of the vendor for this section.",
            "example": "ATOC"
          },
          "userFacingStatus": {
            "description": "User facing status of the section.",
            "readOnly": true,
            "$ref": "#/components/schemas/UserFacingStatus"
          }
        }
      },
      "RailPnrTicket": {
        "type": "object",
        "title": "RailPnrTicket",
        "description": "Rail ticket.",
        "required": [
          "ticketNumber",
          "legs",
          "passengerRefs"
        ],
        "properties": {
          "issuedDateTime": {
            "description": "Ticket issued date time.",
            "$ref": "#/components/schemas/DateTimeOffset"
          },
          "ticketNumber": {
            "type": "string",
            "description": "Ticket number.",
            "example": "0840010000072"
          },
          "price": {
            "description": "Price of the ticket.",
            "$ref": "#/components/schemas/Money"
          },
          "refundedPrice": {
            "description": "Refunded price of the ticket.",
            "$ref": "#/components/schemas/Money"
          },
          "legs": {
            "type": "array",
            "description": "List of legs covered by this ticket.",
            "items": {
              "type": "integer",
              "format": "int32",
              "example": 1,
              "minimum": 0
            }
          },
          "passengerRefs": {
            "type": "array",
            "description": "List of passenger indexes for this ticket.",
            "items": {
              "type": "integer",
              "format": "int32",
              "example": 1,
              "minimum": 0
            }
          }
        },
        "x-ignoreBreakingChanges": [
          "RailPnrTicket->price",
          "RailPnrTicket->refundedPrice"
        ]
      },
      "RailPnrTicketDetail": {
        "type": "object",
        "title": "RailPnrTicketDetail",
        "description": "Ticket details of the travelers.",
        "required": [
          "deliveryOption"
        ],
        "properties": {
          "deliveryOption": {
            "$ref": "#/components/schemas/RailDeliveryOption",
            "description": "Delivery option selected for the section."
          },
          "eticketMetadata": {
            "$ref": "#/components/schemas/RailPnrETicketMetadata",
            "description": "E-ticket metadata."
          },
          "reference": {
            "type": "string",
            "description": "For KIOSK, it contains the reference number of the ticket.\nFor ELECTRONIC_TICKET, it contains the path where the actual content of the ticket is.\n"
          },
          "deliveryStatus": {
            "$ref": "#/components/schemas/RailTicketDeliveryStatus",
            "description": "Delivery status of the ticket."
          },
          "legs": {
            "type": "array",
            "description": "List of legs covered by this ticket asset.",
            "items": {
              "type": "integer",
              "format": "int32",
              "example": 1,
              "minimum": 0
            }
          },
          "passengerRefs": {
            "type": "array",
            "description": "List of passenger indexes for this ticket asset.",
            "items": {
              "type": "integer",
              "format": "int32",
              "example": 1,
              "minimum": 0
            }
          }
        }
      },
      "RailPnrVendorConfirmation": {
        "type": "object",
        "title": "RailPnrVendorConfirmation",
        "description": "Vendor Confirmation details",
        "required": [
          "vendorConfirmationId"
        ],
        "properties": {
          "passengerRefs": {
            "type": "array",
            "description": "List of passenger indexes.",
            "items": {
              "type": "integer",
              "format": "int32",
              "example": 1,
              "minimum": 0
            }
          },
          "vendorConfirmationId": {
            "type": "string",
            "description": "Vendor confirmation id.",
            "example": "XY179358"
          }
        }
      },
      "RailPref": {
        "type": "object",
        "title": "RailPref",
        "description": "Travel preferences related to rail station.",
        "properties": {
          "preferredRailStations": {
            "type": "array",
            "description": "A list of user preferred rail stations.",
            "items": {
              "$ref": "#/components/schemas/PreferredRailStation"
            }
          },
          "seatPreference": {
            "$ref": "#/components/schemas/SeatPref"
          },
          "travelClasses": {
            "type": "array",
            "description": "A list of class of service for rail.",
            "items": {
              "$ref": "#/components/schemas/RailTravelClass"
            }
          },
          "coachPreferences": {
            "type": "array",
            "description": "A list of coach preference for rail.",
            "items": {
              "$ref": "#/components/schemas/CoachPref"
            }
          },
          "conditionalRates": {
            "type": "array",
            "description": "A list of conditional rates for rail.",
            "items": {
              "$ref": "#/components/schemas/ConditionalRate"
            }
          }
        }
      },
      "RailRateInfo": {
        "type": "object",
        "title": "RailRateInfo",
        "description": "Rate for the itinerary.",
        "required": [
          "base",
          "fees",
          "total"
        ],
        "properties": {
          "base": {
            "description": "Base Amount.",
            "$ref": "#/components/schemas/Money"
          },
          "fees": {
            "description": "Fees and Taxes.",
            "$ref": "#/components/schemas/Money"
          },
          "railCardDiscount": {
            "description": "Rail Card Discount Amount",
            "$ref": "#/components/schemas/Money"
          },
          "total": {
            "description": "Total Amount.",
            "$ref": "#/components/schemas/Money"
          },
          "refund": {
            "description": "Total Refund Amount.",
            "$ref": "#/components/schemas/Money"
          },
          "refundVoucher": {
            "description": "Refund voucher details.",
            "$ref": "#/components/schemas/Voucher"
          },
          "rateDifference": {
            "description": "Base rate difference during exchange.",
            "$ref": "#/components/schemas/Money"
          },
          "totalRateDifference": {
            "description": "Total rate difference during exchange.",
            "$ref": "#/components/schemas/Money"
          },
          "includesCommission": {
            "type": "boolean",
            "description": "Whether the rate includes commission",
            "example": false
          }
        }
      },
      "RailRsvpResponse": {
        "title": "RailRsvpResponse",
        "type": "object",
        "description": "Rail rsvp response",
        "properties": {
          "notNeeded": {
            "type": "boolean",
            "description": "Whether rail booking is needed by the traveler or not",
            "example": true
          }
        }
      },
      "RailSearchType": {
        "type": "string",
        "description": "Enum representing what kind of journey it is.",
        "enum": [
          "ONE_WAY",
          "RETURN",
          "OPEN_RETURN"
        ],
        "example": "RETURN"
      },
      "RailSeatPreferenceSelection": {
        "type": "object",
        "title": "RailSeatPreferenceSelection",
        "description": "Selected Seat Preferences for the itinerary.",
        "properties": {
          "carriageType": {
            "description": "Seat Carriage Type",
            "type": "string",
            "example": "Quiet"
          },
          "deckType": {
            "description": "Seat Carriage Type",
            "type": "string",
            "example": "Upstairs"
          },
          "direction": {
            "description": "Seat Direction.",
            "type": "string",
            "example": "Backward facing"
          },
          "facilities": {
            "type": "array",
            "description": "Seat Facilities.",
            "items": {
              "type": "string",
              "example": "Near luggage rack"
            }
          },
          "positionType": {
            "description": "Seat Position Type.",
            "type": "string",
            "example": "Window"
          },
          "seatLocationType": {
            "description": "Seat Location Type.",
            "type": "string",
            "example": "Sit close to"
          },
          "seatType": {
            "description": "Seat Type.",
            "type": "string",
            "example": "Family"
          }
        }
      },
      "RailStationInfo": {
        "type": "object",
        "description": "Details of the station.",
        "title": "RailStationInfo",
        "required": [
          "name"
        ],
        "properties": {
          "name": {
            "type": "string",
            "description": "Name of the station"
          },
          "code": {
            "type": "string",
            "description": "Unique code of the station."
          },
          "cityCode": {
            "type": "string",
            "description": "City Code for the Railway Station",
            "example": "LON"
          },
          "timeZone": {
            "type": "string",
            "description": "TimeZone of the Railway Station",
            "example": "Europe/London"
          },
          "countryCode": {
            "type": "string",
            "description": "Unique Code of the Country of Railway Station",
            "example": "GB"
          },
          "latLong": {
            "$ref": "#/components/schemas/Latlng",
            "description": "Coordinates of the Railway Station."
          },
          "localCode": {
            "type": "string",
            "description": "Local code of the station.",
            "example": "EUS1444"
          },
          "uicCodes": {
            "type": "array",
            "description": "List of UIC codes of the station.",
            "items": {
              "type": "string",
              "example": "7061210"
            }
          },
          "sourceRefInfos": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RailStationSourceRefInfo"
            },
            "description": "Source Reference Info"
          },
          "stationType": {
            "type": "string",
            "description": "Status of the journey.",
            "enum": [
              "INDIVIDUAL",
              "STATION_GROUP",
              "METRO",
              "BUS_STOP",
              "FERRY_TERMINAL"
            ],
            "example": "METRO"
          },
          "cityName": {
            "type": "string",
            "description": "City Name of the Railway Station",
            "example": "LONDON"
          },
          "stateCode": {
            "type": "string",
            "description": "State code for the Railway Station",
            "example": "MA"
          },
          "continentCode": {
            "type": "string",
            "description": "Unique Code of the Railway Station's Continent",
            "example": "EU"
          }
        }
      },
      "RailStationSourceRefInfo": {
        "type": "object",
        "description": "Source Reference Information",
        "title": "RailStationSourceRefInfo",
        "required": [
          "stationReferenceId",
          "inventoryName"
        ],
        "properties": {
          "stationReferenceId": {
            "type": "string",
            "description": "Reference Id of the Station",
            "example": "https://et2-trainlineapi.ttlnonprod.com/stations/op~U~6e6165d9-1be0-4a52-b461-57f18d756c4c"
          },
          "inventoryName": {
            "type": "string",
            "description": "Inventory Name",
            "example": "Atoc"
          }
        }
      },
      "RailTicketAsset": {
        "type": "object",
        "title": "RailTicketAsset",
        "description": "Details of tickets.",
        "required": [
          "description",
          "reference",
          "type"
        ],
        "properties": {
          "description": {
            "description": "Provide some details on what the given asset contains.",
            "type": "string"
          },
          "reference": {
            "description": "For ticket type collection number, it contains the reference number of the ticket.\nFor others, it contains the path where the actual content of the ticket is.\n",
            "type": "string"
          },
          "type": {
            "description": "Provide details on what type of the ticket is.",
            "$ref": "#/components/schemas/RailTicketType"
          }
        }
      },
      "RailTicketDeliveryStatus": {
        "type": "string",
        "description": "Enum representing the status of the ticket delivery.",
        "enum": [
          "FULFILLING",
          "FULFILLED"
        ],
        "example": "FULFILLED"
      },
      "RailTicketType": {
        "description": "Ticket asset type.",
        "type": "string",
        "enum": [
          "PDF",
          "PNG",
          "APPLE_PK_PASS",
          "HTML",
          "COLLECTION_NUMBER"
        ],
        "example": "PDF"
      },
      "RailTravelCard": {
        "type": "object",
        "title": "RailTravelCard",
        "description": "Travel card to select.",
        "required": [
          "travelCardKey",
          "vendorName"
        ],
        "properties": {
          "fareType": {
            "description": "Fare details of the card.",
            "$ref": "#/components/schemas/RailFareType"
          },
          "rateInfo": {
            "description": "Price details of the card.",
            "$ref": "#/components/schemas/RailRateInfo"
          },
          "travelCardKey": {
            "description": "Base64 encoded string to uniquely identify the card.",
            "type": "string",
            "example": "CilvcH5VfmZmMjU0MjVhLTQ1ZGYtNDRlZi1iYjFmLWRhZTYxMDFkMDhiORIkYjJiMTdkZmYtNDgwNy00YzgyLWI2YWEtMWM5Yjc0ZTEzOWZi"
          },
          "validityPeriod": {
            "description": "Validity period of the card.",
            "$ref": "#/components/schemas/RailValidity"
          },
          "vendorName": {
            "description": "Vendor which provides the card.",
            "type": "string",
            "example": "ATOC"
          },
          "zoneValidity": {
            "description": "Zones in which travel card is valid.",
            "type": "string",
            "example": "London Travelcard Zones 1-4"
          }
        }
      },
      "RailTravelClass": {
        "description": "Travel class",
        "type": "string",
        "enum": [
          "FIRST",
          "STANDARD",
          "BUSINESS",
          "SLEEPER",
          "STANDARD_PREMIUM",
          "BUSINESS_PREMIUM",
          "COACH",
          "ROOM",
          "EXECUTIVE"
        ],
        "example": "FIRST"
      },
      "RailValidity": {
        "type": "object",
        "title": "RailValidity",
        "description": "Time validity for journey.",
        "required": [
          "validFrom",
          "validUntil"
        ],
        "properties": {
          "validFrom": {
            "description": "Starting time of validity.",
            "$ref": "#/components/schemas/DateTimeLocal"
          },
          "validUntil": {
            "description": "End time of validity.",
            "$ref": "#/components/schemas/DateTimeLocal"
          }
        }
      },
      "RailVehicle": {
        "type": "object",
        "description": "Information regarding the vehicle and operator.",
        "title": "RailVehicle",
        "required": [
          "carrierName",
          "timetableId",
          "type"
        ],
        "properties": {
          "carrierName": {
            "description": "Name of the carrier.",
            "type": "string",
            "example": "Deutsche Bahn"
          },
          "route": {
            "description": "Route taken by the vehicle.",
            "type": "string",
            "example": "L17"
          },
          "timetableId": {
            "description": "Timetable ID",
            "type": "string",
            "example": "ICE 373"
          },
          "transportName": {
            "description": "Name of the transport.",
            "type": "string",
            "example": "TGV"
          },
          "type": {
            "type": "string",
            "description": "Type of vehicle.",
            "enum": [
              "TRAIN",
              "BUS",
              "FERRY",
              "WALK",
              "TAXI",
              "TRAM",
              "METRO",
              "TUBE"
            ],
            "example": "TRAIN"
          }
        }
      },
      "RateMetadata": {
        "type": "object",
        "description": "Price Summary",
        "properties": {
          "negotiatedRateType": {
            "type": "string",
            "enum": [
              "NONE",
              "CORPORATE_RATE",
              "AGENCY_RATE"
            ],
            "example": "CORPORATE_RATE"
          },
          "publishedRate": {
            "$ref": "#/components/schemas/FareAmount",
            "description": "the non negotiated rate or the market rate."
          },
          "tmcNegotiatedRate": {
            "$ref": "#/components/schemas/FareAmount",
            "description": "the tmc negotiated rate."
          },
          "corporateNegotiatedRate": {
            "$ref": "#/components/schemas/FareAmount",
            "description": "the corporate negotiated rate."
          }
        }
      },
      "RateType": {
        "type": "string",
        "title": "RateType",
        "description": "Type of booked fare",
        "enum": [
          "RATE_TYPE_UNKNOWN",
          "PUBLISHED",
          "TMC_NEGOTIATED",
          "COMPANY_NEGOTIATED"
        ],
        "example": "PUBLISHED"
      },
      "RatingWrapper": {
        "type": "object",
        "title": "RatingWrapper",
        "properties": {
          "rating": {
            "type": "number",
            "format": "double"
          }
        }
      },
      "RawPaymentSourceDetails": {
        "type": "object",
        "title": "RawPaymentSourceDetails",
        "description": "Raw Details of the Payment Source",
        "discriminator": {
          "propertyName": "type",
          "mapping": {
            "DPAN": "#/components/schemas/Dpan",
            "CREDIT": "#/components/schemas/Credit"
          }
        },
        "oneOf": [
          {
            "$ref": "#/components/schemas/Dpan"
          },
          {
            "$ref": "#/components/schemas/Credit"
          }
        ]
      },
      "RebookReference": {
        "title": "RebookReference",
        "type": "object",
        "description": "Rate Assurance Rebooking information along with pnr references and savings",
        "properties": {
          "cancelledPnrIds": {
            "type": "array",
            "description": "Backward reference to the cancelled PNRs (if any) after rebooking.",
            "items": {
              "type": "string",
              "example": "1234567890"
            }
          },
          "rebookedPnrId": {
            "type": "string",
            "description": "Forward reference to the rebooked PNR (if any) after cancellation.",
            "example": "1234567890"
          },
          "hotelRateAssuranceMetadata": {
            "$ref": "#/components/schemas/HotelRateAssuranceMetadata"
          },
          "rebookType": {
            "type": "string",
            "description": "Indicates the reason for rebooking.",
            "enum": [
              "RATE_ASSURANCE",
              "MODIFY"
            ],
            "example": "RATE_ASSURANCE"
          }
        }
      },
      "RedressNumber": {
        "type": "object",
        "title": "RedressNumber",
        "description": "Redress details",
        "required": [
          "number",
          "issueCountry"
        ],
        "properties": {
          "number": {
            "type": "string",
            "example": "12345"
          },
          "issueCountry": {
            "type": "string",
            "example": "US"
          }
        }
      },
      "RedressNumberWrapper": {
        "type": "object",
        "title": "RedressNumberWrapper",
        "properties": {
          "redress": {
            "$ref": "#/components/schemas/RedressNumber"
          }
        }
      },
      "Reference": {
        "type": "object",
        "title": "Reference object containing uuid and name of the entity.",
        "description": "Reference of an entity",
        "required": [
          "id"
        ],
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "example": "b93dc51f-12dd-46c7-b7d6-1cb12cd3f5b3"
          },
          "name": {
            "type": "string",
            "example": "Name"
          }
        }
      },
      "Relation": {
        "deprecated": true,
        "x-sunset": "2026-07-01",
        "type": "string",
        "enum": [
          "SPOUSE",
          "CHILD",
          "FRIEND",
          "PARENT",
          "OTHER"
        ],
        "example": "SPOUSE"
      },
      "RelativeOf": {
        "type": "object",
        "description": "Link to primary traveler",
        "properties": {
          "userRef": {
            "$ref": "#/components/schemas/Reference"
          },
          "relation": {
            "$ref": "#/components/schemas/Relation"
          }
        }
      },
      "RequestedByDetails": {
        "title": "RequestedByDetails",
        "type": "object",
        "description": "Information about the requester of the trip.",
        "required": [
          "pnrRequestedBy"
        ],
        "properties": {
          "pnrRequestedBy": {
            "type": "string",
            "description": "Name of the requester",
            "example": "Peter"
          },
          "requestedByUserOrgId": {
            "$ref": "#/components/schemas/UserOrgId"
          }
        }
      },
      "ResidueType": {
        "title": "ResidueType",
        "type": "string",
        "description": "Type of residue for cases where the ticket is exchanged to a lower amount",
        "enum": [
          "NO_RESIDUE",
          "MCO",
          "FORFEITED",
          "REFUNDED"
        ]
      },
      "ResolutionType": {
        "type": "string",
        "enum": [
          "MANUAL",
          "AI"
        ],
        "example": "MANUAL"
      },
      "RestrictedKeywordsWithReason": {
        "type": "object",
        "properties": {
          "keyword": {
            "type": "string",
            "description": "Restricted keyword",
            "example": "Test Keyword"
          },
          "reason": {
            "type": "string",
            "description": "Reason for restriction",
            "example": "Test Reason"
          }
        }
      },
      "Room": {
        "type": "object",
        "title": "Room",
        "description": "Room info",
        "required": [
          "bedCount",
          "bedType",
          "cancellationPolicy",
          "rateInfo"
        ],
        "properties": {
          "bedCount": {
            "type": "integer",
            "description": "Number of rooms.",
            "format": "int32",
            "example": 1
          },
          "bedType": {
            "$ref": "#/components/schemas/BedType",
            "description": "Bed type."
          },
          "cancellationPolicy": {
            "$ref": "#/components/schemas/CancellationPolicy2",
            "description": "Room cancellation policy."
          },
          "rateInfo": {
            "type": "object",
            "title": "RateInfo",
            "description": "Rate info for the booking",
            "required": [
              "nightlyRate",
              "totalRate"
            ],
            "properties": {
              "nightlyRate": {
                "$ref": "#/components/schemas/Money",
                "description": "Average nightly rate for the booking."
              },
              "totalRate": {
                "$ref": "#/components/schemas/Cost",
                "description": "Total rate for the booking."
              },
              "overallPenaltyCharged": {
                "$ref": "#/components/schemas/Money",
                "description": "Overall Penalty charged for the booking."
              },
              "publishedRate": {
                "$ref": "#/components/schemas/Cost",
                "description": "Published rate for the room, at the time of booking."
              },
              "publishedNightlyRate": {
                "$ref": "#/components/schemas/Cost",
                "description": "Published nightly rate for the room, at the time of booking."
              },
              "prepaidRate": {
                "$ref": "#/components/schemas/Cost",
                "description": "Prepaid component for the rate."
              },
              "postpaidRate": {
                "$ref": "#/components/schemas/Cost",
                "description": "Pay at property component for the rate."
              },
              "rateCode": {
                "type": "string",
                "description": "Rate Code used for the booking",
                "example": "SIG"
              },
              "isModifiable": {
                "type": "boolean",
                "description": "Flag to indicate if the rate is modifiable",
                "readOnly": true,
                "example": false
              },
              "isFopModifiable": {
                "type": "boolean",
                "description": "Flag to indicate if the form of payment is modifiable",
                "readOnly": true,
                "example": true
              },
              "nightlyRates": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/Cost"
                },
                "description": "Nightly rates for the booking."
              },
              "rateType": {
                "$ref": "#/components/schemas/HotelRateType",
                "description": "The type of rate."
              }
            }
          },
          "roomName": {
            "type": "string",
            "description": "Name of the room.",
            "example": "Standard Twin Room (City View)"
          },
          "imageSets": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/HotelImageSet"
            }
          },
          "meals": {
            "$ref": "#/components/schemas/HotelRoomMeal",
            "description": "Details of Meal plan available with the room."
          },
          "roomAmenities": {
            "type": "array",
            "deprecated": true,
            "x-sunset": "2026-07-01",
            "items": {
              "$ref": "#/components/schemas/RoomAmenitiy"
            }
          },
          "amenities": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/HotelRoomAmenity"
            }
          },
          "additionalAmenities": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "guaranteeType": {
            "description": "Guarantee type for the booking.",
            "type": "string",
            "enum": [
              "GUARANTEE",
              "DEPOSIT"
            ]
          },
          "additionalDetails": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/HotelAdditionalDetail",
              "description": "List of Additional Details for the room"
            }
          },
          "roomInfo": {
            "type": "object",
            "properties": {
              "roomType": {
                "$ref": "#/components/schemas/RoomType"
              },
              "typeClassDescription": {
                "type": "string"
              },
              "roomView": {
                "type": "object",
                "properties": {
                  "type": {
                    "$ref": "#/components/schemas/RoomView"
                  },
                  "roomClass": {
                    "type": "array",
                    "items": {
                      "$ref": "#/components/schemas/RoomClass"
                    }
                  }
                }
              },
              "roomTypeCode": {
                "type": "string",
                "description": "Room type code.",
                "example": "1QN"
              }
            }
          },
          "co2EmissionDetail": {
            "description": "The co2 emission detail for the room.",
            "$ref": "#/components/schemas/HotelCo2EmissionDetail"
          },
          "rateMetadata": {
            "$ref": "#/components/schemas/RateMetadata",
            "description": "Price Metadata."
          }
        }
      },
      "RoomAmenitiy": {
        "type": "object",
        "title": "RoomAmenities",
        "description": "Room amenities",
        "required": [
          "roomAmenityType"
        ],
        "properties": {
          "additionalInfo": {
            "type": "string",
            "description": "Extra information about the room amenity"
          },
          "isComplimentary": {
            "type": "boolean",
            "description": "Is amenity complimentary",
            "example": true
          },
          "roomAmenityType": {
            "type": "string",
            "description": "Room amenity type",
            "enum": [
              "UNKNOWN",
              "ADJOINING_ROOMS",
              "AIR_CONDITIONING",
              "ALARM_CLOCK",
              "ALL_NEWS_CHANNEL",
              "AM_FM_RADIO",
              "BABY_LISTENING_DEVICE",
              "BALCONY_LANAI_TERRACE",
              "BARBEQUE_GRILLS",
              "BATH_TUB_WITH_SPRAY_JETS",
              "BATHROBE",
              "BATHROOM_AMENITIES",
              "BATHROOM_TELEPHONE",
              "BATHTUB",
              "BATHTUB_ONLY",
              "BATHTUB_SHOWER_COMBINATION",
              "BIDET",
              "BOTTLED_WATER",
              "CABLE_TELEVISION",
              "COFFEE_TEA_MAKER",
              "COLOR_TELEVISION",
              "COMPUTER",
              "CONNECTING_ROOMS",
              "CONVERTERS_VOLTAGE_ADAPTORS",
              "COPIER",
              "CORDLESS_PHONE",
              "CRIBS",
              "DATA_PORT",
              "DESK",
              "DESK_WITH_LAMP",
              "DINING_GUIDE",
              "DIRECT_DIAL_PHONE_NUMBER",
              "DISHWASHER",
              "DOUBLE_BEDS",
              "DUAL_VOLTAGE_OUTLET",
              "ELECTRICAL_CURRENT_VOLTAGE",
              "ERGONOMIC_CHAIR",
              "EXTENDED_PHONE_CORD",
              "FAX_MACHINE",
              "FIRE_ALARM",
              "FIRE_ALARM_WITH_LIGHT",
              "FIREPLACE",
              "FREE_TOLL_FREE_CALLS",
              "FREE_CALLS",
              "FREE_CREDIT_CARD_ACCESS_CALLS",
              "FREE_LOCAL_CALLS",
              "FREE_MOVIES_VIDEO",
              "FULL_KITCHEN",
              "GRAB_BARS_IN_BATHROOM",
              "GRECIAN_TUB",
              "HAIRDRYER",
              "HIGH_SPEED_INTERNET_CONNECTION",
              "INTERACTIVE_WEB_TV",
              "INTERNATIONAL_DIRECT_DIALING",
              "INTERNET_ACCESS",
              "IRON",
              "IRONING_BOARD",
              "WHIRPOOL",
              "KING_BED",
              "KITCHEN",
              "KITCHEN_SUPPLIES",
              "KITCHENETTE",
              "KNOCK_LIGHT",
              "LAPTOP",
              "LARGE_DESK",
              "LARGE_WORK_AREA",
              "LAUNDRY_BASKET_CLOTHES_HAMPER",
              "LOFT",
              "MICROWAVE",
              "MINIBAR",
              "MODEM",
              "MODEM_JACK",
              "MULTILINE_PHONE",
              "NEWSPAPER",
              "NONSMOKING",
              "NOTEPADS",
              "OFFICE_SUPPLIES",
              "OVEN",
              "PAY_PER_VIEW_MOVIES_ON_TV",
              "PENS",
              "PHONE_IN_BATHROOM",
              "PLATES_AND_BOWLS",
              "POTS_AND_PANS",
              "PRAYER_MATS",
              "PRINTER",
              "PRIVATE_BATHROOM",
              "QUEEN_BED",
              "RECLINER",
              "REFRIGERATOR",
              "REFRIGERATOR_WITH_ICE_MAKER",
              "REMOTE_CONTROL_TELEVISION",
              "ROLLAWAY_BED",
              "SAFE",
              "SCANNER",
              "SEPARATE_CLOSET",
              "SEPARATE_MODEM_LINE_AVAILABLE",
              "SHOE_POLISHER",
              "SHOWER_ONLY",
              "SILVERWARE_UTENSILS",
              "SITTING_AREA",
              "SMOKE_DETECTORS",
              "SMOKING",
              "SOFA_BED",
              "SPEAKER_PHONE",
              "STEREO",
              "STOVE",
              "TAPE_RECORDER",
              "TELEPHONE",
              "TELEPHONE_FOR_HEARING_IMPAIRED",
              "TELEPHONES_WITH_MESSAGE_LIGHT",
              "TOASTER_OVEN",
              "TROUSER_PANT_PRESS",
              "TURN_DOWN_SERVICE",
              "TWIN_BED",
              "VAULTED_CEILINGS",
              "VCR_MOVIES",
              "VCR_PLAYER",
              "VIDEO_GAMES_AMENITY",
              "VOICE_MAIL",
              "WAKEUP_CALLS",
              "WATER_CLOSET",
              "WATER_PURIFICATION_SYSTEM",
              "WET_BAR",
              "WIRELESS_INTERNET_CONNECTION",
              "WIRELESS_KEYBOARD",
              "ADAPTOR_AVAILABLE_FOR_TELEPHONE_PC_USE",
              "AIR_CONDITIONING_INDIVIDUALLY_CONTROLLED_IN_ROOM",
              "BATHTUB_ANDWHIRLPOOL_SEPARATE",
              "TELEPHONE_WITH_DATA_PORTS",
              "CD_PLAYER",
              "COMPLIMENTARY_LOCAL_CALLS_TIME_LIMIT",
              "EXTRA_PERSON_CHARGE_FOR_ROLLAWAY_USE",
              "DOWN_FEATHER_PILLOWS",
              "DESK_WITH_ELECTRICAL_OUTLET",
              "ESPN_AVAILABLE",
              "FOAM_PILLOWS",
              "HBO_AVAILABLE",
              "HIGH_CEILINGS",
              "MARBLE_BATHROOM",
              "LIST_OF_MOVIE_CHANNELS_AVAILABLE",
              "PETS_ALLOWED",
              "OVERSIZED_BATHTUB",
              "SHOWER",
              "SINK_INROOM",
              "SOUNDPROOFED_ROOM",
              "STORAGE_SPACE",
              "TABLES_AND_CHAIRS",
              "TWOLINE_PHONE",
              "WALKIN_CLOSET",
              "WASHER_DRYER",
              "WEIGHT_SCALE",
              "WELCOME_GIFT",
              "SPARE_ELECTRICAL_OUTLET_AVAILABLE_AT_DESK",
              "NONREFUNDABLE_CHARGE_FOR_PETS",
              "REFUNDABLE_DEPOSIT_FOR_PETS",
              "SEPARATE_TUB_AND_SHOWER",
              "ENTRANCE_TYPE_TO_GUEST_ROOM",
              "CEILING_FAN",
              "CNN_AVAILABLE",
              "ELECTRICAL_ADAPTORS_AVAILABLE",
              "BUFFET_BREAKFAST",
              "ACCESSIBLE_ROOM",
              "CLOSETS_IN_ROOM",
              "DVD_PLAYER",
              "MINIREFRIGERATOR",
              "SEPARATE_LINE_BILLING_FOR_MULTILINE_PHONE",
              "SELFCONTROLLED_HEATING_COOLING_SYSTEM",
              "TOASTER",
              "ANALOG_DATA_PORT",
              "COLLECT_CALLS",
              "INTERNATIONAL_CALLS",
              "CARRIER_ACCESS",
              "INTERSTATE_CALLS",
              "INTRASTATE_CALLS",
              "LOCAL_CALLS",
              "LONG_DISTANCE_CALLS",
              "OPERATORASSISTED_CALLS",
              "CREDIT_CARD_ACCESS_CALLS",
              "CALLING_CARD_CALLS",
              "TOLL_FREE_CALLS",
              "UNIVERSAL_AC_DC_ADAPTORS",
              "BATHTUB_SEAT",
              "CANOPY_POSTER_BED",
              "CUPS_GLASSWARE",
              "ENTERTAINMENT_CENTER",
              "FAMILY_OVERSIZED_ROOM",
              "HYPOALLERGENIC_BED",
              "HYPOALLERGENIC_PILLOWS",
              "LAMP",
              "MEAL_INCLUDED_BREAKFAST",
              "MEAL_INCLUDED_CONTINENTAL_BREAKFAST",
              "MEAL_INCLUDED_DINNER",
              "MEAL_INCLUDED_LUNCH",
              "SHARED_BATHROOM",
              "TELEPHONE_TDD_TEXTPHONE",
              "WATER_BED",
              "EXTRA_ADULT_CHARGE",
              "EXTRA_CHILD_CHARGE",
              "EXTRA_CHILD_CHARGE_FOR_ROLLAWAY_USE",
              "MEAL_INCLUDED_FULL_AMERICAN_BREAKFAST",
              "FUTON",
              "MURPHY_BED",
              "TATAMI_MATS",
              "SINGLE_BED",
              "ANNEX_ROOM",
              "FREE_NEWSPAPER",
              "HONEYMOON_SUITES",
              "COMPLIMENTARY_HIGH_SPEED_INTERNET_IN_ROOM",
              "MAID_SERVICE",
              "PC_HOOKUP_IN_ROOM",
              "SATELLITE_TELEVISION",
              "VIP_ROOMS",
              "CELL_PHONE_RECHARGER",
              "DVR_PLAYER",
              "IPOD_DOCKING_STATION",
              "MEDIA_CENTER",
              "PLUG_AND_PLAY_PANEL",
              "SATELLITE_RADIO",
              "VIDEO_ON_DEMAND",
              "EXTERIOR_CORRIDORS",
              "GULF_VIEW",
              "ACCESSIBLE_ROOM_AMENITY",
              "INTERIOR_CORRIDORS",
              "MOUNTAIN_VIEW",
              "OCEAN_VIEW",
              "HIGH_SPEED_INTERNET_ACCESS_FEE",
              "HIGH_SPEED_WIRELESS",
              "PREMIUM_MOVIE_CHANNELS",
              "SLIPPERS",
              "FIRST_NIGHTERS_KIT",
              "CHAIR_PROVIDED_WITH_DESK",
              "PILLOW_TOP_MATTRESS",
              "FEATHER_BED",
              "DUVET",
              "LUXURY_LINEN_TYPE",
              "INTERNATIONAL_CHANNELS",
              "PANTRY",
              "DISHCLEANING_SUPPLIES",
              "DOUBLE_VANITY",
              "LIGHTED_MAKEUP_MIRROR",
              "UPGRADED_BATHROOM_AMENITIES",
              "VCR_PLAYER_AVAILABLE_AT_FRONT_DESK",
              "INSTANT_HOT_WATER",
              "OUTDOOR_SPACE",
              "HINOKI_TUB",
              "PRIVATE_POOL",
              "HIGH_DEFINITION_HD_FLAT_PANEL_TELEVISION_32_INCHES_OR_GREATER",
              "ROOM_WINDOWS_OPEN",
              "BEDDING_TYPE_UNKNOWN_OR_UNSPECIFIED",
              "FULL_BED",
              "ROUND_BED",
              "TV",
              "CHILD_ROLLAWAY",
              "DVD_PLAYER_AVAILABLE_AT_FRONT_DESK",
              "VIDEO_GAME_PLAYER",
              "VIDEO_GAME_PLAYER_AVAILABLE_AT_FRONT_DESK",
              "DINING_ROOM_SEATS",
              "FULL_SIZE_MIRROR",
              "MOBILE_CELLULAR_PHONES",
              "MOVIES",
              "MULTIPLE_CLOSETS",
              "PLATES_GLASSWARE",
              "SAFE_LARGE_ENOUGH_TO_ACCOMMODATE_A_LAPTOP",
              "BED_LINEN_THREAD_COUNT",
              "BLACKOUT_CURTAIN",
              "BLURAY_PLAYER",
              "DEVICE_WITH_MP3",
              "NO_ADULT_CHANNELS_OR_ADULT_CHANNEL_LOCK",
              "NONALLERGENIC_ROOM",
              "PILLOW_TYPE",
              "SEATING_AREA_WITH_SOFA_CHAIR",
              "SEPARATE_TOILET_AREA",
              "WEB_ENABLED",
              "WIDESCREEN_TV",
              "OTHER_DATA_CONNECTION",
              "PHONELINE_BILLED_SEPARATELY",
              "SEPARATE_TUB_OR_SHOWER",
              "VIDEO_GAMES",
              "ROOF_VENTILATOR",
              "CHILDRENS_PLAYPEN",
              "PLUNGE_POOL",
              "DVD_MOVIES",
              "AIR_FILTRATION"
            ],
            "example": "WEB_ENABLED"
          }
        }
      },
      "RoomClass": {
        "type": "string",
        "description": "Room Class",
        "enum": [
          "STANDARD",
          "PREMIUM",
          "DELUXE",
          "BUSINESS",
          "PRESIDENTIAL",
          "SUPERIOR",
          "JUNIOR",
          "CLUB",
          "UNKNOWN"
        ],
        "example": "PRESIDENTIAL"
      },
      "RoomPreference": {
        "type": "object",
        "title": "RoomPreference",
        "description": "Room options and stay preference.",
        "properties": {
          "isMobilityAccessible": {
            "type": "boolean",
            "description": "Whether or not mobility accessible room, tub.",
            "default": false,
            "example": false
          },
          "bedCount": {
            "type": "string",
            "description": "The number of bed in the room.",
            "enum": [
              "ONE_BED",
              "TWO_BEDS"
            ],
            "example": "ONE_BED"
          },
          "roomType": {
            "type": "string",
            "description": "Single selection of type of room.",
            "enum": [
              "SMOKING",
              "NON_SMOKING"
            ],
            "example": "SMOKING"
          },
          "mostImportantFact": {
            "type": "string",
            "description": "Single selection of the most import fact.",
            "enum": [
              "ROOM_TYPE",
              "BED_COUNT",
              "ROOM_LOCATION"
            ],
            "example": "BED_COUNT"
          },
          "roomLocation": {
            "type": "string",
            "description": "Location of the hotel room",
            "enum": [
              "HIGH_FLOOR",
              "LOW_FLOOR",
              "NEAR_ELEVATOR"
            ],
            "example": "HIGH_FLOOR"
          },
          "pillowType": {
            "type": "string",
            "description": "The type of pillow in hotel room.",
            "enum": [
              "FOAM",
              "EXTRA_FOAM",
              "EXTRA_FEATHER"
            ],
            "example": "FOAM"
          },
          "roomAmenityPrefs": {
            "type": "array",
            "items": {
              "type": "string",
              "description": "Amenity preference of the room.",
              "enum": [
                "FEATHER_FREE_ROOM",
                "EXTRA_TOWELS",
                "REFRIGERATOR"
              ],
              "example": "EXTRA_TOWELS"
            }
          }
        }
      },
      "RoomType": {
        "type": "string",
        "description": "Room Type",
        "enum": [
          "ROOM",
          "SUITE",
          "VILLA",
          "APARTMENT",
          "COTTAGE",
          "STUDIO",
          "UNKNOWN_ROOM"
        ],
        "example": "ROOM"
      },
      "RoomView": {
        "type": "string",
        "enum": [
          "UNKNOWN",
          "AIRPORT",
          "BAY",
          "CITY",
          "COURTYARD",
          "GOLF",
          "HARBOR",
          "INTERCOASTAL",
          "LAKE",
          "MARINA",
          "MOUNTAIN",
          "OCEAN",
          "POOL",
          "RIVER",
          "WATER",
          "BEACH",
          "GARDEN",
          "PARK",
          "FOREST",
          "RAIN_FOREST",
          "VARIOUS",
          "LIMITED",
          "SLOPE",
          "STRIP",
          "COUNTRYSIDE",
          "SEA",
          "GULF"
        ]
      },
      "RuleBasedInfo": {
        "title": "RuleBasedInfo",
        "type": "object",
        "description": "Rule based processor info",
        "required": [
          "ruleName",
          "chargeProcessorType"
        ],
        "properties": {
          "ruleName": {
            "type": "string",
            "description": "Rule name",
            "example": "Rule1"
          },
          "chargeProcessorType": {
            "type": "string",
            "description": "Charge processor type",
            "example": "RULE_BASED_INFO"
          }
        }
      },
      "SavingsFare": {
        "title": "SavingsFare",
        "description": "Total savings present.",
        "required": [
          "fareAmount"
        ],
        "properties": {
          "fareAmount": {
            "$ref": "#/components/schemas/FareAmount",
            "description": "Amount saved with base and tax breakup."
          },
          "isTaxIncluded": {
            "type": "boolean",
            "default": false
          }
        }
      },
      "ScheduleChangeInfo": {
        "type": "object",
        "title": "ScheduleChangeInfo",
        "description": "Schedule change information for the leg.",
        "properties": {
          "flightIndices": {
            "type": "array",
            "description": "List of flight indices in this leg which has schedule changes.",
            "items": {
              "type": "integer",
              "description": "Flight index in the leg",
              "example": 1
            }
          },
          "disruptedFlightIndices": {
            "type": "array",
            "description": "List of flight indices in the disrupted flights list in the air pnr which has schedule changes.",
            "items": {
              "type": "integer",
              "description": "Flight index in the disrupted flights list.",
              "example": 1
            }
          },
          "possibleActions": {
            "type": "array",
            "description": "Actions allowed for the user on the schedule change for this leg",
            "items": {
              "$ref": "#/components/schemas/ScheduleChangePossibleAction"
            }
          },
          "selectedTravelerAction": {
            "description": "Action selected by the traveler for the schedule change",
            "$ref": "#/components/schemas/ScheduleChangePossibleAction"
          }
        }
      },
      "ScheduleChangePossibleAction": {
        "description": "Actions allowed for the user on the schedule change for this ticket",
        "type": "string",
        "enum": [
          "ACCEPT_BOOKING",
          "CANCEL_BOOKING",
          "MODIFY_BOOKING",
          "CONTACT_AGENT"
        ],
        "example": "ACCEPT_BOOKING"
      },
      "ScheduleChangeRefundInfo": {
        "type": "object",
        "title": "ScheduleChangeRefundInfo",
        "description": "Refund information if applicable for this ticket",
        "properties": {
          "isRefundAllowed": {
            "type": "boolean",
            "description": "Whether refund is allowed if user denies schedule change/cancels the flight"
          },
          "refundWaiverCode": {
            "type": "string",
            "description": "Waiver code for refund if applicable"
          },
          "exchangeWaiverCode": {
            "type": "string",
            "description": "Waiver code for exchange if available"
          }
        }
      },
      "SearchParams": {
        "title": "SearchParams",
        "type": "object",
        "description": "Search Parameter including location and datetime for a given search.",
        "required": [
          "location",
          "datetime"
        ],
        "properties": {
          "location": {
            "$ref": "#/components/schemas/CarSearchLocationParam"
          },
          "datetime": {
            "$ref": "#/components/schemas/DateTimeLocal"
          },
          "searchQuery": {
            "type": "string",
            "description": "Search query provided for the search.",
            "example": "London"
          }
        }
      },
      "SeatAmenity": {
        "type": "object",
        "title": "SeatAmenity",
        "description": "Seat Amenity properties",
        "properties": {
          "displayText": {
            "type": "string",
            "example": "Full flat all aisle access"
          },
          "seatType": {
            "type": "string",
            "example": "full flat pod"
          },
          "width": {
            "type": "string"
          },
          "legroom": {
            "type": "string"
          },
          "pitch": {
            "type": "number",
            "format": "double",
            "example": 78
          }
        }
      },
      "SeatAmenityPref": {
        "type": "object",
        "title": "SeatAmenityPref",
        "description": "Seat amenity preference.",
        "required": [
          "seatAmenityTypes"
        ],
        "properties": {
          "seatAmenityTypes": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "UNKNOWN_AIR_SEAT_AMENITY_TYPE",
                "FLAT_BED",
                "WIFI",
                "IN_SEAT_POWER"
              ],
              "example": "WIFI"
            }
          }
        }
      },
      "SeatAmenityWrapper": {
        "type": "object",
        "title": "SeatAmenityWrapper",
        "properties": {
          "seatAmenity": {
            "$ref": "#/components/schemas/SeatAmenity"
          }
        }
      },
      "SeatLocationPref": {
        "type": "object",
        "title": "SeatLocationPref",
        "description": "Seat location preference.",
        "properties": {
          "cabins": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "UNKNOWN_CABIN",
                "ECONOMY",
                "PREMIUM_ECONOMY",
                "BUSINESS",
                "FIRST"
              ],
              "example": "FIRST"
            }
          },
          "isBulkHeadPref": {
            "type": "boolean",
            "example": false
          },
          "maxFlightDurationInHours": {
            "type": "integer",
            "format": "int32",
            "example": 3
          },
          "position": {
            "type": "string",
            "enum": [
              "UNKNOWN_POSITION",
              "AISLE",
              "WINDOW",
              "AISLE_OR_WINDOW"
            ],
            "example": "WINDOW"
          }
        }
      },
      "SeatPref": {
        "type": "object",
        "title": "SeatPref",
        "description": "Preference about seat of rail.",
        "properties": {
          "hasAccessibility": {
            "type": "boolean",
            "description": "Whether or not requires assistance for disability.",
            "default": false,
            "example": false
          },
          "seatTypes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SeatPrefType"
            }
          },
          "seatLocations": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SeatPrefLocation"
            }
          },
          "deckLevels": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DeckLevel"
            }
          },
          "seatDirections": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SeatPrefDirection"
            }
          }
        }
      },
      "SeatPrefDirection": {
        "type": "string",
        "description": "The direction of seat of the rail.",
        "enum": [
          "FORWARD",
          "BACKWARD"
        ],
        "example": "FORWARD"
      },
      "SeatPrefLocation": {
        "type": "string",
        "description": "The location of seat of the rail.",
        "enum": [
          "AISLE",
          "WINDOW",
          "SOLO"
        ],
        "example": "AISLE"
      },
      "SeatPrefType": {
        "type": "string",
        "description": "The type of seat of the rail.",
        "enum": [
          "SLEEPER_BED",
          "NORMAL",
          "TABLE_SEAT"
        ],
        "example": "NORMAL"
      },
      "SecondaryServiceProviderTmc": {
        "type": "object",
        "title": "SecondaryServiceProviderTmc",
        "description": "Secondary service provider TMC info",
        "required": [
          "tmcId",
          "supplier",
          "travelType"
        ],
        "properties": {
          "tmcId": {
            "$ref": "#/components/schemas/CompanyId",
            "description": "Id of the service provider TMC."
          },
          "supplier": {
            "$ref": "#/components/schemas/SupplierType",
            "description": "Supplier for which this service provider should be used."
          },
          "travelType": {
            "$ref": "#/components/schemas/TravelType",
            "description": "Travel type for which this service provider should be used."
          }
        }
      },
      "SelectedPaymentSource": {
        "type": "object",
        "description": "Describes the selected payment source for the booking.",
        "properties": {
          "paymentSourceId": {
            "type": "string",
            "format": "uuid",
            "description": "Unique identifier identifying this payment source.",
            "example": "f49d00fe-1eda-4304-ba79-a980f565281d"
          },
          "rawPaymentSource": {
            "$ref": "#/components/schemas/RawPaymentSourceDetails"
          },
          "postPaymentRedirectionUrl": {
            "type": "string",
            "description": "Url for post payment redirection if payment source navigates user to a third party url",
            "example": "https://mycompany.com/checkout?paymentSourceId=f49d00fe-1eda-4304-ba79-a980f565281d"
          },
          "cvv": {
            "type": "string",
            "description": "CVV associated with associated payment source, if any."
          },
          "amount": {
            "description": "Total amount to be charged for specified payment items.",
            "$ref": "#/components/schemas/Money"
          }
        }
      },
      "SellerInfo": {
        "type": "object",
        "title": "SellerInfo",
        "description": "Entity that sold the items mentioned in the invoice.",
        "required": [
          "name",
          "address"
        ],
        "properties": {
          "name": {
            "description": "Name of seller, usually a TMC Legal Entity.",
            "type": "string",
            "example": "Spotnana India Pvt. Ltd."
          },
          "address": {
            "description": "Address of seller.",
            "type": "string",
            "example": "115 Broadway Suite 04-101,\nNew York, NY 10006"
          },
          "taxId": {
            "description": "Tax number for the seller, for ex GSTN in India",
            "type": "string",
            "example": "TXG239023092",
            "deprecated": true,
            "x-sunset": "2026-07-01"
          },
          "idInfo": {
            "type": "array",
            "description": "The seller ID information.",
            "items": {
              "$ref": "#/components/schemas/IdInfo"
            }
          }
        }
      },
      "ServiceCharge1": {
        "type": "object",
        "x-ignore-naming-case": true,
        "properties": {
          "event_type": {
            "type": "string",
            "description": "SERVICE_CHARGE"
          },
          "operationSummary": {
            "$ref": "#/components/schemas/OperationSummary"
          },
          "operation": {
            "$ref": "#/components/schemas/ServiceChargeOperationType"
          },
          "payload": {
            "$ref": "#/components/schemas/ServiceChargeRecord"
          },
          "timestamp": {
            "type": "string",
            "description": "Timestamp when the event was published"
          },
          "audience": {
            "$ref": "#/components/schemas/WebhookAudience"
          }
        }
      },
      "ServiceCharge2": {
        "type": "object",
        "title": "ServiceCharge",
        "description": "Service charge.",
        "required": [
          "amount",
          "taxes",
          "totalAmount"
        ],
        "properties": {
          "amount": {
            "$ref": "#/components/schemas/Money",
            "description": "Service charge amount."
          },
          "taxes": {
            "type": "array",
            "description": "Applicable taxes.",
            "items": {
              "$ref": "#/components/schemas/TaxAmount"
            }
          },
          "totalAmount": {
            "$ref": "#/components/schemas/Money",
            "description": "Total amount (including taxes)."
          },
          "allowedFoP": {
            "type": "array",
            "deprecated": true,
            "x-sunset": "2026-07-01",
            "description": "List of allowed payment methods for this charge.",
            "items": {
              "$ref": "#/components/schemas/PaymentMethod"
            }
          },
          "feeInfo": {
            "$ref": "#/components/schemas/FeeInfo"
          },
          "waiveOffInfo": {
            "$ref": "#/components/schemas/AppliedWaiveOffInfo"
          }
        }
      },
      "ServiceChargeEntity": {
        "type": "object",
        "title": "ServiceChargeEntity",
        "description": "Entity for service charge.",
        "required": [
          "entityType",
          "entityId"
        ],
        "properties": {
          "entityType": {
            "$ref": "#/components/schemas/ServiceChargeEntityType",
            "description": "Entity type for service charge.",
            "example": "TRIP"
          },
          "entityId": {
            "type": "string",
            "description": "Entity ID for service charge e.g, trip ID for entityType=TRIP.",
            "example": "1234567890"
          }
        }
      },
      "ServiceChargeEntityType": {
        "type": "string",
        "title": "ServiceChargeEntityType",
        "description": "Entity type for service charge.",
        "enum": [
          "TRIP",
          "USER"
        ]
      },
      "ServiceChargeOperationType": {
        "description": "Service charge operation types",
        "type": "string",
        "enum": [
          "SERVICE_FEE"
        ],
        "example": "SERVICE_FEE",
        "x-enumDescriptions": {
          "SERVICE_FEE": "A service fee has been charged for the latest PNR."
        }
      },
      "ServiceChargeRecord": {
        "type": "object",
        "title": "ServiceChargeRecord",
        "description": "Service charge record.",
        "required": [
          "entity",
          "serviceChargeType",
          "serviceType",
          "charge",
          "transactionTime",
          "paymentStatus"
        ],
        "properties": {
          "entity": {
            "$ref": "#/components/schemas/ServiceChargeEntity",
            "description": "Entity for service charge."
          },
          "tripId": {
            "type": "string",
            "description": "Trip ID (if applicable).",
            "example": "1234567890",
            "deprecated": true,
            "x-sunset": "2026-07-01"
          },
          "serviceChargeType": {
            "$ref": "#/components/schemas/ServiceChargeType",
            "description": "Type of service charge.",
            "example": "TMC_CHARGE"
          },
          "serviceType": {
            "$ref": "#/components/schemas/ServiceType",
            "description": "Type of service.",
            "example": "AGENT_CONTACT"
          },
          "agentContact": {
            "$ref": "#/components/schemas/AgentContact",
            "description": "Agent contact details if serviceType is AGENT_CONTACT."
          },
          "chargeId": {
            "type": "string",
            "description": "Charge Id to uniquely identify service charge.",
            "example": "e2c04834-92eb-4b62-9faa-eb73a70051d3"
          },
          "charge": {
            "$ref": "#/components/schemas/ServiceCharge2",
            "description": "Service charge."
          },
          "transactionTime": {
            "$ref": "#/components/schemas/DateTimeOffset",
            "description": "Transaction date and time."
          },
          "paymentStatus": {
            "$ref": "#/components/schemas/PaymentStatus",
            "description": "Payment status."
          },
          "userOrgId": {
            "$ref": "#/components/schemas/UserOrgId",
            "description": "User org details."
          },
          "legalEntityId": {
            "$ref": "#/components/schemas/LegalEntityId",
            "description": "The ID of the legal entity."
          },
          "bookingDetails": {
            "$ref": "#/components/schemas/BookingDetails",
            "description": "Booking details."
          },
          "fop": {
            "$ref": "#/components/schemas/FormOfPayment",
            "description": "Form of payment for the service charge."
          },
          "paymentTransaction": {
            "$ref": "#/components/schemas/PaymentTransaction",
            "description": "Payment transaction details."
          },
          "failureDetails": {
            "$ref": "#/components/schemas/FailureDetails",
            "description": "Failure details."
          }
        }
      },
      "ServiceChargeType": {
        "type": "string",
        "title": "ServiceChargeType",
        "description": "Type of service charge. TMC_CHARGE: Service charge for a service charged by the TMC.\n",
        "enum": [
          "TMC_CHARGE"
        ]
      },
      "ServiceFee": {
        "title": "ServiceFee",
        "description": "Service Fee on the booking",
        "type": "object",
        "required": [
          "fare",
          "ticketNumber",
          "status"
        ],
        "properties": {
          "fare": {
            "$ref": "#/components/schemas/FareAmount",
            "description": "Amount charged for the service fee"
          },
          "taxes": {
            "type": "array",
            "description": "List of applicable taxes",
            "items": {
              "$ref": "#/components/schemas/TaxAmount"
            }
          },
          "ticketNumber": {
            "type": "string",
            "description": "Ticket Number"
          },
          "status": {
            "type": "string",
            "description": "Status for the associated ticket",
            "enum": [
              "ISSUED",
              "VOIDED",
              "PENDING",
              "DELAYED_INVOICE",
              "FAILED",
              "NO_CHARGE",
              "UNKNOWN",
              "WAIVED_OFF"
            ],
            "example": "ISSUED"
          },
          "fop": {
            "$ref": "#/components/schemas/FormOfPayment",
            "description": "Form of payment for the above amount"
          },
          "visibleToTraveler": {
            "type": "boolean",
            "description": "Show/hide service fee to traveler",
            "example": true
          },
          "paymentTransactionInfo": {
            "$ref": "#/components/schemas/PaymentTransactionInfo"
          },
          "tags": {
            "type": "array",
            "description": "List of key-value pairs for storing some tags related to service-fee.",
            "items": {
              "$ref": "#/components/schemas/KeyValue"
            }
          },
          "feeInfo": {
            "$ref": "#/components/schemas/FeeInfo"
          },
          "waiveOffInfo": {
            "$ref": "#/components/schemas/AppliedWaiveOffInfo"
          },
          "chargeId": {
            "type": "string",
            "description": "Unique identifier for the charge associated with this service fee."
          }
        }
      },
      "ServiceFeeTransactionType": {
        "type": "string",
        "title": "ServiceFeeTransactionType",
        "description": "Transaction type for service fee",
        "enum": [
          "TRANSACTION_TYPE_BOOKING",
          "TRANSACTION_TYPE_MODIFICATION",
          "TRANSACTION_TYPE_CANCELLATION",
          "TRANSACTION_TYPE_AGENT_CONTACT"
        ],
        "x-ignoreBreakingChanges": [
          "ServiceFeeTransactionType->TRANSACTION_TYPE_AGENT_CONTACT"
        ]
      },
      "ServiceType": {
        "type": "string",
        "title": "ServiceType",
        "description": "Type of service for service charge. ITINERARY_BOOKING: Service charge for travel booking. AGENT_CONTACT: Service charge for agent contact.\n",
        "enum": [
          "ITINERARY_BOOKING",
          "AGENT_CONTACT"
        ]
      },
      "ShellPnrInfo": {
        "title": "ShellPnrInfo",
        "type": "object",
        "description": "Information about shell pnr",
        "properties": {
          "shellPnrCreateReasonType": {
            "type": "string",
            "description": "Reason for creating the shell pnr",
            "example": "CONTENT_NOT_AVAILABLE"
          },
          "createShellPnrReason": {
            "type": "string",
            "description": "If the reason for creating the shell pnr is chosen as OTHER or CONTENT_NOT_AVAILABLE, \nwe expect the agent to explain the reason using this free text\n",
            "example": "Flight Missing"
          },
          "pnrType": {
            "type": "string",
            "description": "It will contain the PNR type for different shell PNRs",
            "example": "AIR"
          }
        }
      },
      "SimpleAirPnrInfo": {
        "type": "object",
        "description": "Air specific basic information related to PNRs that were not successfully \nmapped into Spotnana PNR protos.\n",
        "required": [
          "legs"
        ],
        "properties": {
          "legs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SimpleLegInfo"
            }
          }
        }
      },
      "SimpleAirportInfo": {
        "type": "object",
        "description": "Details related to an airport.",
        "required": [
          "airportCode",
          "airportName",
          "cityName"
        ],
        "properties": {
          "airportCode": {
            "type": "string",
            "description": "The airport code.",
            "example": "WRA"
          },
          "airportName": {
            "type": "string",
            "description": "The airport name.",
            "example": "Warder Airport"
          },
          "cityName": {
            "type": "string",
            "description": "The city name.",
            "example": "Werder"
          }
        }
      },
      "SimpleCarPnrInfo": {
        "type": "object",
        "description": "Car specific basic information related to PNRs that were not successfully\nmapped into Spotnana PNR protos.\n",
        "required": [
          "vendorConfirmationId",
          "vendorName",
          "address",
          "pickUpDateTime",
          "dropOffDateTime"
        ],
        "properties": {
          "vendorConfirmationId": {
            "type": "string",
            "description": "The confirmation ID in the vendor system."
          },
          "vendorName": {
            "type": "string",
            "description": "The vendor name."
          },
          "address": {
            "description": "The address of the car rental.",
            "$ref": "#/components/schemas/PostalAddress"
          },
          "pickUpDateTime": {
            "description": "The pick-up date and time.",
            "$ref": "#/components/schemas/DateTimeLocal"
          },
          "dropOffDateTime": {
            "description": "The drop-off date and time.",
            "$ref": "#/components/schemas/DateTimeLocal"
          },
          "sortingPriority": {
            "type": "integer",
            "format": "int32",
            "description": "This field sets the sorting priority of the car to determine its order of display on \nthe trips page.\n",
            "example": 0
          }
        }
      },
      "SimpleFlightInfo": {
        "type": "object",
        "description": "The basic flight information.",
        "required": [
          "vendorConfirmationId",
          "flightNumber",
          "airlineCode",
          "departureAirportInfo",
          "arrivalAirportInfo",
          "departureDateTime",
          "arrivalDatetime"
        ],
        "properties": {
          "vendorConfirmationId": {
            "type": "string",
            "description": "The confirmation ID in the vendor system."
          },
          "flightNumber": {
            "type": "string",
            "description": "The flight number."
          },
          "airlineCode": {
            "type": "string",
            "description": "The operating airline code."
          },
          "departureAirportInfo": {
            "description": "The departure airport code.",
            "$ref": "#/components/schemas/SimpleAirportInfo"
          },
          "arrivalAirportInfo": {
            "description": "The arrival airport code.",
            "$ref": "#/components/schemas/SimpleAirportInfo"
          },
          "departureDatetime": {
            "description": "The departure date and time for the flight.",
            "$ref": "#/components/schemas/DateTimeLocal"
          },
          "arrivalDateTime": {
            "description": "The arrival date and time for the flight.",
            "$ref": "#/components/schemas/DateTimeLocal"
          }
        }
      },
      "SimpleHotelPnrInfo": {
        "type": "object",
        "description": "Hotel specific basic information related to PNRs that were not successfully\nmapped into Spotnana PNR protos.\n",
        "required": [
          "vendorConfirmationId",
          "hotelName",
          "address",
          "checkInDateTime",
          "checkOutDateTime"
        ],
        "properties": {
          "vendorConfirmationId": {
            "type": "string",
            "description": "The confirmation ID in the vendor system."
          },
          "hotelName": {
            "type": "string",
            "description": "The hotel name."
          },
          "address": {
            "description": "The address for the hotel.",
            "$ref": "#/components/schemas/PostalAddress"
          },
          "checkInDateTime": {
            "description": "The check-in date and time for the hotel.",
            "$ref": "#/components/schemas/DateTimeLocal"
          },
          "checkOutDatetime": {
            "description": "The check-out date and time for the hotel.",
            "$ref": "#/components/schemas/DateTimeLocal"
          },
          "sortingPriority": {
            "type": "integer",
            "format": "int32",
            "description": "This field sets the sorting priority of the hotel to determine its order of display\non the trips page.\n",
            "example": 0
          }
        }
      },
      "SimpleLegInfo": {
        "type": "object",
        "description": "The information related to a leg.",
        "required": [
          "flights"
        ],
        "properties": {
          "flights": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SimpleFlightInfo"
            }
          },
          "sortingPriority": {
            "type": "integer",
            "format": "int32",
            "description": "This field sets the sorting priority of the simple leg to determine its order of display\non the trips page.\n",
            "example": 0
          }
        }
      },
      "SimpleLimoPnrInfo": {
        "type": "object",
        "description": "Limo specific basic information related to PNRs that were not successfully\nmapped into Spotnana PNR protos.\n",
        "required": [
          "vendorConfirmationId",
          "vendorName",
          "pickupAddress",
          "pickUpDateTime",
          "dropOffDateTime"
        ],
        "properties": {
          "vendorConfirmationId": {
            "type": "string",
            "description": "The confirmation ID in the vendor system."
          },
          "vendorName": {
            "type": "string",
            "description": "The vendor name."
          },
          "pickupAddress": {
            "description": "The pickup address for the limo.",
            "$ref": "#/components/schemas/PostalAddress"
          },
          "dropOffAddress": {
            "description": "The drop-off address for the limo.",
            "$ref": "#/components/schemas/PostalAddress"
          },
          "pickUpDateTime": {
            "description": "The pick-up date and time.",
            "$ref": "#/components/schemas/DateTimeLocal"
          },
          "dropOffDateTime": {
            "description": "The drop-off date and time.",
            "$ref": "#/components/schemas/DateTimeLocal"
          },
          "sortingPriority": {
            "type": "integer",
            "format": "int32",
            "description": "This field sets the sorting priority of the limo to determine its order of display on \nthe trips page.\n",
            "example": 0
          }
        }
      },
      "SimpleMoney": {
        "type": "object",
        "title": "SimpleMoney",
        "description": "Money object containing just amount and currency code.",
        "required": [
          "amount",
          "currencyCode"
        ],
        "properties": {
          "amount": {
            "type": "number",
            "format": "double",
            "description": "Amount",
            "example": 510
          },
          "currencyCode": {
            "type": "string",
            "description": "The 3-letter currency code defined in ISO 4217.",
            "example": "GBP"
          }
        }
      },
      "SimplePnr": {
        "type": "object",
        "description": "Basic information related to PNRs that were not successfully mapped into Spotnana PNR \nprotos. This basic information can be used to power a basic card for a traveler.\n",
        "required": [
          "pnrId",
          "sourcePnrId",
          "source"
        ],
        "properties": {
          "pnrId": {
            "type": "string",
            "description": "Spotnana PNR Id",
            "example": "1234567890"
          },
          "sourcePnrId": {
            "type": "string",
            "description": "The source PNR reference (Sabre PNR, NDC booking reference etc.)",
            "example": "AEDAVF"
          },
          "source": {
            "$ref": "#/components/schemas/ThirdPartySource",
            "description": "Source of the booking e.g. Sabre, NDC etc."
          },
          "air": {
            "description": "Air PNR specific information.",
            "$ref": "#/components/schemas/SimpleAirPnrInfo"
          },
          "hotel": {
            "description": "Hotel PNR specific information.",
            "$ref": "#/components/schemas/SimpleHotelPnrInfo"
          },
          "car": {
            "description": "Car PNR specific information.",
            "$ref": "#/components/schemas/SimpleCarPnrInfo"
          },
          "rail": {
            "description": "Rail PNR specific information.",
            "$ref": "#/components/schemas/SimpleRailPnrInfo"
          },
          "limo": {
            "description": "Limo PNR specific information.",
            "$ref": "#/components/schemas/SimpleLimoPnrInfo"
          },
          "pnrStatus": {
            "description": "Pnr status for this booking.",
            "$ref": "#/components/schemas/PnrStatus"
          },
          "userFacingStatus": {
            "description": "User facing status for this booking.",
            "$ref": "#/components/schemas/UserFacingStatus"
          }
        }
      },
      "SimpleRailLegInfo": {
        "type": "object",
        "description": "The List of legs in the section.",
        "required": [
          "originStationInfo",
          "destinationStationInfo",
          "departureDatetime",
          "arrivalDateTime",
          "carrierName"
        ],
        "properties": {
          "originStationInfo": {
            "description": "The originating station info of the Leg.",
            "$ref": "#/components/schemas/SimpleRailStationInfo"
          },
          "destinationStationInfo": {
            "description": "The destination station info of the Leg.",
            "$ref": "#/components/schemas/SimpleRailStationInfo"
          },
          "departureDatetime": {
            "description": "The departure date and time for the flight.",
            "$ref": "#/components/schemas/DateTimeLocal"
          },
          "arrivalDateTime": {
            "description": "The arrival date and time for the flight.",
            "$ref": "#/components/schemas/DateTimeLocal"
          },
          "carrierName": {
            "type": "string",
            "description": "The name of the carrier."
          },
          "sortingPriority": {
            "type": "integer",
            "format": "int32",
            "description": "This field sets the sorting priority of the rail leg to determine its order of display\non the trips page.\n",
            "example": 0
          }
        }
      },
      "SimpleRailPnrInfo": {
        "type": "object",
        "description": "Rail specific basic information related to PNRs that were not successfully\nmapped into Spotnana PNR protos.\n",
        "required": [
          "sections",
          "ticketReferences"
        ],
        "properties": {
          "sections": {
            "type": "array",
            "description": "The List of sections covered in the itinerary.",
            "items": {
              "$ref": "#/components/schemas/SimpleSectionInfo"
            }
          },
          "ticketReferences": {
            "type": "array",
            "description": "Containing details about the content and how to get the ticket. e.g. for eticket, it will\ncontain details of the path where pdf/apple pk pass is stored. For collection ticket, \nit will contain the reference number of the ticket.\n",
            "items": {
              "$ref": "#/components/schemas/RailTicketAsset"
            }
          }
        }
      },
      "SimpleRailStationInfo": {
        "type": "object",
        "description": "The information related to the rail station.",
        "required": [
          "name",
          "code"
        ],
        "properties": {
          "name": {
            "type": "string",
            "description": "Name of the station."
          },
          "code": {
            "type": "string",
            "description": "Unique code of the station."
          }
        }
      },
      "SimpleSectionInfo": {
        "type": "object",
        "description": "The List of sections covered in the itinerary.",
        "required": [
          "vendorConfirmationId",
          "legs"
        ],
        "properties": {
          "vendorConfirmationId": {
            "type": "string",
            "description": "The confirmation ID in the vendor system."
          },
          "legs": {
            "type": "array",
            "description": "The information related to the legs in a section.",
            "items": {
              "$ref": "#/components/schemas/SimpleRailLegInfo"
            }
          }
        }
      },
      "SizeInfo": {
        "type": "object",
        "description": "Information about the baggage size.",
        "properties": {
          "length": {
            "description": "The weight limit of a baggage option.",
            "type": "number",
            "example": 32
          },
          "unit": {
            "description": "The unit of measurement for the bag size.",
            "type": "string",
            "enum": [
              "CENTIMETER",
              "METER"
            ]
          }
        }
      },
      "SourceInfo": {
        "title": "SourceInfo",
        "description": "Information about the source of booking",
        "type": "object",
        "required": [
          "bookingSource"
        ],
        "properties": {
          "sourcePnrId": {
            "type": "string",
            "description": "The source PNR ID",
            "example": "AEDAVF"
          },
          "bookingSource": {
            "type": "string",
            "description": "The source of booking",
            "example": "United.com"
          },
          "thirdParty": {
            "type": "string",
            "description": "The known third party source of the booking.",
            "example": "United.com",
            "readOnly": true
          },
          "bookingDateTime": {
            "description": "Booking date time of the PNR",
            "$ref": "#/components/schemas/DateTimeOffset"
          },
          "posDescriptor": {
            "type": "string",
            "description": "Point of sale descriptor for this pnr from source",
            "example": "LA5K"
          },
          "iataNumber": {
            "type": "string",
            "description": "IATA number associated with this pnr",
            "example": "426666"
          }
        }
      },
      "SpecialServiceRequestInfoDetail": {
        "type": "object",
        "title": "SpecialServiceRequestInfo",
        "description": "Special Service Request (SSR) Info.",
        "properties": {
          "code": {
            "type": "string",
            "description": "4 letter Special Service Request code."
          },
          "customText": {
            "type": "string",
            "description": "Free text string for special request."
          },
          "flightIndex": {
            "type": "integer",
            "description": "Index of flight mapping with the special service request, starts with 0."
          },
          "legIndex": {
            "type": "integer",
            "description": "Index of leg mapping with the special service request, starts with 0."
          },
          "status": {
            "type": "string",
            "description": "Status of the Special Service Request.",
            "enum": [
              "SPECIAL_SERVICE_REQUEST_STATUS_UNKNOWN",
              "CONFIRMED",
              "REQUESTED",
              "UNABLE_TO_CONFIRM",
              "DENIED"
            ]
          }
        }
      },
      "SplitPayment": {
        "type": "object",
        "title": "SplitPayment",
        "description": "Split payment details for claiming reimbursements.",
        "properties": {
          "inPolicyAmount": {
            "$ref": "#/components/schemas/Money",
            "description": "Amount approved by Company to be reimbursed."
          },
          "isAmountReimbursable": {
            "type": "boolean",
            "description": "If the in policy amount is reimbursable or not."
          },
          "personalFopChargeableAmount": {
            "$ref": "#/components/schemas/Money",
            "description": "Amount that is to be paid by traveler itself."
          }
        }
      },
      "StatisticsItem": {
        "type": "object",
        "required": [
          "statisticType",
          "totalFare"
        ],
        "properties": {
          "statisticType": {
            "type": "string",
            "enum": [
              "MINIMUM",
              "MEDIAN",
              "MAXIMUM"
            ]
          },
          "totalFare": {
            "$ref": "#/components/schemas/FareAmount"
          }
        }
      },
      "Status": {
        "type": "string",
        "description": "Status of the task.",
        "enum": [
          "ACTIVE",
          "COMPLETED",
          "ON_HOLD",
          "SCHEDULED",
          "OPEN",
          "UNKNOWN"
        ],
        "default": "ACTIVE"
      },
      "StealthMode": {
        "type": "object",
        "title": "StealthMode",
        "description": "Stealth mode configuration with type and label.",
        "required": [
          "stealthType",
          "label"
        ],
        "properties": {
          "stealthType": {
            "$ref": "#/components/schemas/StealthType"
          },
          "label": {
            "type": "string",
            "description": "Customer specific label for the stealth mode."
          }
        }
      },
      "StealthType": {
        "type": "string",
        "description": "Stealth type.",
        "enum": [
          "STEALTH_TYPE_1",
          "STEALTH_TYPE_2",
          "STEALTH_TYPE_3"
        ],
        "example": "STEALTH_TYPE_1",
        "x-ignoreBreakingChanges": [
          "StealthType->STEALTH_TYPE_4",
          "StealthType->STEALTH_TYPE_5",
          "StealthType->STEALTH_TYPE_6"
        ]
      },
      "StringListWrapper": {
        "type": "object",
        "title": "StringListWrapper",
        "properties": {
          "sList": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "StringWrapper": {
        "type": "object",
        "title": "StringWrapper",
        "properties": {
          "s": {
            "type": "string"
          }
        }
      },
      "StripeInfo": {
        "title": "StripeInfo",
        "type": "object",
        "description": "Stripe payment gateway information",
        "properties": {
          "accountId": {
            "type": "string",
            "description": "Stripe account id",
            "example": "acct_1OAbc3AB5abcdDdA"
          },
          "accountDisplayName": {
            "type": "string",
            "description": "Stripe account display name as seen on the stripe dashboard",
            "example": "Abc Travel"
          },
          "platformAccountGatewayId": {
            "type": "string",
            "description": "Gateway-id of platform account when this gateway is a connected account",
            "example": "connect-platform:#"
          }
        }
      },
      "StripeInfoWrapper": {
        "type": "object",
        "title": "StripeInfoWrapper",
        "description": "Wrapper for StripeInfo",
        "required": [
          "stripeInfo"
        ],
        "properties": {
          "stripeInfo": {
            "$ref": "#/components/schemas/StripeInfo"
          }
        }
      },
      "SupplierType": {
        "type": "string",
        "description": "Supplier type like Sabre, TravelFusion etc.",
        "enum": [
          "SABRE",
          "AMADEUS",
          "TRAVEL_FUSION",
          "FARELOGIX_NDC",
          "ATPCO_NDC",
          "TRAINLINE",
          "AVIA",
          "QBR",
          "BCD",
          "QANTAS_HOTELS",
          "SOUTHWEST",
          "EXPEDIA",
          "HOTEL_HUB",
          "NDC",
          "MARRIOTT",
          "CLEARTRIP",
          "KYTE",
          "GROUNDSPAN",
          "SABRE_NDC",
          "BOOKING_COM",
          "CARTRAWLER",
          "PREMIER_INN",
          "TRAVELODGE"
        ],
        "x-ignoreBreakingChanges": [
          "SupplierType->PREMIER_INN"
        ],
        "example": "SABRE"
      },
      "SuspendReason": {
        "type": "string",
        "description": "Reason for suspending the pnr",
        "enum": [
          "AIR_PRICE_OPTIMIZATION",
          "EXCHANGE",
          "GDS_EXCHANGE"
        ],
        "example": "AIR_PRICE_OPTIMIZATION"
      },
      "TaskMetadata": {
        "type": "object",
        "required": [
          "taskType"
        ],
        "properties": {
          "taskType": {
            "$ref": "#/components/schemas/InternalTaskType"
          }
        },
        "discriminator": {
          "propertyName": "taskType",
          "mapping": {
            "GDS_EXCHANGE_CHECK": "#/components/schemas/ExchangeTask"
          }
        },
        "oneOf": [
          {
            "$ref": "#/components/schemas/ExchangeTask"
          }
        ]
      },
      "TaskOrigin": {
        "type": "string",
        "description": "Origin of task.",
        "enum": [
          "SUPPLIER",
          "SEAT1A",
          "BOOKING_ENGINE",
          "MANUAL",
          "MID_OFFICE",
          "UNUSED_TICKET_TRACKING"
        ],
        "x-enum-varnames": [
          "SUPPLIER",
          "SEAT1A",
          "BOOKING_ENGINE",
          "MANUAL",
          "MID_OFFICE",
          "UNUSED_TICKET_TRACKING"
        ],
        "example": "SUPPLIER"
      },
      "Tax": {
        "type": "object",
        "title": "Tax",
        "description": "Tax details",
        "required": [
          "amount"
        ],
        "properties": {
          "amount": {
            "$ref": "#/components/schemas/Money",
            "description": "Tax amount"
          },
          "taxCode": {
            "type": "string",
            "description": "Tax code",
            "example": "VAT"
          },
          "percentage": {
            "type": "number",
            "format": "double",
            "description": "Tax amount to total amount",
            "example": 9
          }
        }
      },
      "TaxAmount": {
        "type": "object",
        "title": "Tax",
        "description": "Tax",
        "required": [
          "amount",
          "taxCode",
          "description"
        ],
        "properties": {
          "amount": {
            "$ref": "#/components/schemas/Money"
          },
          "taxCode": {
            "type": "string",
            "description": "Tax code",
            "example": "VAT"
          },
          "description": {
            "type": "string",
            "description": "Tax code"
          },
          "percentage": {
            "type": "number",
            "format": "double",
            "description": "Amount",
            "example": 10
          }
        }
      },
      "TaxBreakdown": {
        "type": "array",
        "items": {
          "$ref": "#/components/schemas/Tax"
        }
      },
      "TaxDefinitionCharge": {
        "type": "object",
        "title": "TaxDefinitionCharge",
        "description": "Tax definition charge for transaction fare detail.",
        "properties": {
          "taxShortName": {
            "type": "string",
            "description": "Short name of the tax (e.g., \"Other fees\").",
            "example": "Other fees"
          },
          "taxCode": {
            "type": "string",
            "description": "Tax code identifier.",
            "example": "XF"
          },
          "amount": {
            "$ref": "#/components/schemas/Money",
            "description": "Tax amount."
          },
          "sortPriority": {
            "type": "integer",
            "format": "int32",
            "description": "Sort priority for display ordering within taxes.",
            "example": 1
          }
        }
      },
      "TemperatureAmenity": {
        "type": "object",
        "title": "TemperatureAmenity",
        "description": "Temperature Amenity properties",
        "properties": {
          "displayText": {
            "type": "string",
            "example": "No pre-flight temperature check"
          },
          "temperatureDescription": {
            "type": "string",
            "example": "A temperature check is not required before boarding"
          },
          "temperatureAttrDescription": {
            "type": "string",
            "example": "no"
          }
        }
      },
      "TemperatureAmenityWrapper": {
        "type": "object",
        "title": "TemperatureAmenityWrapper",
        "properties": {
          "temperatureAmenity": {
            "$ref": "#/components/schemas/TemperatureAmenity"
          }
        }
      },
      "TermsAndConditions": {
        "type": "object",
        "title": "TermsAndConditions",
        "description": "Terms and conditions.",
        "properties": {
          "conditions": {
            "type": "array",
            "description": "List of conditions",
            "items": {
              "$ref": "#/components/schemas/Condition"
            }
          }
        }
      },
      "ThirdPartyHotelCode": {
        "title": "ThirdPartyHotelCode",
        "type": "object",
        "required": [
          "hotelCode",
          "hotelCodeType"
        ],
        "properties": {
          "hotelCode": {
            "type": "string",
            "description": "Third party hotel code."
          },
          "hotelCodeType": {
            "type": "string",
            "description": "Type of the third party.",
            "enum": [
              "SABRE_CSL",
              "SABRE_TN",
              "EXPEDIA_RAPID",
              "MARRIOTT",
              "GIATA"
            ]
          }
        }
      },
      "ThirdPartySource": {
        "type": "string",
        "enum": [
          "UNKNOWN_SOURCE",
          "SABRE",
          "TRAVEL_FUSION",
          "AVIA",
          "NDC",
          "TRAINLINE",
          "ATPCO_NDC",
          "FARELOGIX_NDC",
          "OFFLINE",
          "CONNEXUS",
          "ROUTEHAPPY",
          "AMADEUS",
          "GIATA",
          "QBR",
          "BCD",
          "QANTAS_HOTELS",
          "SOUTHWEST",
          "EXPEDIA",
          "HOTEL_HUB",
          "MARRIOTT",
          "CLEARTRIP",
          "KYTE",
          "GROUNDSPAN",
          "SABRE_NDC",
          "BOOKING_COM",
          "CARTRAWLER",
          "PREMIER_INN",
          "TRAVELODGE"
        ],
        "x-ignoreBreakingChanges": [
          "ThirdPartySource->BOOKING_COM",
          "ThirdPartySource->CARTRAWLER",
          "ThirdPartySource->PREMIER_INN"
        ],
        "example": "SABRE"
      },
      "Ticket": {
        "title": "Ticket",
        "description": "Air ticket info",
        "type": "object",
        "required": [
          "ticketNumber"
        ],
        "properties": {
          "ticketNumber": {
            "type": "string",
            "description": "Ticket number",
            "example": "0017574214321"
          },
          "ticketType": {
            "type": "string",
            "description": "Ticket type",
            "enum": [
              "UNKNOWN_TICKET_TYPE",
              "FLIGHT",
              "ANCILLARY",
              "MIXED"
            ]
          },
          "issuedDateTime": {
            "description": "Date time when the ticket was issued",
            "$ref": "#/components/schemas/DateTimeLocal"
          },
          "status": {
            "type": "string",
            "description": "Ticket status",
            "enum": [
              "UNKNOWN",
              "ISSUED",
              "VOIDED",
              "REFUNDED",
              "EXCHANGED"
            ],
            "example": "ISSUED"
          },
          "amount": {
            "$ref": "#/components/schemas/FareAmount",
            "description": "Total amount of ticket"
          },
          "additionalFareAmounts": {
            "type": "array",
            "description": "Additional charges on the ticket like change penalty, flight pass additional charge etc.",
            "items": {
              "$ref": "#/components/schemas/AdditionalFareAmount"
            }
          },
          "flightCoupons": {
            "type": "array",
            "description": "List of flight coupons in this ticket",
            "items": {
              "type": "object",
              "title": "FlightCoupon",
              "properties": {
                "legIdx": {
                  "type": "integer",
                  "description": "Index of leg to which this coupon belongs",
                  "format": "int32",
                  "example": 0,
                  "minimum": 0
                },
                "flightIdx": {
                  "type": "integer",
                  "description": "Index of flight in it's leg to which this coupon belongs",
                  "format": "int32",
                  "example": 0,
                  "minimum": 0
                },
                "status": {
                  "type": "string",
                  "description": "Flight status",
                  "enum": [
                    "UNKNOWN",
                    "AIRPORT_CONTROL",
                    "LIFTED",
                    "CHECKED_IN",
                    "EXCHANGED",
                    "FLOWN",
                    "NOT_FLOWN",
                    "REFUNDED",
                    "VOIDED",
                    "PRINTED",
                    "IRREGULAR_OPERATIONS",
                    "PRINT_EXCHANGE",
                    "PAPER_TICKET",
                    "SUSPENDED"
                  ],
                  "example": "FLOWN"
                }
              }
            }
          },
          "ancillaries": {
            "type": "array",
            "description": "List of ancillaries in this ticket",
            "items": {
              "type": "object",
              "title": "TicketAncillary",
              "required": [
                "legIndex",
                "flightIndex",
                "ancillaryType",
                "totalFare"
              ],
              "properties": {
                "ancillaryType": {
                  "type": "string",
                  "description": "Type of ancillary",
                  "enum": [
                    "UNKNOWN",
                    "SEAT",
                    "LUGGAGE",
                    "EARLY_BIRD",
                    "WIFI",
                    "CARBON_OFFSET",
                    "CHANGE_FEE",
                    "RESIDUAL_EMD",
                    "MEAL"
                  ],
                  "example": "SEAT"
                },
                "totalFare": {
                  "$ref": "#/components/schemas/FareAmount",
                  "description": "Total fare of this ancillary"
                },
                "legIndex": {
                  "type": "integer",
                  "description": "Index of leg to which this ancillary belongs. If an ancillary belongs to all legs, this index should be set to -1",
                  "format": "int32",
                  "example": 0,
                  "minimum": -1
                },
                "flightIndex": {
                  "type": "integer",
                  "description": "Index of flight in it's leg to which this ancillary belongs. If an ancillary belongs to all flights, this index should be set to -1",
                  "format": "int32",
                  "example": 0,
                  "minimum": -1
                }
              }
            }
          },
          "validatingAirlineCode": {
            "type": "string",
            "description": "2 letter IATA airline code for the validating/ticketing airline",
            "example": "AA"
          },
          "exchangePolicy": {
            "type": "object",
            "title": "TicketExchangePolicy",
            "description": "Ticket exchange policy\n> **Note:** If the value of `pnrs.data.sourceInfo.bookingSource` is `TRAVEL_FUSION` then the `exchangePolicy` field will be empty.\n",
            "properties": {
              "exchangePenalty": {
                "$ref": "#/components/schemas/Money",
                "description": "Exchange penalty if exchangeable"
              },
              "isExchangeable": {
                "type": "boolean",
                "description": "Is ticket exchangeable or not",
                "example": true
              },
              "isCat16": {
                "type": "boolean",
                "description": "Is source cat16",
                "example": true
              },
              "isConditional": {
                "type": "boolean",
                "description": "Is conditional",
                "example": true
              }
            }
          },
          "exchangeInfo": {
            "type": "object",
            "title": "ExchangeInfo",
            "description": "Ticket exchange info",
            "required": [
              "originalTicketNumber"
            ],
            "properties": {
              "originalTicketNumber": {
                "type": "string",
                "description": "If the ticket was created as part of an exchange, the original ticket that was exchanged to create this ticket.",
                "example": "0017574214321"
              },
              "penalty": {
                "$ref": "#/components/schemas/Money",
                "description": "Exchange penalty"
              },
              "addCollectAmount": {
                "$ref": "#/components/schemas/FareAmount",
                "description": "Extra amount the client was charged if the ticket was created as part of an exchange."
              },
              "originalTicketDetails": {
                "$ref": "#/components/schemas/OriginalTicketDetails",
                "description": "If the ticket was created as part of an exchange, complete details of the original ticket that was exchanged to create this ticket."
              },
              "residueType": {
                "description": "Type of residue ticket",
                "$ref": "#/components/schemas/ResidueType"
              },
              "addCollectTaxBreakdown": {
                "description": "Tax breakdown information for the add collect amount",
                "$ref": "#/components/schemas/PnrTaxBreakdown"
              },
              "exchangePenaltyTaxBreakdown": {
                "description": "Tax breakdown information for the exchange penalty amount",
                "$ref": "#/components/schemas/PnrTaxBreakdown"
              }
            }
          },
          "refundPolicy": {
            "type": "object",
            "title": "TicketRefundPolicy",
            "description": "Ticket refund policy\n> **Note:** If the value of `pnrs.data.sourceInfo.bookingSource` is `TRAVEL_FUSION` then the `refundPolicy` field will be empty.\n",
            "properties": {
              "refundPenalty": {
                "$ref": "#/components/schemas/Money",
                "description": "Refund penalty if refundable"
              },
              "isRefundable": {
                "type": "boolean",
                "description": "Is ticket refundable or not",
                "example": true
              },
              "isRefundableByObt": {
                "type": "boolean",
                "description": "Is ticket refundable or not in OBT",
                "example": true
              },
              "isCat16": {
                "type": "boolean",
                "description": "Is source cat16",
                "example": true
              },
              "isConditional": {
                "type": "boolean",
                "description": "Is conditional",
                "example": true
              }
            }
          },
          "refundInfo": {
            "type": "object",
            "title": "RefundInfo",
            "description": "Ticket refund info",
            "required": [
              "refundAmount"
            ],
            "properties": {
              "refundAmount": {
                "$ref": "#/components/schemas/FareAmount",
                "description": "The amount refunded back to the client if the ticket was refunded"
              },
              "refundDate": {
                "$ref": "#/components/schemas/DateModel",
                "description": "The date when the refund was issued"
              },
              "penalty": {
                "$ref": "#/components/schemas/FareAmount",
                "description": "Refund penalty"
              },
              "refundTaxBreakdown": {
                "$ref": "#/components/schemas/PnrTaxBreakdown",
                "description": "Tax breakdown for the refund amount"
              }
            }
          },
          "llfInfo": {
            "type": "object",
            "title": "LLFInfo",
            "description": "Information about lowest logical fare for this ticket",
            "required": [
              "llf",
              "reason_code"
            ],
            "properties": {
              "llf": {
                "$ref": "#/components/schemas/Money",
                "description": "Lowest logical fare"
              },
              "reasonCode": {
                "$ref": "#/components/schemas/PreDefinedAnswers",
                "description": "Reason code for selecting higher price than llf"
              },
              "reason": {
                "type": "string",
                "description": "Free form text if selected reason code is OTHER",
                "example": "Want a stop in London"
              }
            }
          },
          "taxBreakdown": {
            "description": "Tax breakdown information for this ticket",
            "$ref": "#/components/schemas/PnrTaxBreakdown"
          },
          "commission": {
            "type": "object",
            "title": "Commission",
            "description": "Ticket commission info",
            "properties": {
              "amount": {
                "$ref": "#/components/schemas/Money",
                "description": "The commission amount we are getting from the vendor"
              },
              "percent": {
                "type": "number",
                "format": "double",
                "description": "The percentage of the base amount that we are getting as commission",
                "example": 10
              }
            }
          },
          "iataNumber": {
            "type": "string",
            "description": "Iata number"
          },
          "fareCalculation": {
            "type": "string",
            "description": "Fare calculation line"
          },
          "updateDateTime": {
            "description": "Date time when the ticket was updated (voided, refunded or exchanged)",
            "$ref": "#/components/schemas/DateTimeLocal"
          },
          "paymentDetails": {
            "type": "array",
            "description": "List of payment details for this ticket",
            "items": {
              "type": "object",
              "title": "PaymentDetails",
              "required": [
                "fop"
              ],
              "properties": {
                "amount": {
                  "$ref": "#/components/schemas/FareAmount",
                  "description": "The amount paid for this ticket"
                },
                "fop": {
                  "$ref": "#/components/schemas/FormOfPayment",
                  "description": "Form of payment for the above amount"
                },
                "isRefunded": {
                  "type": "boolean",
                  "description": "Whether the above amount is issued or refunded to the customer.",
                  "example": false
                }
              }
            }
          },
          "ticketSettlement": {
            "type": "string",
            "description": "Ticket settlement",
            "enum": [
              "UNKNOWN_TICKET_SETTLEMENT",
              "ARC_TICKET",
              "BSP_TICKET",
              "NON_ARC_BSP_TICKET"
            ],
            "example": "ARC_TICKET"
          },
          "ticketCtc": {
            "type": "object",
            "title": "ItemCTC",
            "description": "The cost to customer for this ticket",
            "required": [
              "cost"
            ],
            "properties": {
              "cost": {
                "type": "array",
                "items": {
                  "type": "object",
                  "title": "Cost",
                  "required": [
                    "paymentId",
                    "amount"
                  ],
                  "properties": {
                    "paymentId": {
                      "type": "string",
                      "description": "The payment id for this transaction as present in PNR CTC"
                    },
                    "amount": {
                      "$ref": "#/components/schemas/FareAmount",
                      "description": "Total amount of the ticket paid as part of this transaction"
                    },
                    "isRefunded": {
                      "type": "boolean",
                      "description": "Indicates whether this amount was charged or refunded to the customer"
                    }
                  }
                }
              }
            }
          },
          "publishedFare": {
            "description": "Published fare for this ticket. This field can be used to find savings\nin case of corporate / private fare bookings.\n",
            "$ref": "#/components/schemas/FareAmount"
          },
          "merchantFee": {
            "description": "Merchant fee charged on this ticket",
            "$ref": "#/components/schemas/Money"
          },
          "airlineFee": {
            "description": "Card or sevice fee charged by airline",
            "$ref": "#/components/schemas/Money"
          },
          "airlineFeeDetails": {
            "type": "object",
            "title": "AirlineFeeDetails",
            "description": "Details of the airline fee charged by the airline. It contains breakdown of the fee into base and tax amounts and ob fee percentage",
            "properties": {
              "percent": {
                "type": "number",
                "format": "double",
                "description": "OB Percent, there is no connection with this percentage and amount",
                "example": 2.25
              },
              "amount": {
                "$ref": "#/components/schemas/FareAmount",
                "description": "Total amount of the ob fee or airline fees charged by the airline"
              }
            }
          },
          "vendorCancellationId": {
            "type": "string",
            "description": "Cancellation id sent by the supplier.",
            "example": "2108528068"
          },
          "conjunctionTicketSuffix": {
            "description": "List of ticket suffix in case of multiple coupons in a single ticket from GDS",
            "type": "array",
            "items": {
              "type": "string",
              "description": "Ticket suffix for a conjunction ticket",
              "example": "37"
            }
          },
          "createdUnusedCredit": {
            "readOnly": true,
            "description": "Unused credit that was created by cancelling this ticket.",
            "$ref": "#/components/schemas/UnusedCreditInfo"
          },
          "ticketScheduleChangeInformation": {
            "$ref": "#/components/schemas/TicketScheduleChangeInformation"
          },
          "pcc": {
            "type": "string",
            "description": "The ticketing PCC for this ticket.",
            "example": "ABCD"
          },
          "savingsFare": {
            "deprecated": true,
            "x-sunset": "2026-07-01",
            "description": "Savings Fare",
            "$ref": "#/components/schemas/SavingsFare"
          },
          "preBookAnswers": {
            "deprecated": true,
            "x-sunset": "2026-07-01",
            "description": "The pre booking answer.",
            "$ref": "#/components/schemas/PreBookAnswers"
          },
          "ticketIncompleteReasons": {
            "type": "array",
            "description": "List of reasons for ticket being incomplete",
            "items": {
              "$ref": "#/components/schemas/TicketIncompleteReason"
            }
          },
          "associatedTicketNumber": {
            "type": "string",
            "description": "The associated ticket number for this ticket",
            "example": 1251913362894
          },
          "rficCode": {
            "type": "string",
            "deprecated": true,
            "x-sunset": "2026-07-01",
            "description": "Reason for issuance code",
            "example": "D"
          },
          "journeyCode": {
            "type": "string",
            "description": "Journey code",
            "example": 1
          },
          "hemisphereCode": {
            "type": "string",
            "description": "Hemisphere code",
            "example": 9
          },
          "markup": {
            "type": "object",
            "description": "Markup applied on this ticket by the TMC",
            "properties": {
              "amount": {
                "description": "The markup amount",
                "$ref": "#/components/schemas/Money"
              }
            }
          },
          "mcoIssuanceEligibility": {
            "description": "It indicates whether an MCO can be issued for this ticket. It is dependent on the validating airline of the ticket.",
            "$ref": "#/components/schemas/McoIssuanceEligibility"
          },
          "emdInfo": {
            "type": "object",
            "description": "EMD Information of this ticket if applicable",
            "properties": {
              "emdType": {
                "type": "string",
                "description": "Type of EMD",
                "example": "ASSOCIATED"
              },
              "rficCode": {
                "type": "string",
                "description": "Reason for issuance code",
                "example": "D"
              },
              "rfiscCode": {
                "type": "string",
                "description": "Reason for issuance sub-code",
                "example": 992
              },
              "associatedEticketCouponIndices": {
                "type": "array",
                "description": "List of associated eTicket coupon indices",
                "items": {
                  "type": "integer",
                  "description": "Flight coupon index",
                  "example": 0
                }
              },
              "productName": {
                "type": "string",
                "description": "Product name",
                "example": "TICKET AMENDMENT FEE"
              }
            }
          },
          "taxInfo": {
            "type": "object",
            "description": "Tax meta data associated with this ticket if applicable",
            "properties": {
              "gstCode": {
                "type": "string",
                "description": "GST Code",
                "example": "D"
              },
              "qstCode": {
                "type": "string",
                "description": "QST Code",
                "example": "C"
              }
            }
          },
          "flightCreditInfo": {
            "type": "object",
            "description": "Flight credit information if this ticket was converted to flight credit",
            "properties": {
              "isConvertedToFlightCredit": {
                "type": "boolean",
                "description": "Is converted to Flight Credit",
                "example": true
              }
            }
          }
        }
      },
      "TicketIncompleteReason": {
        "type": "string",
        "description": "Reason for ticket being incomplete",
        "enum": [
          "UNKNOWN_REASON",
          "SYS_TICKET",
          "MISSING_MARKUP_INFO",
          "DISABLED_PCC",
          "MISSING_REFUND_INFO"
        ],
        "example": "SYS_TICKET"
      },
      "TicketScheduleChangeInformation": {
        "type": "object",
        "title": "TicketScheduleChangeInformation",
        "description": "Schedule change information for this ticket",
        "properties": {
          "possibleActions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ScheduleChangePossibleAction"
            }
          },
          "refundInfo": {
            "$ref": "#/components/schemas/ScheduleChangeRefundInfo"
          }
        }
      },
      "Tier": {
        "type": "string",
        "title": "Tier",
        "description": "Tier of User.\nNote: In default UI, BASIC is displayed as Standard, and SEAT1A is displayed as VIP.\n",
        "enum": [
          "BASIC",
          "SEAT1A"
        ],
        "x-enum-varnames": [
          "BASIC",
          "SEAT1A"
        ],
        "example": "SEAT1A",
        "default": "BASIC"
      },
      "TimeLocal": {
        "title": "TimeLocal",
        "description": "ISO8601 Local Time",
        "type": "object",
        "required": [
          "iso8601"
        ],
        "properties": {
          "iso8601": {
            "type": "string",
            "pattern": "^([01][0-9]|2[0-4]):([0-5][0-9])(:([0-5][0-9]))?$",
            "example": "17:32"
          }
        }
      },
      "TmcBasicInfo": {
        "type": "object",
        "title": "TmcBasicInfo",
        "description": "TMC related basic information.",
        "required": [
          "contractingTmc",
          "bookingTmc"
        ],
        "properties": {
          "contractingTmc": {
            "$ref": "#/components/schemas/CompanyRef",
            "description": "Contracting TMC is the TMC the user/organization contracted."
          },
          "bookingTmc": {
            "$ref": "#/components/schemas/CompanyRef",
            "description": "Booking TMC is the TMC used for the bookings for the user/organization."
          }
        }
      },
      "TmcCalculatorInfo": {
        "title": "TmcCalculatorInfo",
        "type": "object",
        "description": "TMC calculator processor info",
        "required": [
          "chargeProcessorType",
          "calculatorType"
        ],
        "properties": {
          "calculatorType": {
            "type": "string",
            "description": "TMC service charge calculator type",
            "example": "SPOTNANA"
          },
          "chargeProcessorType": {
            "type": "string",
            "description": "Charge processor type",
            "example": "TMC_CALCULATOR_INFO"
          }
        }
      },
      "TmcFeeItem": {
        "type": "object",
        "title": "TmcFeeItem",
        "description": "This describes the tmc fee item related to a particular itemGroup.",
        "required": [
          "itemType"
        ],
        "properties": {
          "itemType": {
            "type": "string"
          },
          "feeInfo": {
            "$ref": "#/components/schemas/FeeInfo",
            "description": "tmc fee related information"
          },
          "visibleToTraveler": {
            "type": "boolean",
            "description": "If the tmc fee is visible to traveler",
            "example": true
          }
        }
      },
      "TmcGatewayInfo": {
        "type": "object",
        "description": "Tmc Gateway related info.",
        "properties": {
          "tmcId": {
            "$ref": "#/components/schemas/CompanyId"
          },
          "gatewayType": {
            "type": "string",
            "description": "Third party payment gateway used to process the payment",
            "enum": [
              "STRIPE",
              "BREX",
              "RAZORPAY"
            ],
            "example": "STRIPE"
          },
          "gatewayId": {
            "type": "string",
            "description": "GatewayId for related gatewayInfo.",
            "example": "demo-us:1"
          }
        }
      },
      "TmcInfo": {
        "type": "object",
        "title": "TmcInfo",
        "description": "TMC config information.",
        "required": [
          "id",
          "primaryServiceProviderTmc"
        ],
        "properties": {
          "id": {
            "$ref": "#/components/schemas/CompanyId",
            "description": "TMC id."
          },
          "primaryServiceProviderTmc": {
            "$ref": "#/components/schemas/PrimaryServiceProviderTmc",
            "description": "Primary service provider TMC for the TMC."
          },
          "secondaryServiceProviderTmcs": {
            "type": "array",
            "description": "Secondary service provider TMCs for the TMC.",
            "items": {
              "$ref": "#/components/schemas/SecondaryServiceProviderTmc"
            }
          },
          "partnerTmcId": {
            "$ref": "#/components/schemas/CompanyId",
            "description": "Useful to identify the clients onboarded by a PARTNER_TMC"
          }
        }
      },
      "TokenizedExpiry": {
        "title": "TokenizedExpiry",
        "type": "object",
        "description": "Contains the tokenized expiry of a Card.",
        "required": [
          "expiryMonth",
          "expiryYear"
        ],
        "properties": {
          "expiryMonth": {
            "type": "string",
            "description": "Tokenized Expiry month",
            "example": "KvAuPANQWCpjwRQxcC8EXg=="
          },
          "expiryYear": {
            "type": "string",
            "description": "Tokenized Expiry year",
            "example": "fPBm0OWrKwPyIrCVcbg4cA=="
          }
        }
      },
      "TokenizedExpiryWrapper": {
        "type": "object",
        "title": "TokenizedExpiryWrapper",
        "properties": {
          "tokenizedExpiry": {
            "$ref": "#/components/schemas/TokenizedExpiry"
          }
        }
      },
      "Transaction": {
        "type": "object",
        "title": "Transaction",
        "description": "Payment exchange details for an item purchased/refunded",
        "properties": {
          "paymentReqId": {
            "type": "string",
            "description": "payment request id",
            "example": "3077eeb8-b706-47e5-a762-8442638c07a4"
          },
          "paymentReference": {
            "type": "string",
            "description": "Reference number for original payment made for this service",
            "example": "pi_3Rgx3qQXFM6BpXYh0kUcOFND"
          },
          "ctc": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PaymentData"
            }
          },
          "itemGroups": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ItemGroup"
            }
          },
          "pnrVersion": {
            "type": "integer",
            "format": "int32",
            "description": "Version number associated with the Pnr"
          },
          "splitPayment": {
            "description": "Split payment info for reimbursements.",
            "$ref": "#/components/schemas/SplitPayment"
          },
          "bookerInfo": {
            "description": "Details of User associated with a Transaction",
            "$ref": "#/components/schemas/TransactionBookerInfo"
          }
        }
      },
      "TransactionAncillaryType": {
        "type": "string",
        "description": "Type of ancillary",
        "enum": [
          "SEAT",
          "LUGGAGE",
          "EARLY_BIRD",
          "WIFI",
          "CARBON_OFFSET"
        ],
        "example": "SEAT"
      },
      "TransactionBookerInfo": {
        "type": "object",
        "title": "TransactionBookerInfo",
        "description": "Details of User associated with a Transaction",
        "properties": {
          "bookerId": {
            "description": "User id of the user to which the transaction is related",
            "$ref": "#/components/schemas/UserId"
          },
          "bookerName": {
            "type": "string",
            "description": "Name of the Booker",
            "example": "Harry Potter"
          },
          "bookerRole": {
            "type": "string",
            "description": "User facing role of the Booker",
            "enum": [
              "AGENT",
              "TRAVEL_MANAGER",
              "TRAVELER",
              "REGISTRAR",
              "ADMIN"
            ],
            "example": "AGENT"
          }
        }
      },
      "TransactionFare": {
        "type": "object",
        "title": "TransactionFare",
        "description": "Fare amount for a given fare type.",
        "properties": {
          "transactionFareType": {
            "$ref": "#/components/schemas/TransactionFareType",
            "description": "Fare type for this transaction."
          },
          "amount": {
            "$ref": "#/components/schemas/Money",
            "description": "Amount associated with the given fare type."
          },
          "amountList": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Money"
            }
          }
        }
      },
      "TransactionFareDetail": {
        "type": "object",
        "title": "TransactionFareDetail",
        "description": "Detailed transaction fare information for email display.",
        "properties": {
          "chargeCode": {
            "$ref": "#/components/schemas/ChargeCode",
            "description": "Type of charge."
          },
          "amount": {
            "$ref": "#/components/schemas/Money",
            "description": "Primary amount for this fare."
          },
          "chargeName": {
            "type": "string",
            "description": "Display name for the charge.",
            "example": "Base"
          },
          "isInformational": {
            "type": "boolean",
            "description": "Whether this is informational only (e.g., subtotal - derived value with no standalone identity).",
            "example": false
          },
          "taxDefinitions": {
            "type": "array",
            "description": "Tax definitions associated with this fare.",
            "items": {
              "$ref": "#/components/schemas/TaxDefinitionCharge"
            }
          },
          "additionalAmounts": {
            "type": "array",
            "description": "Additional amounts for multi-currency scenarios (e.g., USD + Flight Pass).",
            "items": {
              "$ref": "#/components/schemas/Money"
            }
          },
          "sortPriority": {
            "type": "integer",
            "format": "int32",
            "description": "Sort priority for display ordering (determines which charge codes appear first).",
            "example": 1
          }
        }
      },
      "TransactionFareType": {
        "type": "string",
        "description": "type of the fare in this transaction.",
        "enum": [
          "BASE_AMOUNT",
          "OTHER_FEE_AND_TAXES",
          "PENALTY",
          "OB_FEES",
          "DESTINATION_FEES",
          "TOTAL",
          "VAT",
          "DROP_OFF_CHARGE",
          "HST",
          "QST",
          "GST",
          "CHARGE_BASE",
          "CHARGE_TOTAL",
          "SUB_TOTAL",
          "OB_FEES_GST",
          "FORFEITED_AMOUNT",
          "PENALTY_GST",
          "PENALTY_QST",
          "PENALTY_HST"
        ],
        "x-ignoreBreakingChanges": [
          "TransactionFareType->FLIGHT_PASS_ADDITIONAL_BASE"
        ],
        "example": "BASE_AMOUNT"
      },
      "TransactionFeeInfo": {
        "title": "Transaction Fee Info",
        "type": "object",
        "description": "Transaction Fee Info",
        "required": [
          "bookingFeeType"
        ],
        "properties": {
          "bookingFeeType": {
            "type": "string",
            "example": "TRANSACTION_FEE"
          },
          "transactionFeeType": {
            "$ref": "#/components/schemas/ServiceFeeTransactionType"
          },
          "calculatedAmount": {
            "$ref": "#/components/schemas/Money"
          },
          "chargeProcessorInfo": {
            "$ref": "#/components/schemas/ChargeProcessorInfo"
          }
        }
      },
      "TransactionItem": {
        "type": "object",
        "title": "TransactionItem",
        "description": "Items for the given item group.",
        "discriminator": {
          "propertyName": "itemType",
          "mapping": {
            "AIR_ITEM": "#/components/schemas/AirItem",
            "RAIL_ITEM": "#/components/schemas/RailItem",
            "CAR_ITEM": "#/components/schemas/CarItem",
            "HOTEL_ITEM": "#/components/schemas/HotelItem",
            "LIMO_ITEM": "#/components/schemas/LimoItem",
            "TMC_FEE_ITEM": "#/components/schemas/TmcFeeItem",
            "MISC_ITEM": "#/components/schemas/MiscItem"
          }
        },
        "oneOf": [
          {
            "$ref": "#/components/schemas/AirItem"
          },
          {
            "$ref": "#/components/schemas/RailItem"
          },
          {
            "$ref": "#/components/schemas/CarItem"
          },
          {
            "$ref": "#/components/schemas/HotelItem"
          },
          {
            "$ref": "#/components/schemas/LimoItem"
          },
          {
            "$ref": "#/components/schemas/TmcFeeItem"
          },
          {
            "$ref": "#/components/schemas/MiscItem"
          }
        ]
      },
      "TransactionStatus": {
        "type": "string",
        "description": "Transaction status for service fee transaction.",
        "enum": [
          "ISSUED",
          "DELAYED_INVOICE",
          "FAILED",
          "CHARGED",
          "REFUNDED",
          "FORFEITED",
          "BILLED_TO_COMPANY",
          "NO_CHARGE",
          "GUARANTEE",
          "TO_BE_CHARGED",
          "SUCCESS",
          "MANUAL",
          "WAIVED_OFF",
          "TO_BE_ISSUED"
        ],
        "x-ignoreBreakingChanges": [
          "TransactionStatus->SUCCESS",
          "TransactionStatus->MANUAL",
          "TransactionStatus->WAIVED_OFF"
        ],
        "example": "ISSUED"
      },
      "TransactionType": {
        "type": "string",
        "description": "type of the transaction",
        "enum": [
          "TRIP_SERVICE_FEE",
          "AIR_TICKET_ISSUED",
          "AIR_TICKET_VOIDED",
          "AIR_TICKET_REFUNDED",
          "AIR_TICKET_EXCHANGED",
          "AIR_TICKET_UNDETERMINED",
          "HOTEL_BOOKED",
          "HOTEL_MODIFIED",
          "HOTEL_CANCELLED",
          "CAR_BOOKED",
          "CAR_CANCELLED",
          "RAIL_BOOKED",
          "RAIL_REFUNDED",
          "RAIL_EXCHANGED",
          "RAIL_CANCELLED",
          "LIMO_BOOKED",
          "LIMO_CANCELLED",
          "MISC_BOOKED",
          "MISC_CANCELLED",
          "FLIGHT_CREDIT_ISSUED",
          "TMC_FEE",
          "CHANGE_FEE",
          "MCO_ISSUED",
          "EMD_TICKET"
        ],
        "x-ignoreBreakingChanges": [
          "TransactionType->MISC_BOOKED",
          "TransactionType->MISC_CANCELLED"
        ],
        "example": "AIR_TICKET_ISSUED"
      },
      "Transmission": {
        "type": "string",
        "title": "Transmission",
        "description": "Transmission types.",
        "enum": [
          "UNKNOWN_TRANSMISSION",
          "MANUAL_UNSPECIFIED_DRIVE",
          "MANUAL_4WD",
          "MANUAL_AWD",
          "AUTO_UNSPECIFIED_DRIVE",
          "AUTO_4WD",
          "AUTO_AWD"
        ],
        "x-enum-varnames": [
          "UNKNOWN_TRANSMISSION",
          "MANUAL_UNSPECIFIED_DRIVE",
          "MANUAL_4WD",
          "MANUAL_AWD",
          "AUTO_UNSPECIFIED_DRIVE",
          "AUTO_4WD",
          "AUTO_AWD"
        ],
        "example": "MANUAL_4WD"
      },
      "TransmissionSearchFilter": {
        "type": "string",
        "description": "Transmission type for Filters",
        "title": "TransmissionSearchFilter",
        "enum": [
          "MANUAL",
          "AUTOMATIC"
        ],
        "example": "AUTOMATIC"
      },
      "TravelArrangerBasicInfo": {
        "type": "object",
        "title": "TravelArrangerBasicInfo",
        "description": "Traveler arranger information.",
        "required": [
          "userId"
        ],
        "properties": {
          "name": {
            "$ref": "#/components/schemas/Name"
          },
          "email": {
            "type": "string",
            "format": "email",
            "example": "example@email.com"
          },
          "phoneNumbers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PhoneNumber"
            }
          },
          "userId": {
            "$ref": "#/components/schemas/UserId"
          },
          "status": {
            "$ref": "#/components/schemas/TravelerArrangerStatus"
          }
        }
      },
      "TravelClassHierarchy": {
        "type": "string",
        "description": "Rail Travel classes in hierarchy numbering higher to keep scope for future additions in \nbetween.\n",
        "enum": [
          "UNKNOWN",
          "STANDARD",
          "COACH",
          "STANDARD_PREMIUM",
          "BUSINESS",
          "BUSINESS_PREMIUM",
          "FIRST",
          "SLEEPER"
        ],
        "example": "STANDARD"
      },
      "TravelClassHierarchyWrapper": {
        "type": "object",
        "title": "TravelClassHierarchyWrapper",
        "properties": {
          "railTravelClass": {
            "$ref": "#/components/schemas/TravelClassHierarchy"
          }
        }
      },
      "TravelPref": {
        "type": "object",
        "title": "TravelPref",
        "description": "Travel preferences.",
        "properties": {
          "airPref": {
            "$ref": "#/components/schemas/AirPref"
          },
          "preferredCurrency": {
            "type": "string",
            "example": "USD"
          },
          "railCards": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RailCard"
            }
          },
          "railPref": {
            "$ref": "#/components/schemas/RailPref"
          },
          "carPref": {
            "$ref": "#/components/schemas/CarPref"
          },
          "hotelPref": {
            "$ref": "#/components/schemas/HotelPref"
          }
        }
      },
      "TravelPreferences": {
        "type": "object",
        "description": "User's travel preferences",
        "properties": {
          "preferences": {
            "$ref": "#/components/schemas/TravelPref"
          }
        }
      },
      "TravelRegionType": {
        "type": "string",
        "title": "TravelRegionType",
        "description": "Travel region Type",
        "enum": [
          "DOMESTIC",
          "INTERNATIONAL"
        ],
        "example": "DOMESTIC"
      },
      "TravelType": {
        "type": "string",
        "title": "TravelType",
        "description": "Travel Type",
        "enum": [
          "AIR",
          "HOTEL",
          "CAR",
          "RAIL",
          "LIMO",
          "MISC",
          "ALL"
        ],
        "example": "AIR"
      },
      "Traveler": {
        "type": "object",
        "title": "Traveler",
        "description": "Traveler details.",
        "deprecated": true,
        "x-sunset": "2026-07-01",
        "properties": {
          "travelerPersonalInfo": {
            "$ref": "#/components/schemas/TravelerPersonalInfo"
          },
          "user": {
            "$ref": "#/components/schemas/User"
          },
          "userBusinessInfo": {
            "$ref": "#/components/schemas/UserBusinessInfo"
          },
          "userOrgId": {
            "$ref": "#/components/schemas/UserOrgId"
          },
          "persona": {
            "$ref": "#/components/schemas/Persona"
          },
          "isActive": {
            "type": "boolean",
            "description": "A boolean flag to show if traveler is active.",
            "example": true
          },
          "tier": {
            "$ref": "#/components/schemas/Tier"
          },
          "adhocUserInfo": {
            "$ref": "#/components/schemas/AdhocUserInfo"
          },
          "externalId": {
            "type": "string",
            "description": "External id of this user."
          }
        }
      },
      "TravelerArrangerStatus": {
        "type": "string",
        "title": "TravelerArrangerStatus",
        "description": "Status of the traveler-arranger assignment.",
        "enum": [
          "PENDING",
          "ACCEPTED",
          "DENIED"
        ],
        "example": "PENDING"
      },
      "TravelerBusinessInfo": {
        "type": "object",
        "title": "TravelerBusinessInfo",
        "description": "Business information of the traveler",
        "properties": {
          "legalEntity": {
            "$ref": "#/components/schemas/TravelerLegalEntity"
          },
          "companyId": {
            "$ref": "#/components/schemas/CompanyId",
            "deprecated": true,
            "x-sunset": "2026-07-01"
          },
          "companyInfo": {
            "$ref": "#/components/schemas/TravelerCompanyInfo"
          },
          "workerType": {
            "$ref": "#/components/schemas/WorkerType"
          },
          "employeeId": {
            "type": "string",
            "description": "Employee id of the user",
            "example": "1234"
          },
          "companySpecifiedAttributes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CompanySpecifiedAttribute"
            }
          },
          "userCostCenter": {
            "$ref": "#/components/schemas/CostCenter"
          },
          "grade": {
            "$ref": "#/components/schemas/Grade"
          },
          "office": {
            "$ref": "#/components/schemas/Office"
          },
          "department": {
            "$ref": "#/components/schemas/DepartmentV2"
          },
          "accountingCode": {
            "type": "string",
            "description": "Code used for accounting.",
            "example": "123"
          }
        }
      },
      "TravelerCompanyInfo": {
        "type": "object",
        "title": "TravelerCompanyInfo",
        "description": "Company information of the traveler",
        "properties": {
          "id": {
            "$ref": "#/components/schemas/CompanyId"
          },
          "name": {
            "type": "string",
            "description": "Name of the company",
            "example": "Spotnana"
          },
          "externalId": {
            "type": "string",
            "description": "External Id of the company",
            "example": "abcd"
          }
        }
      },
      "TravelerEventSummary": {
        "title": "TravelerEventSummary",
        "type": "object",
        "description": "Event summary for a traveler",
        "required": [
          "id"
        ],
        "properties": {
          "id": {
            "type": "string",
            "description": "Event ID",
            "example": "12345"
          },
          "type": {
            "description": "Event Type",
            "$ref": "#/components/schemas/EventType"
          },
          "name": {
            "type": "string",
            "description": "Name of the event",
            "example": "My event"
          },
          "description": {
            "type": "string",
            "description": "Description of the event",
            "example": "This is an event description"
          },
          "startDateTime": {
            "$ref": "#/components/schemas/DateTimeLocal"
          },
          "endDateTime": {
            "$ref": "#/components/schemas/DateTimeLocal"
          },
          "location": {
            "$ref": "#/components/schemas/EventLocation"
          },
          "contacts": {
            "type": "array",
            "description": "Event contacts for the traveler",
            "items": {
              "$ref": "#/components/schemas/UserId"
            },
            "deprecated": true,
            "x-sunset": "2026-07-01"
          },
          "documents": {
            "type": "array",
            "description": "List of documents associated with this event for the traveler",
            "items": {
              "$ref": "#/components/schemas/Document"
            }
          },
          "bookingGuidelines": {
            "description": "Booking details allowed for the event for the traveler",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EventBookingGuideline"
            }
          },
          "allowedBookingTypes": {
            "type": "array",
            "description": "Allowed booking types for the event for the traveler",
            "items": {
              "$ref": "#/components/schemas/EventAllowedBookingType"
            }
          },
          "eventUserRsvp": {
            "$ref": "#/components/schemas/EventUserRsvp"
          },
          "contactInfoList": {
            "type": "array",
            "description": "Event contacts for the traveler",
            "items": {
              "$ref": "#/components/schemas/EventUserInfo"
            }
          },
          "companyId": {
            "$ref": "#/components/schemas/EntityId"
          },
          "runningStatus": {
            "$ref": "#/components/schemas/EventRunningStatus"
          },
          "status": {
            "$ref": "#/components/schemas/EventStatus"
          },
          "isRemovedParticipant": {
            "type": "boolean",
            "description": "Whether the traveler is part of the event."
          },
          "inviteEmailConfig": {
            "$ref": "#/components/schemas/InviteEmailConfig"
          }
        }
      },
      "TravelerInfo": {
        "title": "TravelerInfo",
        "type": "object",
        "description": "Traveler air booking info",
        "required": [
          "travelerIdx",
          "booking"
        ],
        "properties": {
          "airVendorCancellationInfo": {
            "$ref": "#/components/schemas/AirVendorCancellationInfo"
          },
          "createdMcos": {
            "type": "array",
            "description": "Created Mcos",
            "items": {
              "$ref": "#/components/schemas/CreatedMco"
            }
          },
          "travelerIdx": {
            "type": "integer",
            "description": "Index of traveler in travelers list to which this info belongs",
            "format": "int32",
            "example": 0,
            "minimum": 0
          },
          "userId": {
            "$ref": "#/components/schemas/UserId",
            "description": "User ID of traveler to which this TravelerInfo object belongs"
          },
          "paxType": {
            "$ref": "#/components/schemas/PassengerType"
          },
          "paxCurrentAge": {
            "$ref": "#/components/schemas/PassengerAge",
            "description": "Current age of the passenger."
          },
          "tickets": {
            "type": "array",
            "description": "Tickets belonging to this traveler",
            "items": {
              "$ref": "#/components/schemas/Ticket"
            }
          },
          "boardingPass": {
            "type": "array",
            "description": "Boarding pass details.",
            "items": {
              "$ref": "#/components/schemas/BoardingPass"
            }
          },
          "booking": {
            "description": "Info about items booked for this traveler eg. flights, seats, etc.",
            "$ref": "#/components/schemas/Booking"
          },
          "appliedCredits": {
            "type": "array",
            "description": "Information about credit redeemed in booking.",
            "items": {
              "$ref": "#/components/schemas/AppliedCreditInfo"
            }
          },
          "specialServiceRequestInfos": {
            "type": "array",
            "description": "List of all the Special Service Requests associated with the traveler.",
            "items": {
              "$ref": "#/components/schemas/SpecialServiceRequestInfoDetail"
            }
          }
        }
      },
      "TravelerInfoResponse": {
        "title": "TravelerInfoResponse",
        "description": "The traveler identifiers. These can be either the Spotnana user IDs of the travelers or information regarding\nthe adhoc travelers.\n",
        "type": "object",
        "oneOf": [
          {
            "$ref": "#/components/schemas/UserIdWrapper"
          },
          {
            "$ref": "#/components/schemas/AdhocTravelerInfoWrapper"
          }
        ]
      },
      "TravelerLegalEntity": {
        "type": "object",
        "title": "TravelerLegalEntity",
        "description": "Legal entity of the traveler",
        "properties": {
          "id": {
            "type": "string",
            "description": "Legal entity ID"
          },
          "name": {
            "type": "string",
            "description": "Name of the legal entity",
            "example": "Spotnana India"
          },
          "ein": {
            "type": "string",
            "description": "EIN of the traveler"
          },
          "externalId": {
            "type": "string",
            "description": "External Id of the legal entity",
            "example": "abcd"
          },
          "companySpecifiedAttributes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CompanySpecifiedAttributeLegalEntity"
            }
          },
          "countryCode": {
            "type": "string",
            "description": "2-letter ISO country code of the legal entity",
            "example": "IN"
          },
          "billingCurrency": {
            "type": "string",
            "description": "Billing currency for the legal entity.",
            "example": "USD"
          },
          "registeredName": {
            "type": "string",
            "description": "The official name of this legal entity as registered with local tax authorities.\n",
            "example": "Spotnana India Private Limited"
          },
          "registeredEmail": {
            "type": "string",
            "description": "The primary email (or alias) used for the \"Registered name\" of this legal entity.\nUsed for official communications, including regulatory, compliance, and invoicing\npurposes.\n",
            "example": "contact@spotnana.in"
          }
        }
      },
      "TravelerMatchConditions": {
        "type": "object",
        "title": "TravelerMatchConditions",
        "description": "Matching conditions for traveler.",
        "properties": {
          "workerTypes": {
            "type": "array",
            "description": "Worker types. Users belonging to any of these would match.",
            "items": {
              "$ref": "#/components/schemas/WorkerType"
            }
          },
          "countries": {
            "type": "array",
            "description": "Countries.",
            "items": {
              "type": "string"
            }
          },
          "legalEntities": {
            "type": "array",
            "description": "Legal entities",
            "items": {
              "$ref": "#/components/schemas/Reference"
            }
          },
          "departments": {
            "type": "array",
            "description": "Departments",
            "items": {
              "$ref": "#/components/schemas/Reference"
            }
          },
          "costCenters": {
            "type": "array",
            "description": "Cost centers",
            "items": {
              "$ref": "#/components/schemas/Reference"
            }
          },
          "offices": {
            "type": "array",
            "description": "Offices",
            "items": {
              "$ref": "#/components/schemas/Reference"
            }
          }
        }
      },
      "TravelerPersonalInfo": {
        "type": "object",
        "title": "TravelerPersonalInfo",
        "description": "Traveler personal information.",
        "properties": {
          "loyaltyInfos": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LoyaltyInfo"
            }
          },
          "travelPref": {
            "$ref": "#/components/schemas/TravelPref"
          }
        }
      },
      "TravelerRailInfo": {
        "type": "object",
        "properties": {
          "travelerIndex": {
            "type": "integer",
            "format": "int32"
          },
          "userId": {
            "$ref": "#/components/schemas/UserId",
            "description": "User ID of traveler to which this TravelerInfo belongs"
          },
          "railCard": {
            "$ref": "#/components/schemas/RailCard"
          },
          "loyaltyDetails": {
            "$ref": "#/components/schemas/LoyaltyDetails"
          }
        }
      },
      "TravelerV2": {
        "type": "object",
        "x-ignore-naming-case": true,
        "properties": {
          "event_type": {
            "type": "string",
            "description": "TRAVELER_V2"
          },
          "operationSummary": {
            "type": "object",
            "$ref": "#/components/schemas/OperationSummary"
          },
          "operation": {
            "$ref": "#/components/schemas/TravelerV2OperationType"
          },
          "payload": {
            "$ref": "#/components/schemas/UserProfileWithRelatedEntities"
          },
          "timestamp": {
            "type": "string",
            "description": "Timestamp when the event was published"
          },
          "audience": {
            "$ref": "#/components/schemas/WebhookAudience"
          }
        }
      },
      "TravelerV2OperationType": {
        "description": "Traveler Update operation types",
        "type": "string",
        "enum": [
          "CREATE",
          "UPDATE",
          "DELETE",
          "PURGE"
        ],
        "example": "DELETE",
        "x-enumDescriptions": {
          "CREATE": "A new traveler profile has been created.",
          "UPDATE": "A traveler profile has been updated.",
          "DELETE": "A traveler profile has been deactivated. A deactivated profile can be reactivated later.",
          "PURGE": "A traveler’s profile has been permanently deleted. A purged traveler profile cannot be recovered."
        }
      },
      "TripAdditionalInfo": {
        "title": "TripAdditionalInfo",
        "description": "Additional information about the trip",
        "type": "object",
        "properties": {
          "vpayBillBack": {
            "type": "string",
            "description": "Vpay bill back indicator. Can be one of N(none), C(only car), H(only hotel), B(both) depending on whether there is an active hotel or car pnr using virtual card.",
            "example": "B"
          }
        }
      },
      "TripCommunicationPreferences": {
        "title": "TripCommunicationPreferences",
        "description": "Communication preferences for the trip",
        "type": "object",
        "properties": {
          "tripEmailPreferences": {
            "$ref": "#/components/schemas/TripEmailPreferences"
          }
        }
      },
      "TripContact": {
        "title": "TripContact",
        "description": "Contacts for the trip",
        "type": "object",
        "required": [
          "label",
          "name"
        ],
        "properties": {
          "label": {
            "type": "string",
            "description": "Label for the contact",
            "example": "Coordinator"
          },
          "name": {
            "type": "string",
            "description": "Name of the contact",
            "example": "Himani Jain"
          },
          "email": {
            "type": "string",
            "description": "Email of the contact",
            "example": "himani@spotnana.com"
          },
          "phoneNumber": {
            "description": "Phone no. of the trip contact",
            "$ref": "#/components/schemas/PhoneNumber"
          },
          "isPrimary": {
            "type": "boolean",
            "description": "Whether the contact is primary or not",
            "example": true,
            "default": false
          },
          "restrictVisibility": {
            "type": "boolean",
            "description": "Whether to restrict visibility of the contact to only agents and admins",
            "example": true,
            "default": false
          }
        }
      },
      "TripDetailsV3": {
        "type": "object",
        "x-ignore-naming-case": true,
        "properties": {
          "event_type": {
            "type": "string",
            "description": "TRIP_DETAILS_V3"
          },
          "operationSummary": {
            "$ref": "#/components/schemas/OperationSummary"
          },
          "operation": {
            "$ref": "#/components/schemas/PnrTripDetailOperationType"
          },
          "payload": {
            "$ref": "#/components/schemas/TripV3DetailsResponse"
          },
          "timestamp": {
            "type": "string",
            "description": "Timestamp when the event was published"
          },
          "audience": {
            "$ref": "#/components/schemas/WebhookAudience"
          }
        }
      },
      "TripDisabledInfo": {
        "title": "TripDisabledInfo",
        "description": "Information regarding whether the trip is disabled and if so, the reason why.",
        "type": "object",
        "properties": {
          "disabledReason": {
            "$ref": "#/components/schemas/DisabledReason"
          },
          "isDisabled": {
            "type": "boolean",
            "description": "Indicates whether the trip is disabled or not.",
            "example": false
          }
        }
      },
      "TripEmailPreferences": {
        "title": "TripEmailPreferences",
        "description": "Email preferences for the trip",
        "type": "object",
        "properties": {
          "bucketEmailPreferences": {
            "$ref": "#/components/schemas/BucketEmailPreferences"
          }
        }
      },
      "TripEventMetadata": {
        "title": "TripEventMetadata",
        "description": "Metadata associated with an event trip.",
        "type": "object",
        "required": [
          "eventId"
        ],
        "properties": {
          "eventId": {
            "type": "string",
            "description": "The event id.",
            "example": "123456789"
          },
          "rootEventId": {
            "type": "string",
            "description": "The root event id.",
            "example": "123456789"
          },
          "eventType": {
            "$ref": "#/components/schemas/EventType"
          },
          "associatedEventIds": {
            "type": "array",
            "description": "The associated event ids.",
            "items": {
              "type": "string",
              "example": "123456789"
            }
          }
        }
      },
      "TripFeeInfo": {
        "title": "Trip Fee Info",
        "type": "object",
        "description": "Trip Fee Info",
        "required": [
          "bookingFeeType"
        ],
        "properties": {
          "bookingFeeType": {
            "type": "string",
            "example": "TRIP_FEE"
          },
          "calculatedAmount": {
            "$ref": "#/components/schemas/Money"
          },
          "chargeProcessorInfo": {
            "$ref": "#/components/schemas/ChargeProcessorInfo"
          }
        }
      },
      "TripMetadata": {
        "title": "TripMetadata",
        "description": "Metadata for the trip",
        "type": "object",
        "properties": {
          "hasTripOverride": {
            "type": "boolean",
            "description": "Indicates if the trip has any profile overrides.",
            "example": true
          },
          "preferredCurrency": {
            "type": "string",
            "description": "The currency to be used for the trip.",
            "example": "USD"
          },
          "tripContacts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TripContact"
            }
          },
          "tripCommunicationPreferences": {
            "$ref": "#/components/schemas/TripCommunicationPreferences"
          }
        }
      },
      "TripPaymentInfo": {
        "title": "TripPaymentInfo",
        "description": "Payment info for a given trip. Fares of pending manual form and pending shell pnrs are not considered.",
        "type": "object",
        "required": [
          "totalFare"
        ],
        "properties": {
          "totalFare": {
            "$ref": "#/components/schemas/Money",
            "description": "It is net cost of the trip in form of money. It also includes service fee if visibleToTraveler is true. It does not include refunded amount if some bookings were cancelled and includes only net amount of trip. It does not include amount paid through flight credits."
          },
          "totalFareAmount": {
            "$ref": "#/components/schemas/FareAmount",
            "description": "It is Total cost of trip in form of FareAmount with base and tax. It does not include service fee."
          },
          "serviceFeeFareAmount": {
            "description": "The service fees fare amount of this trip.",
            "$ref": "#/components/schemas/FareAmount"
          }
        }
      },
      "TripUsageMetadata": {
        "title": "TripUsageMetadata",
        "description": "Usage metadata associated with the trip entity.",
        "type": "object",
        "required": [
          "tripUsageType"
        ],
        "properties": {
          "tripUsageType": {
            "description": "The trip usage type for the trip entity.",
            "$ref": "#/components/schemas/TripUsageType"
          },
          "eventMetadata": {
            "description": "Metadata associated with the event if trip usage type is event.",
            "$ref": "#/components/schemas/TripEventMetadata"
          }
        }
      },
      "TripUsageType": {
        "title": "TripUsageType",
        "description": "Trip usage type.",
        "type": "string",
        "enum": [
          "STANDARD",
          "EVENT"
        ]
      },
      "TripV3DetailsResponse": {
        "title": "TripDetailsResponse",
        "description": "Trip Details Response for a given trip Id",
        "type": "object",
        "required": [
          "basicTripInfo",
          "pnrs"
        ],
        "properties": {
          "basicTripInfo": {
            "$ref": "#/components/schemas/BasicTripInfo"
          },
          "pnrs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PnrDetailsResponseWithId"
            }
          },
          "pendingShellPnrs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PnrDetailsResponseWithId"
            }
          },
          "pendingManualFormPnrs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PnrDetailsResponseWithId"
            }
          },
          "tripStatus": {
            "deprecated": true,
            "x-sunset": "2026-07-01",
            "$ref": "#/components/schemas/PnrBookingStatus"
          },
          "tripBookingStatus": {
            "$ref": "#/components/schemas/UserFacingStatus"
          },
          "eventSummary": {
            "hidden": true,
            "$ref": "#/components/schemas/TravelerEventSummary"
          },
          "simplePnrs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SimplePnr"
            }
          },
          "additionalInfo": {
            "$ref": "#/components/schemas/TripAdditionalInfo"
          },
          "tripPaymentInfo": {
            "$ref": "#/components/schemas/TripPaymentInfo"
          }
        }
      },
      "UAPassPlusMetadataExternal": {
        "type": "object",
        "title": "UAPassPlusMetadata",
        "description": "Details for UAPassPlus Metadata.",
        "properties": {
          "uatpInfo": {
            "type": "object",
            "title": "uatpInfo",
            "description": "UATP card information for UAPassPlus"
          }
        }
      },
      "UAPassPlusMetadataWrapperExternal": {
        "type": "object",
        "title": "UAPassPlusMetadataResponseWrapper",
        "description": "Wrapper for UAPassPlus response metadata",
        "required": [
          "uaPassPlusMetadata"
        ],
        "properties": {
          "uaPassPlusMetadata": {
            "$ref": "#/components/schemas/UAPassPlusMetadataExternal"
          }
        }
      },
      "UnusedCreditExchangeInfo": {
        "type": "object",
        "title": "ExchangeInfo",
        "description": "Exchange information for unused credits.",
        "properties": {
          "previousTicket": {
            "type": "string",
            "description": "Previous ticket number in case of exchanges."
          }
        }
      },
      "UnusedCreditFop": {
        "type": "object",
        "title": "UnusedCreditFop",
        "description": "Form of payment information associated with an unused credit.",
        "properties": {
          "paymentMethod": {
            "$ref": "#/components/schemas/PaymentMethod",
            "description": "Payment method used for the original booking."
          },
          "paymentSourceType": {
            "$ref": "#/components/schemas/PaymentSourceType",
            "description": "Type of payment source used."
          },
          "card": {
            "$ref": "#/components/schemas/Card",
            "description": "Card information if the payment source type is a card."
          }
        }
      },
      "UnusedCreditFopCardAccessType": {
        "type": "string",
        "description": "The card access type of the FOP associated with the unused credit.",
        "enum": [
          "CARD_ACCESS_CENTRAL",
          "CARD_ACCESS_PERSONAL",
          "CARD_ACCESS_CORPORATE"
        ]
      },
      "UnusedCreditInfo": {
        "type": "object",
        "title": "UnusedCreditInfo",
        "description": "Information regarding an unused credit.",
        "properties": {
          "sourcePnr": {
            "type": "string",
            "description": "PNR number corresponding to third party through which booking was made.",
            "example": "MC5ONS"
          },
          "spotnanaPnr": {
            "type": "string",
            "description": "Spotnana pnr ID.",
            "example": "2345678"
          },
          "ticketNumber": {
            "type": "string",
            "description": "Ticket number for the ticket that was converted into an unused credit.",
            "example": "5267779139217"
          },
          "airlineCode": {
            "type": "string",
            "description": "2 letter airline code of the airline associated with this unused credit.",
            "example": "AA"
          },
          "airlineInfo": {
            "description": "Airline info with airline name and code",
            "$ref": "#/components/schemas/AirlineInfo"
          },
          "totalFare": {
            "description": "Total airfare associated with the original ticket.",
            "$ref": "#/components/schemas/Money"
          },
          "issueDate": {
            "description": "Issue date for the unused credit.",
            "$ref": "#/components/schemas/DateTimeOffset"
          },
          "expiryDate": {
            "description": "Expiry date for the unused credit.",
            "$ref": "#/components/schemas/DateTimeOffset"
          },
          "usedDate": {
            "description": "Date on which the unused credit was used.",
            "$ref": "#/components/schemas/DateTimeOffset"
          },
          "departureDate": {
            "description": "Date for the departure of the first flight associated with the unused credit.",
            "$ref": "#/components/schemas/DateTimeOffset"
          },
          "segmentsAvailable": {
            "type": "string",
            "description": "Whether all segments are unused or some have already been used.",
            "enum": [
              "UNKNOWN",
              "ALL_OPEN",
              "PARTIAL",
              "OTHER"
            ]
          },
          "passengerName": {
            "description": "Name of the passenger associated with the credit.",
            "$ref": "#/components/schemas/Name"
          },
          "departureCountry": {
            "type": "string",
            "description": "3 letter country code of the departure country associated with the original ticket.",
            "example": "USA"
          },
          "arrivalCountry": {
            "type": "string",
            "description": "3 letter country code of the arrival country associated with the original ticket.",
            "example": "USA"
          },
          "ticketType": {
            "type": "string",
            "description": "Type of credit.",
            "enum": [
              "TICKET_TYPE_UNKNOWN",
              "ETICKET",
              "MCO",
              "NON_GDS"
            ]
          },
          "pcc": {
            "type": "string",
            "description": "PCC the credit was issued on."
          },
          "status": {
            "$ref": "#/components/schemas/CreditStatus"
          },
          "source": {
            "$ref": "#/components/schemas/ThirdPartySource",
            "default": "SABRE",
            "description": "Source of unused credit e.g. Sabre, NDC etc."
          },
          "tripId": {
            "type": "string",
            "description": "Trip ID that contains the unused credit",
            "example": "1234567"
          },
          "redeemVia": {
            "type": "string",
            "description": "Credit redemption method. \nIf the value contains `CONTACT_AGENT`, then the agent must book the ticket and redeem the credits on behalf of the traveler.\n",
            "enum": [
              "REDEEM_VIA_OBT",
              "CONTACT_AGENT"
            ],
            "example": "REDEEM_VIA_OBT"
          },
          "sourceOfTruth": {
            "type": "string",
            "description": "The system that owns the credit.",
            "enum": [
              "SPOTNANA",
              "MANUAL_FORM"
            ]
          },
          "owningPcc": {
            "type": "string",
            "description": "PCC the PNR was created on."
          },
          "paymentSourceId": {
            "type": "string",
            "format": "uuid",
            "description": "Payment source ID associated with the credit.",
            "example": "edd5b835-8001-430c-98f8-fedeccebe4cf"
          },
          "creditUsageType": {
            "$ref": "#/components/schemas/CreditUsageType",
            "description": "The type of credit usage. This can be either COMPANY or PERSONAL."
          },
          "email": {
            "type": "string",
            "description": "Email of the passenger owning the unused credit."
          },
          "fopInfo": {
            "$ref": "#/components/schemas/UnusedCreditFop",
            "description": "The FOP associated with the unused credit."
          },
          "fopLabel": {
            "type": "string",
            "description": "The label associated with the FOP. This value can be empty if that particular FOP does not have any label."
          },
          "exchangeInfo": {
            "$ref": "#/components/schemas/UnusedCreditExchangeInfo",
            "description": "Exchange information in case of exchanges."
          },
          "fopCardAccessType": {
            "$ref": "#/components/schemas/UnusedCreditFopCardAccessType",
            "description": "The card access type of the FOP associated with the unused credit."
          }
        }
      },
      "UpaCategory": {
        "type": "string",
        "enum": [
          "UNKNOWN",
          "AIRCRAFT",
          "SEAT",
          "MEALS",
          "BEVERAGES",
          "ENTERTAINMENT",
          "POWER",
          "WIFI",
          "SERVICE_INFLIGHT",
          "UPGRADE",
          "TRANSPORT_TO_AIRPORT",
          "CHECK_IN",
          "DEPARTURE_TERMINAL",
          "DEPARTMENT_LOUNGE",
          "GATE_BOARDING",
          "SERVICE_DEPARTURE",
          "STOPOVER",
          "CONNECTING_EASE",
          "CONNECTING_TERMINAL",
          "CONNECTING_LOUNGE",
          "SERVICE_CONNECTING",
          "BAGGAGE_COLLECTION",
          "ARRIVAL_TERMINAL",
          "ARRIVAL_LOUNGE",
          "ARRIVAL_TRANSPORT",
          "SERVICE_ARRIVAL",
          "SCHEDULE_ROUTE",
          "LOYALITY_PROGRAM",
          "BRAND",
          "PROMOTION"
        ],
        "example": "STOPOVER"
      },
      "User": {
        "type": "object",
        "title": "User",
        "description": "User details.",
        "properties": {
          "addresses": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PostalAddress"
            }
          },
          "dob": {
            "$ref": "#/components/schemas/DateModel"
          },
          "email": {
            "type": "string",
            "format": "email",
            "example": "example@email.com"
          },
          "emergencyContactInfo": {
            "deprecated": true,
            "x-sunset": "2026-07-01",
            "$ref": "#/components/schemas/EmergencyContactInfo"
          },
          "emergencyContact": {
            "$ref": "#/components/schemas/EmergencyContact"
          },
          "gender": {
            "$ref": "#/components/schemas/Gender"
          },
          "identityDocs": {
            "description": "List of user identity documents.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/IdentityDocument"
            },
            "example": [
              {
                "passport": {
                  "docId": "PASSPORTID",
                  "expiryDate": {
                    "iso8601": "2017-07-21"
                  },
                  "issueCountry": "IN",
                  "issuedDate": {
                    "iso8601": "2017-07-21"
                  },
                  "nationalityCountry": "IN",
                  "type": "REGULAR"
                }
              },
              {
                "ktn": {
                  "number": "123456",
                  "issueCountry": "US"
                }
              }
            ]
          },
          "name": {
            "$ref": "#/components/schemas/Name"
          },
          "paymentInfos": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PaymentInfo"
            }
          },
          "phoneNumbers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PhoneNumber"
            }
          },
          "profilePicture": {
            "$ref": "#/components/schemas/Image"
          },
          "nationality": {
            "type": "string",
            "example": "Indian",
            "description": "Nationality of user"
          },
          "title": {
            "$ref": "#/components/schemas/UserTitle"
          }
        }
      },
      "UserBasicInfo": {
        "type": "object",
        "title": "UserBasicInfo",
        "description": "Basic user information.",
        "properties": {
          "userOrgId": {
            "$ref": "#/components/schemas/UserOrgId"
          },
          "persona": {
            "$ref": "#/components/schemas/Persona"
          },
          "email": {
            "type": "string",
            "format": "email",
            "example": "example@email.com"
          },
          "name": {
            "$ref": "#/components/schemas/Name"
          },
          "profilePicture": {
            "$ref": "#/components/schemas/Image"
          },
          "tier": {
            "$ref": "#/components/schemas/Tier"
          },
          "phoneNumber": {
            "$ref": "#/components/schemas/PhoneNumber"
          },
          "employeeId": {
            "type": "string",
            "description": "Employee id of the user"
          },
          "isActive": {
            "type": "boolean",
            "description": "Whether user profile is active or not.",
            "example": true
          }
        }
      },
      "UserBusinessInfo": {
        "type": "object",
        "title": "UserBusinessInfo",
        "description": "User business information.",
        "required": [
          "email",
          "employeeId",
          "organizationId",
          "legalEntityId"
        ],
        "properties": {
          "department": {
            "$ref": "#/components/schemas/Department"
          },
          "designation": {
            "type": "string",
            "example": "MANAGER"
          },
          "email": {
            "type": "string",
            "format": "email",
            "example": "user@business.com"
          },
          "employeeId": {
            "description": "Unique employee id. Can use email if a company don't use employee ids.",
            "type": "string",
            "example": "101"
          },
          "grade": {
            "$ref": "#/components/schemas/Grade"
          },
          "legalEntityId": {
            "$ref": "#/components/schemas/LegalEntityId"
          },
          "managerBasicInfo": {
            "$ref": "#/components/schemas/UserBasicInfo"
          },
          "office": {
            "$ref": "#/components/schemas/Office"
          },
          "organizationId": {
            "$ref": "#/components/schemas/OrganizationId"
          },
          "phoneNumbers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PhoneNumber"
            }
          },
          "userCostCenter": {
            "$ref": "#/components/schemas/CostCenter"
          },
          "designatedApproverInfos": {
            "deprecated": true,
            "x-sunset": "2026-07-01",
            "type": "array",
            "description": "A list of user basic info for designated approvers.",
            "items": {
              "$ref": "#/components/schemas/UserBasicInfo"
            }
          },
          "designatedApproverUserIds": {
            "type": "array",
            "description": "A list of userId for designated approvers.",
            "items": {
              "$ref": "#/components/schemas/UserId"
            }
          },
          "authorizerEmail": {
            "type": "string",
            "description": "Email address to be used as approval authorizer, when a manager is not present.",
            "example": "example@email.com"
          }
        }
      },
      "UserFacingStatus": {
        "type": "string",
        "title": "UserFacingStatus",
        "description": "User facing booking status",
        "enum": [
          "UNKNOWN_STATUS",
          "PENDING_STATUS",
          "CONFIRMED_STATUS",
          "ACTIVE_STATUS",
          "COMPLETED_STATUS",
          "CANCELLED_STATUS",
          "REFUNDED_STATUS",
          "VOIDED_STATUS",
          "PROCESSING_STATUS",
          "UNCONFIRMED_STATUS",
          "AIRLINE_CONTROL_STATUS",
          "PAYMENT_DECLINED_STATUS",
          "SCHEDULE_CHANGE_STATUS",
          "HOLD_STATUS",
          "APPROVAL_REQUESTED_STATUS",
          "APPROVAL_DENIED_STATUS",
          "CANCELLATION_IN_PROGRESS_STATUS",
          "INOPERATIVE_STATUS",
          "FLIGHT_UNCONFIRMED_STATUS"
        ],
        "example": "PENDING_STATUS"
      },
      "UserId": {
        "type": "object",
        "title": "UserId",
        "description": "User identifier",
        "required": [
          "id"
        ],
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          }
        }
      },
      "UserIdWrapper": {
        "title": "UserIdWrapper",
        "description": "Wrapper over UserId object to be used as an identifier in a oneOf case",
        "properties": {
          "userId": {
            "$ref": "#/components/schemas/UserId"
          }
        }
      },
      "UserOrgId": {
        "type": "object",
        "title": "UserOrgId",
        "description": "User and user's organization information.",
        "required": [
          "userId",
          "organizationId"
        ],
        "properties": {
          "organizationAgencyId": {
            "$ref": "#/components/schemas/OrganizationAgencyId"
          },
          "organizationId": {
            "$ref": "#/components/schemas/OrganizationId"
          },
          "userId": {
            "$ref": "#/components/schemas/UserId"
          },
          "tmcInfo": {
            "$ref": "#/components/schemas/TmcInfo",
            "deprecated": true,
            "x-sunset": "2026-07-01"
          },
          "tmcBasicInfo": {
            "$ref": "#/components/schemas/TmcBasicInfo"
          }
        }
      },
      "UserOrgIdListWrapper": {
        "type": "object",
        "title": "UserOrgIdListWrapper",
        "properties": {
          "userOrgIdList": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/UserOrgId"
            }
          }
        }
      },
      "UserOrgIdWrapper": {
        "type": "object",
        "title": "UserOrgIdWrapper",
        "properties": {
          "userOrgId": {
            "$ref": "#/components/schemas/UserOrgId"
          }
        }
      },
      "UserPersonalInfo": {
        "type": "object",
        "title": "UserPersonalInfo",
        "description": "User details.",
        "properties": {
          "addresses": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PostalAddress"
            }
          },
          "dob": {
            "$ref": "#/components/schemas/DateModel"
          },
          "email": {
            "type": "string",
            "format": "email",
            "example": "example@email.com"
          },
          "emergencyContactInfo": {
            "deprecated": true,
            "x-sunset": "2026-07-01",
            "$ref": "#/components/schemas/EmergencyContactInfo"
          },
          "gender": {
            "$ref": "#/components/schemas/Gender"
          },
          "identityDocs": {
            "type": "array",
            "description": "List of user identity documents.",
            "items": {
              "$ref": "#/components/schemas/IdentityDocument"
            },
            "example": [
              {
                "passport": {
                  "docId": "PASSPORTID",
                  "expiryDate": {
                    "iso8601": "2017-07-21"
                  },
                  "issueCountry": "IN",
                  "issuedDate": {
                    "iso8601": "2017-07-21"
                  },
                  "nationalityCountry": "IN",
                  "type": "REGULAR"
                }
              },
              {
                "ktn": {
                  "number": "123456",
                  "issueCountry": "US"
                }
              }
            ]
          },
          "name": {
            "$ref": "#/components/schemas/Name"
          },
          "phoneNumbers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PhoneNumber"
            }
          },
          "profilePicture": {
            "$ref": "#/components/schemas/Image"
          },
          "nationality": {
            "type": "string",
            "example": "Indian",
            "description": "Nationality of user"
          },
          "title": {
            "$ref": "#/components/schemas/UserTitle"
          },
          "preferredLanguage": {
            "type": "string",
            "description": "Language preferred by user.",
            "example": "en-US"
          },
          "preferredPronoun": {
            "description": "Pronoun preferred by user.",
            "$ref": "#/components/schemas/PreferredPronoun"
          },
          "travelerName": {
            "description": "A name of user that does not contain special characters.",
            "$ref": "#/components/schemas/Name"
          },
          "emergencyContact": {
            "$ref": "#/components/schemas/EmergencyContact"
          }
        }
      },
      "UserProfile": {
        "type": "object",
        "description": "Traveler details.",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "example": "b93dc51f-12dd-46c7-b7d6-1cb12cd3f5b3"
          },
          "personalInfo": {
            "$ref": "#/components/schemas/UserPersonalInfo"
          },
          "businessInfo": {
            "$ref": "#/components/schemas/BusinessInfo"
          },
          "persona": {
            "$ref": "#/components/schemas/Persona"
          },
          "isActive": {
            "type": "boolean",
            "description": "Indicates if traveler is active.",
            "example": true
          },
          "tier": {
            "$ref": "#/components/schemas/Tier"
          },
          "stealthType": {
            "deprecated": true,
            "x-sunset": "2026-02-01",
            "$ref": "#/components/schemas/StealthType"
          },
          "stealthMode": {
            "$ref": "#/components/schemas/StealthMode"
          },
          "relativeOf": {
            "deprecated": true,
            "x-sunset": "2026-07-01",
            "$ref": "#/components/schemas/RelativeOf"
          },
          "travelPreferences": {
            "$ref": "#/components/schemas/TravelPreferences"
          },
          "membershipInfo": {
            "$ref": "#/components/schemas/MembershipInfo"
          },
          "notificationPreferences": {
            "$ref": "#/components/schemas/NotificationPreferences"
          },
          "travelArrangers": {
            "$ref": "#/components/schemas/UserTravelArrangers"
          },
          "adhocUserInfo": {
            "$ref": "#/components/schemas/AdhocUserInfo"
          },
          "externalId": {
            "type": "string",
            "description": "The partner-assigned user identifier."
          },
          "contractingTmcRef": {
            "$ref": "#/components/schemas/Reference",
            "description": "Contracting TMC for the user."
          },
          "bookingTmcRef": {
            "$ref": "#/components/schemas/Reference",
            "description": "Booking TMC for the user."
          }
        }
      },
      "UserProfileWithRelatedEntities": {
        "allOf": [
          {
            "$ref": "#/components/schemas/UserProfile"
          }
        ],
        "type": "object",
        "title": "UserProfileWithRelatedEntities",
        "description": "Traveler details enriched with related entities like payment info",
        "required": [
          "id"
        ],
        "properties": {
          "paymentInfos": {
            "type": "array",
            "description": "List of payment info",
            "items": {
              "$ref": "#/components/schemas/PaymentInfo"
            }
          }
        }
      },
      "UserTitle": {
        "title": "UserTitle",
        "type": "string",
        "enum": [
          "TITLE_UNKNOWN",
          "MR",
          "MS",
          "MRS",
          "MX",
          "MASTER",
          "MISS",
          "DR",
          "PROFESSOR",
          "CAPTAIN",
          "REVEREND",
          "HONOURABLE",
          "SIR",
          "LADY",
          "AMBASSADOR",
          "LORD",
          "BRIGADIER",
          "SENATOR",
          "DAME",
          "JUSTICE",
          "UK"
        ],
        "example": "MR"
      },
      "UserTravelArrangers": {
        "type": "object",
        "title": "UserTravelArrangers",
        "description": "Travel arrangers for a user.",
        "required": [
          "travelArrangers"
        ],
        "properties": {
          "travelArrangers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TravelArrangerBasicInfo"
            }
          }
        }
      },
      "VaccineAmenity": {
        "type": "object",
        "title": "VaccineAmenity",
        "description": "Vaccine Amenity properties",
        "properties": {
          "displayText": {
            "type": "string",
            "example": "Vaccination facility available"
          },
          "vaccineDescription": {
            "type": "string",
            "description": "chek"
          },
          "vaccineAttrDescription": {
            "type": "string"
          }
        }
      },
      "VaccineAmenityWrapper": {
        "type": "object",
        "title": "VaccineAmenityWrapper",
        "properties": {
          "vaccineAmenity": {
            "$ref": "#/components/schemas/VaccineAmenity"
          }
        }
      },
      "ValueAddedServiceFeeInfo": {
        "type": "object",
        "title": "ValueAddedServiceFeeInfo",
        "description": "Value Added Service Fee Info",
        "required": [
          "bookingFeeType"
        ],
        "properties": {
          "bookingFeeType": {
            "type": "string",
            "description": "Type of the booking fee",
            "example": "VALUE_ADDED_SERVICE_FEE"
          },
          "calculatedAmount": {
            "$ref": "#/components/schemas/Money"
          },
          "chargeProcessorInfo": {
            "$ref": "#/components/schemas/ChargeProcessorInfo"
          },
          "valueAddedServiceFeeType": {
            "$ref": "#/components/schemas/ValueAddedServiceFeeType"
          },
          "feeName": {
            "type": "string",
            "description": "Name of the fee to be charged.",
            "example": "Payment Admin Fee"
          }
        }
      },
      "ValueAddedServiceFeeType": {
        "type": "string",
        "title": "ValueAddedServiceFeeType",
        "description": "Value added service fee type",
        "enum": [
          "VIRTUAL_CARD_PAYMENT",
          "PRICE_OPTIMIZATION",
          "UNUSED_CREDIT_APPLICATION",
          "MERCHANT_FEE"
        ],
        "example": "VIRTUAL_CARD_PAYMENT"
      },
      "Variable": {
        "type": "object",
        "title": "Variable",
        "description": "Variable defining the additional value to be sent along with custom field response.",
        "required": [
          "type",
          "name"
        ],
        "properties": {
          "type": {
            "type": "string",
            "example": "VARIABLE",
            "default": "VARIABLE"
          },
          "name": {
            "$ref": "#/components/schemas/VariableName"
          }
        }
      },
      "VariableName": {
        "type": "string",
        "title": "VariableName",
        "description": "Name of the variable.",
        "enum": [
          "PUBLISHED_FARE",
          "LLF",
          "ADD_COLLECT_AMOUNT",
          "SELECTED_FARE",
          "SPLIT_PAYMENT_FARE"
        ],
        "example": "LLF",
        "x-ignoreBreakingChanges": [
          "VariableName->ADD_COLLECT_AMOUNT",
          "VariableName->SELECTED_FARE",
          "VariableName->SPLIT_PAYMENT_FARE"
        ]
      },
      "Vendor": {
        "type": "object",
        "description": "Car vendor.",
        "required": [
          "code",
          "name"
        ],
        "properties": {
          "code": {
            "type": "string",
            "description": "Vendor code.",
            "example": "ZE"
          },
          "name": {
            "type": "string",
            "description": "Vendor name.",
            "example": "HERTZ"
          },
          "email": {
            "type": "string",
            "description": "Vendor email.",
            "example": "abc@xyz.com"
          },
          "phone": {
            "description": "Vendor contact number.",
            "$ref": "#/components/schemas/PhoneNumber"
          }
        }
      },
      "VendorInfo": {
        "type": "object",
        "title": "VendorInfo",
        "description": "Name/ID etc. of the vendor.",
        "required": [
          "vendorId",
          "vendorName"
        ],
        "properties": {
          "vendorId": {
            "type": "string",
            "description": "ID of the vendor."
          },
          "vendorName": {
            "type": "string",
            "description": "Name of the vendor."
          }
        }
      },
      "VendorProgramPaymentMetadata2": {
        "type": "object",
        "title": "VendorProgramPaymentMetadata",
        "description": "Metadata related to vendor program payment method",
        "oneOf": [
          {
            "$ref": "#/components/schemas/DirectBillingWrapper2"
          },
          {
            "$ref": "#/components/schemas/UAPassPlusMetadataWrapperExternal"
          }
        ]
      },
      "VirtualCardInfo": {
        "type": "object",
        "title": "VirtualCardInfo",
        "description": "Virtual card information like maximum deployment amount, valid date range.",
        "properties": {
          "amount": {
            "description": "Virtual card deployment amount. This amount will drive the maximum authorisation value permitted on the virtual card.",
            "$ref": "#/components/schemas/Money"
          },
          "dateRange": {
            "description": "Date range within which the virtual card can be charged.",
            "$ref": "#/components/schemas/DateRange"
          }
        }
      },
      "VirtualCardPaymentMetadata": {
        "title": "VirtualCardPaymentMetadata",
        "type": "object",
        "description": "Metadata for Virtual Card.",
        "required": [
          "vendorInfo"
        ],
        "properties": {
          "vendorInfo": {
            "$ref": "#/components/schemas/VirtualCardVendorInfo"
          },
          "cardInfo": {
            "$ref": "#/components/schemas/VirtualCardInfo"
          },
          "paymentInstructionId": {
            "type": "string",
            "description": "Payment instruction id set during addition of virtual card payment source",
            "example": "1eb8b778-f0a6-4037-865c-4580982fa36e"
          },
          "shouldReveal": {
            "type": "boolean",
            "description": "Identifier for when to reveal virtual cards as they are revealed to travellers only 24hrs before check-in.",
            "example": false
          }
        }
      },
      "VirtualCardVendor": {
        "type": "string",
        "description": "Type of Virtual card vendor",
        "enum": [
          "CONFERMA"
        ],
        "example": "CONFERMA"
      },
      "VirtualCardVendorInfo": {
        "type": "object",
        "title": "VirtualCardVendorInfo",
        "description": "Virtual card related information like vendor, cardId, card-pool id of vendor etc.",
        "required": [
          "vendorCardId",
          "virtualCardVendorCardPoolId"
        ],
        "properties": {
          "vendor": {
            "$ref": "#/components/schemas/VirtualCardVendor"
          },
          "vendorCardId": {
            "type": "string",
            "description": "Virtual card id.",
            "example": "68793680"
          },
          "virtualCardVendorCardPoolId": {
            "type": "string",
            "description": "Card pool id of virtual card vendor.",
            "example": "51907"
          },
          "confermaInfo": {
            "$ref": "#/components/schemas/ConfermaInfo"
          }
        }
      },
      "Voucher": {
        "type": "object",
        "title": "Voucher",
        "description": "Voucher details",
        "required": [
          "amount"
        ],
        "properties": {
          "amount": {
            "description": "Amount in the voucher.",
            "$ref": "#/components/schemas/SimpleMoney"
          }
        }
      },
      "VoucherInfo": {
        "type": "object",
        "title": "VoucherInfo",
        "required": [
          "voucherId"
        ],
        "description": "Car Voucher information",
        "properties": {
          "voucherId": {
            "type": "string",
            "description": "Voucher Id",
            "example": "@38807091"
          },
          "remarks": {
            "type": "string",
            "description": "Remarks associated with the voucher",
            "example": "VI--A123456"
          },
          "voucherType": {
            "type": "string",
            "description": "Type of voucher",
            "example": "FC",
            "enum": [
              "FC",
              "GDA",
              "FIXED_VALUE"
            ]
          },
          "voucherBillingNumber": {
            "type": "string",
            "description": "Voucher Billing Number",
            "example": "A123456"
          },
          "voucherFormat": {
            "type": "string",
            "description": "Format of the voucher",
            "example": "E"
          }
        }
      },
      "WaiveOffFeeReason": {
        "type": "object",
        "title": "WaiveOffFeeReason",
        "description": "Fee waive off reason info.",
        "properties": {
          "reasonCode": {
            "type": "string",
            "description": "Fee waive off reason code.",
            "example": "WA05"
          },
          "reason": {
            "type": "string",
            "description": "Fee waive off reason description.",
            "example": "Customer goodwill"
          }
        }
      },
      "WebhookAudience": {
        "type": "object",
        "description": "Audience for whom this webhook payload is intended",
        "properties": {
          "organizationId": {
            "type": "string",
            "description": "Organization ID"
          },
          "contractingTmcId": {
            "type": "string",
            "description": "Contracting TMC ID"
          },
          "bookingTmcId": {
            "type": "string",
            "description": "Booking TMC ID"
          }
        }
      },
      "WeightLimit": {
        "description": "The weight limit of a baggage option.",
        "type": "object",
        "properties": {
          "weight": {
            "description": "The weight limit of a baggage option.",
            "type": "number",
            "example": 32
          },
          "unit": {
            "description": "The unit of measurement for the weight limit.",
            "type": "string",
            "enum": [
              "lb",
              "kg"
            ],
            "example": "kg",
            "x-ignoreBreakingChanges": [
              "unit->KG",
              "unit->LBS"
            ]
          }
        }
      },
      "WifiAmenity": {
        "type": "object",
        "title": "WifiAmenity",
        "description": "Wifi Amenity properties",
        "properties": {
          "displayText": {
            "type": "string",
            "example": "Basic web browsing (fee)"
          },
          "cost": {
            "type": "string",
            "example": "paid"
          }
        }
      },
      "WifiAmenityWrapper": {
        "type": "object",
        "title": "WifiAmenityWrapper",
        "properties": {
          "wifiAmenity": {
            "$ref": "#/components/schemas/WifiAmenity"
          }
        }
      },
      "WorkerType": {
        "type": "string",
        "description": "The type of worker.",
        "enum": [
          "EMPLOYEE",
          "CONTINGENT",
          "SEASONAL",
          "INTERN",
          "GUEST"
        ],
        "example": "EMPLOYEE",
        "x-enumValidFrom": {
          "GUEST": "2025-06-03"
        }
      },
      "WorkerTypeListWrapper": {
        "type": "object",
        "title": "WorkerTypeListWrapper",
        "properties": {
          "workerTypeList": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/WorkerType"
            }
          }
        }
      },
      "WorkerTypeWrapper": {
        "type": "object",
        "title": "WorkerTypeWrapper",
        "properties": {
          "workerType": {
            "$ref": "#/components/schemas/WorkerType"
          }
        }
      }
    }
  },
  "x-webhooks": {
    "AGENT_TASK_DETAILS": {
      "post": {
        "responses": {
          "200": {
            "description": "OK"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AgentTaskDetails"
              }
            }
          }
        }
      }
    },
    "TRAVELER_V2": {
      "post": {
        "responses": {
          "200": {
            "description": "OK"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TravelerV2"
              }
            }
          }
        }
      }
    },
    "PNR_APPROVAL": {
      "post": {
        "responses": {
          "200": {
            "description": "OK"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PnrApproval"
              }
            }
          }
        }
      }
    },
    "SERVICE_CHARGE": {
      "post": {
        "responses": {
          "200": {
            "description": "OK"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ServiceCharge1"
              }
            }
          }
        }
      }
    },
    "PNR_V3": {
      "post": {
        "responses": {
          "200": {
            "description": "OK"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PnrV3"
              }
            }
          }
        }
      }
    },
    "TRIP_DETAILS_V3": {
      "post": {
        "responses": {
          "200": {
            "description": "OK"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TripDetailsV3"
              }
            }
          }
        }
      }
    }
  }
}