{
  "openapi": "3.1.0",
  "info": {
    "title": "Trip API",
    "version": "v2"
  },
  "servers": [
    {
      "url": "https://api-ext-sboxmeta.partners.spotnana.com",
      "description": "Sandbox URL"
    }
  ],
  "security": [
    {
      "Bearer": []
    }
  ],
  "components": {
    "securitySchemes": {
      "Bearer": {
        "type": "http",
        "scheme": "bearer"
      }
    },
    "responses": {
      "BadRequest": {
        "description": "Bad request",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ErrorResponse"
            }
          }
        }
      },
      "Forbidden": {
        "description": "Forbidden",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ErrorResponse"
            }
          }
        }
      },
      "NotFound": {
        "description": "The specified resource was not found.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ErrorResponse"
            }
          }
        }
      },
      "Unauthorized": {
        "description": "Unauthorized",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ErrorResponse"
            }
          }
        }
      }
    },
    "schemas": {
      "AccessType": {
        "type": "string",
        "description": "Access Type of the Payment Source being created.",
        "enum": [
          "CENTRALISED",
          "PERSONAL",
          "APPLICATION",
          "TMC",
          "ITINERARY",
          "EVENT",
          "EVENT_TEMPLATE"
        ],
        "example": "CENTRALISED",
        "x-ignoreBreakingChanges": [
          "AccessType->EVENT_TEMPLATE"
        ]
      },
      "ActualPayment": {
        "title": "ActualPayment",
        "type": "object",
        "description": "Payment done via supported Spotnana payment types.",
        "required": [
          "paymentSourceType",
          "paymentMetadata"
        ],
        "properties": {
          "paymentSourceType": {
            "description": "Type of payment source.",
            "$ref": "#/components/schemas/PaymentSourceType"
          },
          "paymentMetadata": {
            "description": "Type of payment source.",
            "$ref": "#/components/schemas/PaymentSourceMetadata"
          }
        }
      },
      "AddRemarksRequest": {
        "title": "AddRemarksRequest",
        "type": "object",
        "description": "Add third party remarks to given PNR.",
        "required": [
          "remarks"
        ],
        "properties": {
          "remarks": {
            "type": "array",
            "description": "The list of remarks to be added to the give PNR.",
            "items": {
              "$ref": "#/components/schemas/ThirdPartyPnrRemark"
            }
          }
        }
      },
      "AddRemarksResponse": {
        "type": "object",
        "description": "Response on adding remark.",
        "properties": {
          "processedRemarks": {
            "type": "array",
            "description": "The list of remarks added to the given PNR.",
            "items": {
              "$ref": "#/components/schemas/ThirdPartyPnrRemark"
            }
          },
          "ignoredRemarks": {
            "type": "array",
            "description": "The list of remarks ignored.",
            "items": {
              "$ref": "#/components/schemas/ThirdPartyPnrRemark"
            }
          }
        }
      },
      "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
          }
        }
      },
      "AdvanceChangePolicy": {
        "type": "object",
        "title": "AdvanceChangePolicy",
        "properties": {
          "advanceChangePolicy": {
            "$ref": "#/components/schemas/AirPolicy"
          }
        }
      },
      "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"
          }
        }
      },
      "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"
          }
        }
      },
      "AgentNote": {
        "title": "AgentNote",
        "description": "Agent Note with details.",
        "type": "object",
        "required": [
          "noteId",
          "note",
          "senderInfo",
          "createdAt",
          "updatedAt"
        ],
        "properties": {
          "noteId": {
            "$ref": "#/components/schemas/NoteId"
          },
          "pnrId": {
            "type": "string",
            "description": "Pnr ID",
            "example": "6789533589"
          },
          "note": {
            "type": "string",
            "description": "Note message",
            "example": "An agent task has been created."
          },
          "senderInfo": {
            "$ref": "#/components/schemas/UserBasicInfo"
          },
          "createdAt": {
            "$ref": "#/components/schemas/DateTimeOffset"
          },
          "updatedAt": {
            "$ref": "#/components/schemas/DateTimeOffset"
          }
        }
      },
      "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"
            }
          },
          "voidPolicy": {
            "$ref": "#/components/schemas/VoidPolicy",
            "description": "Void policy information for the PNR"
          },
          "utas": {
            "type": "array",
            "description": "Universal Travel Attributes for amenities and policies",
            "items": {
              "$ref": "#/components/schemas/AirUta"
            }
          },
          "showRawFareRules": {
            "type": "boolean",
            "description": "For FE to show raw fare rules",
            "example": false
          }
        }
      },
      "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"
          }
        }
      },
      "AirCancellationDetails": {
        "type": "object",
        "title": "AirCancellationDetails",
        "description": "Cancellation details for air booking.",
        "required": [
          "travelers",
          "cancellationState"
        ],
        "properties": {
          "travelers": {
            "type": "array",
            "description": "Cancellation information for travelers in this booking.",
            "minItems": 1,
            "items": {
              "$ref": "#/components/schemas/AirTravelerCancellationInfo"
            }
          },
          "cancellationOptions": {
            "type": "array",
            "description": "Cancellation options for this booking.",
            "minItems": 1,
            "items": {
              "$ref": "#/components/schemas/AirCancellationOption"
            }
          },
          "cancellationState": {
            "description": "Cancellation state for this booking.",
            "$ref": "#/components/schemas/AirCancellationState"
          },
          "cancellationNotSupportedReasons": {
            "type": "array",
            "description": "Reasons why cancellation is not supported via OBT.",
            "minItems": 1,
            "items": {
              "$ref": "#/components/schemas/AirCancellationNotSupportedReason"
            }
          }
        }
      },
      "AirCancellationDetailsWrapper": {
        "type": "object",
        "title": "AirCancellationDetailsWrapper",
        "description": "Wrapper for AirCancellationDetails",
        "properties": {
          "air": {
            "$ref": "#/components/schemas/AirCancellationDetails"
          }
        }
      },
      "AirCancellationNotSupportedReason": {
        "type": "string",
        "title": "AirCancellationNotSupportedReason",
        "description": "Reason why cancellation is not supported via OBT.",
        "example": "PARTIAL_LEG_FLOWN",
        "enum": [
          "PARTIAL_LEG_FLOWN",
          "EXCHANGED_TICKET",
          "AUTOMATED_REFUND_NOT_SUPPORTED",
          "AUTOMATED_EXCHANGE_NOT_SUPPORTED",
          "NON_REFUNDABLE_BUT_EXCHANGEABLE",
          "NON_REFUNDABLE_NON_EXCHANGEABLE",
          "FARE_RULES_UNKNOWN",
          "FLIGHT_CHECKED_IN",
          "FARE_BREAKUP_UNKNOWN",
          "CURRENT_TIME_CLOSE_TO_FLIGHT_DEPARTURE",
          "ALL_FLIGHTS_USED",
          "NON_VOIDABLE_ANCILLARY_TICKET",
          "SUPPLIER_CANCELLATION_NOT_IMPLEMENTED",
          "OUTSIDE_BOOKING",
          "UPGRADE_REQUESTED",
          "MCO_USED_TICKET",
          "AUTOMATED_UNUSED_CREDIT_NOT_SUPPORTED",
          "NON_REFUNDABLE_STATUS",
          "MULTI_CURRENCY_EXCHANGED_TICKET"
        ],
        "x-ignoreBreakingChanges": [
          "AirCancellationNotSupportedReason->MCO_USED_TICKET",
          "AirCancellationNotSupportedReason->AUTOMATED_UNUSED_CREDIT_NOT_SUPPORTED",
          "AirCancellationNotSupportedReason->NON_REFUNDABLE_STATUS",
          "AirCancellationNotSupportedReason->MULTI_CURRENCY_EXCHANGED_TICKET"
        ]
      },
      "AirCancellationOption": {
        "type": "object",
        "title": "AirCancellationOption",
        "description": "Details like fare breakup for a cancellation option.",
        "required": [
          "fareInfo"
        ],
        "properties": {
          "cancellationType": {
            "description": "Cancellation type like VOID, REFUND, etc.",
            "$ref": "#/components/schemas/AirCancellationType"
          },
          "fareInfo": {
            "description": "Fare breakup for cancellation option.",
            "$ref": "#/components/schemas/AirFareInfo"
          },
          "offerExpiryInfo": {
            "description": "Cancellation offer expiry datetime in UTC.",
            "$ref": "#/components/schemas/OfferExpiryInfo"
          },
          "optionId": {
            "description": "Unique id for this cancellation option.",
            "type": "string",
            "example": "1"
          }
        }
      },
      "AirCancellationState": {
        "type": "string",
        "title": "AirCancellationState",
        "description": "- CANCELLABLE_BY_OBT: Cancellation possible via API.\n- CANCELLABLE_BY_SUPPORT: Cancellation possible via agent support.\n- NON_CANCELLABLE: Booking is non-cancellable.\n- CANCELLATION_IN_PROGRESS: Cancellation is in progress.\n- CANCELLATION_BY_AGENT_REQUESTED: Cancellation request has been sent to agent.\n- CANCELLED: Already cancelled.\n- CANCELLATION_INFO_NOT_AVAILABLE: Cancellation information not available.\n",
        "example": "CANCELLABLE_BY_OBT",
        "enum": [
          "CANCELLABLE_BY_OBT",
          "CANCELLABLE_BY_SUPPORT",
          "NON_CANCELLABLE",
          "CANCELLATION_IN_PROGRESS",
          "CANCELLATION_BY_AGENT_REQUESTED",
          "CANCELLED",
          "CANCELLATION_INFO_NOT_AVAILABLE"
        ]
      },
      "AirCancellationType": {
        "type": "string",
        "title": "AirCancellationType",
        "description": "Type of cancellation.",
        "example": "VOID",
        "enum": [
          "REFUND",
          "VOID",
          "UNUSED_CREDITS"
        ]
      },
      "AirConditioning": {
        "type": "string",
        "title": "AirConditioning",
        "description": "Whether air conditioning is available.",
        "enum": [
          "UNKNOWN_AC",
          "AC_AVAILABLE",
          "AC_NOT_AVAILABLE"
        ],
        "example": "AC_AVAILABLE"
      },
      "AirFareInfo": {
        "type": "object",
        "title": "AirFareInfo",
        "description": "Fare breakup for cancellation.",
        "required": [
          "totalFare",
          "usedFare",
          "nonRefundableFare",
          "cancellationFee",
          "merchantFee",
          "refund"
        ],
        "properties": {
          "totalFare": {
            "description": "Total fare charged.",
            "$ref": "#/components/schemas/FareAmount"
          },
          "usedFare": {
            "description": "Used fare component.",
            "$ref": "#/components/schemas/FareAmount"
          },
          "nonRefundableFare": {
            "description": "Non refundable fare.",
            "$ref": "#/components/schemas/FareAmount"
          },
          "cancellationFee": {
            "description": "Cancellation fee.",
            "$ref": "#/components/schemas/FareAmount"
          },
          "merchantFee": {
            "description": "Non refundable merchant fee.",
            "$ref": "#/components/schemas/Money"
          },
          "refund": {
            "description": "Total refund amount.",
            "$ref": "#/components/schemas/FareAmount"
          },
          "flightCredits": {
            "description": "Flight credits info for the cases where the ticket can be converted to unused credits\n",
            "$ref": "#/components/schemas/FlightCredits"
          }
        }
      },
      "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"
            }
          }
        }
      },
      "AirItemNameMetadata": {
        "title": "AirItemNameMetadata",
        "type": "object",
        "description": "AirItemNameMetadata information.",
        "required": [
          "pnrType"
        ],
        "properties": {
          "pnrType": {
            "type": "string",
            "example": "AIR"
          },
          "ticketStatus": {
            "description": "Ticket status.",
            "$ref": "#/components/schemas/TicketStatus",
            "example": "REFUNDED_EXCHANGED"
          },
          "airNameInvoiceMetadata": {
            "description": "Air invoice metadata.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AirNameInvoiceMetadata"
            }
          },
          "defaultItemName": {
            "description": "Default item name.",
            "type": "string",
            "example": "Flight void"
          }
        }
      },
      "AirItemType": {
        "type": "string",
        "description": "type of air item",
        "enum": [
          "FLIGHT",
          "ANCILLARY"
        ],
        "example": "FLIGHT"
      },
      "AirItin": {
        "type": "object",
        "description": "Describes an itinerary containing legs and flights.",
        "required": [
          "itineraryId",
          "legs",
          "travelers",
          "fareInfo",
          "ticketType"
        ],
        "properties": {
          "itineraryId": {
            "type": "string",
            "description": "The unique ID for this itinerary.",
            "example": "kjdUjak8hX"
          },
          "legs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AirLegInfo",
              "description": "List of legs present in the itinerary."
            }
          },
          "travelers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TravelerDetail",
              "description": "List of passenger details in the itinerary."
            }
          },
          "fareInfo": {
            "description": "Describes the fare amount and taxes.",
            "$ref": "#/components/schemas/FareInfo"
          },
          "ticketType": {
            "description": "Indicates whether this itinerary will be a single or multi ticket",
            "$ref": "#/components/schemas/TicketType"
          },
          "policyInfos": {
            "description": "The policy details evaluated on the itinerary.",
            "$ref": "#/components/schemas/PnrPolicyInfo"
          },
          "posInfo": {
            "type": "array",
            "description": "The point of sales which offer the itinerary.",
            "items": {
              "$ref": "#/components/schemas/POSInfo"
            }
          },
          "publicFare": {
            "description": "The public fare attribute in case private fare is applied for any pax",
            "$ref": "#/components/schemas/FareAmount"
          },
          "allowedFopRules": {
            "type": "array",
            "description": "The payment method types applicable to the itinerary.",
            "items": {
              "$ref": "#/components/schemas/AllowedFopRule"
            }
          },
          "fareAttributes": {
            "description": "The fare attributes applicable to the itinerary.",
            "$ref": "#/components/schemas/FareAttributes"
          }
        }
      },
      "AirLegInfo": {
        "type": "object",
        "description": "Describes a leg in the itinerary. Each leg may have multiple flight segments within it, which combined together\ntake the traveler from the leg's origin to its destination.\n",
        "required": [
          "id",
          "flights",
          "travelerInfos",
          "totalLegFare",
          "fareCategory"
        ],
        "properties": {
          "id": {
            "type": "string",
            "description": "The unique ID for this leg.",
            "example": "leg_0"
          },
          "flights": {
            "description": "Details of the list of flights present in the leg.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FlightDetail"
            }
          },
          "travelerInfos": {
            "description": "Details of passenger(s) information for this leg.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TravelerLegInfo"
            }
          },
          "totalLegFare": {
            "description": "Total cumulative fare for this leg summed across all passengers",
            "$ref": "#/components/schemas/FareAmount"
          },
          "fareCategory": {
            "description": "Fare category of this leg. It describes the cabin class for this flight.",
            "$ref": "#/components/schemas/FareCategory"
          },
          "brandName": {
            "type": "string",
            "description": "The brand name advertised by the airline.",
            "example": "Economy Flex"
          },
          "brandCode": {
            "type": "string",
            "description": "The brand code assigned by the airline corresponding brandName.",
            "example": "AADOM-MAIN"
          },
          "validatingAirline": {
            "type": "string",
            "description": "The airline code for the airline which is validating this booking and orchestrating the payment.",
            "example": "AA"
          },
          "rateType": {
            "description": "Rate or fare type for this leg (for example \"public\" or \"corporate\").",
            "$ref": "#/components/schemas/RateType"
          },
          "vendorProgramType": {
            "$ref": "#/components/schemas/VendorProgramType"
          }
        }
      },
      "AirMetadata": {
        "type": "object",
        "description": "Metadata associated with the air search response.",
        "properties": {
          "airlineInfo": {
            "type": "array",
            "description": "Metadata for all airlines available in the specific route.",
            "items": {
              "$ref": "#/components/schemas/AirlineInfo"
            }
          },
          "applicableAlliances": {
            "type": "array",
            "description": "Alliances which are applicable based on the airlines info",
            "items": {
              "$ref": "#/components/schemas/Alliance"
            }
          },
          "legBylegPricing": {
            "type": "boolean",
            "description": "Flag indicating whether itineraries are priced on a leg-by-leg basis (instead of the overall itinerary\npricing, which is the default).\n"
          },
          "enableFareCategories": {
            "type": "array",
            "description": "Fare categories that need to be used for the given air search",
            "items": {
              "$ref": "#/components/schemas/FareCategory"
            }
          },
          "isExpressSearch": {
            "type": "boolean",
            "description": "Flag indicating whether the search was performed as an express search."
          },
          "availableConnectingAirports": {
            "type": "array",
            "description": "List of connecting airports (layover locations) available in the search results.\nSorted by: 1) number of results (descending), 2) alphabetically (ascending).\n",
            "items": {
              "$ref": "#/components/schemas/AirportInfo"
            }
          }
        }
      },
      "AirNameInvoiceMetadata": {
        "title": "AirNameInvoiceMetadata",
        "type": "object",
        "description": "invoice metadata for Air Pnr.",
        "required": [
          "airlineName",
          "flightNumber",
          "origin",
          "destination",
          "cabin"
        ],
        "properties": {
          "airlineName": {
            "description": "Name of the airline.",
            "type": "string",
            "example": "United Airlines"
          },
          "flightNumber": {
            "description": "Flight number.",
            "type": "string",
            "example": "UA 123"
          },
          "origin": {
            "description": "Origin of the flight.",
            "type": "string",
            "example": "SFO"
          },
          "destination": {
            "description": "Destination of the flight.",
            "type": "string",
            "example": "EWR"
          },
          "date": {
            "description": "Date of the flight.",
            "$ref": "#/components/schemas/DateModel"
          },
          "cabin": {
            "description": "Cabin class.",
            "$ref": "#/components/schemas/Cabin",
            "example": "ECONOMY"
          },
          "ancillary": {
            "description": "Ancillary services.",
            "type": "string",
            "example": "Seat Purchase"
          }
        }
      },
      "AirPnrRemark": {
        "title": "AirPnrRemark",
        "type": "object",
        "required": [
          "remarkString"
        ],
        "properties": {
          "remarkString": {
            "type": "string",
            "description": "Remark String",
            "example": "COMPLEATREMARK"
          }
        }
      },
      "AirPnrSummary": {
        "type": "object",
        "title": "AirPnrSummary",
        "description": "Summary of Air PNR",
        "properties": {
          "legInfos": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LegSummary"
            }
          },
          "totalAmount": {
            "$ref": "#/components/schemas/Money"
          },
          "llfItinerary": {
            "$ref": "#/components/schemas/AirSearchResponse"
          }
        }
      },
      "AirPnrSummaryWrapper": {
        "type": "object",
        "title": "AirPnrSummaryWrapper",
        "properties": {
          "airPnrSummary": {
            "$ref": "#/components/schemas/AirPnrSummary"
          }
        }
      },
      "AirPolicy": {
        "type": "object",
        "title": "AirPolicy",
        "description": "Air UTA data",
        "properties": {
          "summary": {
            "$ref": "#/components/schemas/Summary",
            "description": "Summary of UTA"
          },
          "assessmentType": {
            "$ref": "#/components/schemas/AssessmentType",
            "description": "Assessment Type"
          },
          "fee": {
            "$ref": "#/components/schemas/Money",
            "description": "UTA fees"
          },
          "value": {
            "$ref": "#/components/schemas/Value",
            "description": "Policy value"
          }
        }
      },
      "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"
          }
        }
      },
      "AirPriceOptimizationMetadataWrapper": {
        "type": "object",
        "title": "AirPriceOptimizationMetadataWrapper",
        "description": "Wrapper for AirPriceOptimizationMetadata.",
        "properties": {
          "airPriceOptimizationMetadata": {
            "$ref": "#/components/schemas/AirPriceOptimizationMetadata"
          }
        }
      },
      "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
          }
        }
      },
      "AirSearchResponse": {
        "title": "AirSearchResponse",
        "type": "object",
        "description": "A list of itineraries with detailed flight information and prices for each.",
        "required": [
          "searchId",
          "itineraryDetails"
        ],
        "properties": {
          "searchId": {
            "type": "string",
            "description": "The unique ID for this search response. This value must be passed on in the subsequent booking API calls.",
            "example": "ChBjZDg3ZjRjZmRmMTFmMWFiEhBjZDg3Z"
          },
          "itineraryDetails": {
            "description": "The list of itineraries in the search response.",
            "$ref": "#/components/schemas/ItineraryInfo"
          },
          "paginationParams": {
            "$ref": "#/components/schemas/PaginationResponseParams"
          },
          "metadata": {
            "$ref": "#/components/schemas/AirMetadata"
          }
        }
      },
      "AirSeatAssignmentType": {
        "type": "string",
        "description": "The type of seat assignment",
        "enum": [
          "AUTO_ASSIGNED"
        ],
        "example": "AUTO_ASSIGNED"
      },
      "AirTravelerCancellationInfo": {
        "type": "object",
        "title": "AirTravelerCancellationInfo",
        "description": "Cancellation information for traveler.",
        "required": [
          "userId",
          "tickets"
        ],
        "properties": {
          "userId": {
            "description": "User ID of traveler.",
            "$ref": "#/components/schemas/UserId"
          },
          "travelerInfo": {
            "description": "Unique identifier for the traveler in this response.",
            "$ref": "#/components/schemas/TravelerInfoResponse"
          },
          "tickets": {
            "type": "array",
            "description": "Cancellation information for traveler tickets.",
            "minItems": 1,
            "items": {
              "$ref": "#/components/schemas/TicketCancellationInfo"
            }
          },
          "cancellationOptions": {
            "type": "array",
            "description": "Cancellation options for this traveler.",
            "minItems": 1,
            "items": {
              "$ref": "#/components/schemas/AirCancellationOption"
            }
          }
        }
      },
      "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/ImageGroupWithType"
            }
          },
          "video": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ImageGroupWithType"
            }
          },
          "tour": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ImageGroupWithType"
            }
          }
        }
      },
      "AirUta": {
        "type": "object",
        "title": "AirUta",
        "oneOf": [
          {
            "$ref": "#/components/schemas/BaggageWrapper"
          },
          {
            "$ref": "#/components/schemas/CancellationPolicy1"
          },
          {
            "$ref": "#/components/schemas/AdvanceChangePolicy"
          },
          {
            "$ref": "#/components/schemas/SameDayChangePolicy"
          },
          {
            "$ref": "#/components/schemas/UpgradeEligibilityPolicy"
          },
          {
            "$ref": "#/components/schemas/CheckInPriorityPolicy"
          },
          {
            "$ref": "#/components/schemas/BoardingPriorityPolicy"
          },
          {
            "$ref": "#/components/schemas/LoungeAccessPolicy"
          },
          {
            "$ref": "#/components/schemas/SeatSelectionPolicy"
          },
          {
            "$ref": "#/components/schemas/SeatTypePolicy"
          },
          {
            "$ref": "#/components/schemas/OverheadBagPolicy"
          },
          {
            "$ref": "#/components/schemas/SecurityPolicy"
          }
        ],
        "properties": {
          "postDepartureExchangePolicy": {
            "$ref": "#/components/schemas/AirPolicy",
            "description": "Post departure exchange policy"
          },
          "postDepartureCancellationPolicy": {
            "$ref": "#/components/schemas/AirPolicy",
            "description": "Post departure cancellation policy"
          },
          "eligibleForPointsUpgradePolicy": {
            "$ref": "#/components/schemas/AirPolicy",
            "description": "Eligibility to request a points-based upgrade with the operating carrier post-booking"
          }
        }
      },
      "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"
          }
        }
      },
      "Airline": {
        "title": "Airline",
        "description": "Airline Details",
        "type": "object",
        "required": [
          "carrierCode",
          "airlineName"
        ],
        "properties": {
          "carrierCode": {
            "type": "string",
            "description": "Unique code for the Airline",
            "example": "AA"
          },
          "airlineName": {
            "type": "string",
            "description": "Full Name of the Airline",
            "example": "American Airlines"
          },
          "isPresentInPreferredVendors": {
            "type": "boolean",
            "description": "Whether the airline is present in preferred vendor list. This is an optional field which gets populated only in the preferred vendor autocomplete API.",
            "example": true
          }
        }
      },
      "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"
          }
        }
      },
      "AirlineProgram": {
        "type": "object",
        "title": "AirlineProgram",
        "description": "Descriptor for Airline program details.",
        "required": [
          "airlineInfo",
          "airlineProgramMetadata"
        ],
        "properties": {
          "airlineInfo": {
            "type": "array",
            "description": "Eligible airlines' information list.",
            "items": {
              "$ref": "#/components/schemas/Airline"
            }
          },
          "airlineProgramMetadata": {
            "description": "Airline program payment specific metadata.",
            "$ref": "#/components/schemas/AirlineProgramMetadata"
          }
        }
      },
      "AirlineProgramMetadata": {
        "type": "object",
        "title": "AirlineProgramMetadata",
        "oneOf": [
          {
            "$ref": "#/components/schemas/UATPMetadataWrapper"
          },
          {
            "$ref": "#/components/schemas/UAPassPlusMetadataWrapper"
          },
          {
            "$ref": "#/components/schemas/DinersTacMetadataWrapper"
          }
        ],
        "x-ignoreBreakingChanges": [
          "AirlineProgramMetadata->DinersTacMetadataWrapper"
        ]
      },
      "AirlineProgramWrapper": {
        "type": "object",
        "title": "AirlineProgramWrapper",
        "description": "Wrapper for AirlineProgram",
        "properties": {
          "airlineProgram": {
            "$ref": "#/components/schemas/AirlineProgram"
          }
        }
      },
      "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"
          }
        }
      },
      "AirportDetail": {
        "title": "AirportDetail",
        "description": "Detailed information about the airport.",
        "type": "object",
        "required": [
          "airportCode",
          "airportName"
        ],
        "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"
          }
        }
      },
      "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"
            }
          }
        }
      },
      "AllowTravelersToRsvp": {
        "title": "AllowTravelersToRsvp",
        "description": "Allow travelers to rsvp for the event",
        "type": "string",
        "enum": [
          "ALLOWED",
          "NOT_ALLOWED"
        ]
      },
      "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"
      },
      "AllowedFopRule": {
        "type": "object",
        "description": "The payment method applicable for the itinerary",
        "properties": {
          "paymentItems": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PaymentItem",
              "description": "List of payment items eligible for associated payment rules."
            }
          },
          "amount": {
            "$ref": "#/components/schemas/Money",
            "description": "Total amount for specified fare components"
          },
          "paymentRules": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PaymentRule",
              "description": "List of payment rules applicable for the itinerary"
            }
          }
        }
      },
      "AmadeusCheckoutMetadata": {
        "type": "object",
        "title": "AmadeusCheckoutMetadata",
        "required": [
          "splitPaymentAllowed"
        ],
        "description": "Metadata for AmadeusCheckout",
        "properties": {
          "paymentPageId": {
            "type": "string",
            "example": "aslkdjalwjd",
            "description": "Payment page Id."
          },
          "splitPaymentAllowed": {
            "type": "boolean",
            "example": true,
            "default": false,
            "description": "True if split payment is allowed in Amadeus Checkout, false otherwise"
          },
          "splitOptionsByCardCompany": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SplitOptionByCardCompany"
            }
          }
        }
      },
      "AmadeusCheckoutMetadataWrapper": {
        "type": "object",
        "title": "AmadeusCheckoutMetadataWrapper",
        "description": "Wrapper for AmadeusCheckoutMetadata",
        "required": [
          "amadeusCheckoutMetadata"
        ],
        "properties": {
          "amadeusCheckoutMetadata": {
            "$ref": "#/components/schemas/AmadeusCheckoutMetadata"
          }
        }
      },
      "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"
          }
        }
      },
      "ApprovalData": {
        "title": "ApprovalData",
        "type": "object",
        "description": "Details about approval",
        "properties": {
          "approvalId": {
            "type": "string",
            "example": "uniqueId",
            "description": "Unique approval Id request"
          },
          "approvers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApproverInfo"
            }
          },
          "approvalStatus": {
            "$ref": "#/components/schemas/ApprovalStatus"
          },
          "approvalVoidDeadline": {
            "$ref": "#/components/schemas/DateTimeOffset"
          },
          "approvalDetail": {
            "$ref": "#/components/schemas/ApprovalDetail"
          }
        }
      },
      "ApprovalDataV2": {
        "title": "ApprovalDataV2",
        "description": "Approval Data",
        "type": "object",
        "properties": {
          "approvalId": {
            "type": "string",
            "description": "Unique ID to identify approval data",
            "format": "uuid",
            "example": "f49d00fe-1eda-4304-ba79-a980f565281d"
          },
          "pnrId": {
            "type": "string",
            "description": "PNR ID",
            "example": 1234567890
          },
          "tripId": {
            "type": "string",
            "description": "Trip ID",
            "example": 1234567890
          },
          "approvalVoidDeadline": {
            "$ref": "#/components/schemas/DateTimeOffset",
            "description": "Deadline at which approval gets void and auto action taken"
          },
          "approvalStatus": {
            "$ref": "#/components/schemas/ApprovalStatusV2",
            "description": "Approval Status"
          },
          "companyId": {
            "$ref": "#/components/schemas/CompanyId",
            "description": "Company ID"
          },
          "outOfPolicy": {
            "type": "boolean",
            "description": "Out of policy indicator",
            "example": true
          },
          "pnrType": {
            "$ref": "#/components/schemas/PnrType",
            "description": "PNR type"
          },
          "approvalType": {
            "$ref": "#/components/schemas/ApprovalType",
            "description": "Approval type applied"
          },
          "approversUserIds": {
            "type": "array",
            "description": "User IDs of assigned approvers",
            "items": {
              "$ref": "#/components/schemas/UserId"
            },
            "deprecated": true,
            "x-sunset": "2026-07-01"
          },
          "approvalProcessedBy": {
            "$ref": "#/components/schemas/UserId",
            "description": "User Id of approval action (approved/denied) taken by"
          },
          "legalEntityId": {
            "$ref": "#/components/schemas/LegalEntityId",
            "description": "The ID of the legal entity."
          },
          "pnrVersion": {
            "type": "integer",
            "format": "int32",
            "description": "Version number associated with the PNR when approval raised"
          },
          "pnrSummary": {
            "$ref": "#/components/schemas/PnrSummary",
            "description": "Corresponding PNR summary object for the approval data"
          },
          "approvers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApproverInfo"
            }
          },
          "basicTripInfo": {
            "$ref": "#/components/schemas/BasicTripInfo",
            "description": "Basic trip info associated with the approval"
          }
        }
      },
      "ApprovalDeadlineDateRangeFilter": {
        "type": "object",
        "title": "ApprovalDeadlineDateRangeFilter",
        "description": "Date range filter for approval deadline for the approval data list request.",
        "required": [
          "filterType"
        ],
        "properties": {
          "filterType": {
            "type": "string",
            "example": "APPROVAL_DEADLINE_DATE_RANGE_FILTER"
          },
          "startDate": {
            "description": "Start date for the date range filter",
            "$ref": "#/components/schemas/DateModel"
          },
          "endDate": {
            "description": "End date for the date range filter",
            "$ref": "#/components/schemas/DateModel"
          }
        }
      },
      "ApprovalDetail": {
        "type": "object",
        "title": "ApprovalDetail",
        "description": "Policy",
        "properties": {
          "originalApprovalType": {
            "$ref": "#/components/schemas/ApprovalType"
          },
          "appliedApprovalType": {
            "$ref": "#/components/schemas/ApprovalType"
          }
        }
      },
      "ApprovalFilterV2": {
        "title": "ApprovalFilterV2",
        "type": "object",
        "description": "Filter parameters for the approval data list request.",
        "discriminator": {
          "propertyName": "filterType",
          "mapping": {
            "APPROVAL_STATUS_FILTER": "#/components/schemas/ApprovalStatusFilterV2",
            "APPROVER_USER_ID_FILTER": "#/components/schemas/ApproverUserIdFilter",
            "APPROVAL_TYPE_FILTER": "#/components/schemas/ApprovalTypeFilter",
            "APPROVAL_DEADLINE_DATE_RANGE_FILTER": "#/components/schemas/ApprovalDeadlineDateRangeFilter",
            "PRIMARY_TRAVELER_ID_FILTER": "#/components/schemas/PrimaryTravelerIdFilter",
            "PNR_TYPE_FILTER": "#/components/schemas/PnrTypeFilterV2",
            "OUT_OF_POLICY_FILTER": "#/components/schemas/OutOfPolicyFilter",
            "TRIP_ID_FILTER": "#/components/schemas/ApprovalTripIdFilter"
          }
        },
        "oneOf": [
          {
            "$ref": "#/components/schemas/ApprovalStatusFilterV2"
          },
          {
            "$ref": "#/components/schemas/ApproverUserIdFilter"
          },
          {
            "$ref": "#/components/schemas/ApprovalTypeFilter"
          },
          {
            "$ref": "#/components/schemas/ApprovalDeadlineDateRangeFilter"
          },
          {
            "$ref": "#/components/schemas/PrimaryTravelerIdFilter"
          },
          {
            "$ref": "#/components/schemas/PnrTypeFilterV2"
          },
          {
            "$ref": "#/components/schemas/OutOfPolicyFilter"
          },
          {
            "$ref": "#/components/schemas/ApprovalTripIdFilter"
          }
        ]
      },
      "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"
          },
          "autoBookStatus": {
            "type": "string",
            "description": "Auto book status of the PNR.",
            "enum": [
              "AUTO_BOOK_STATUS_UNKNOWN",
              "AUTO_BOOK_STATUS_NOT_REQUIRED",
              "AUTO_BOOK_STATUS_REQUESTED",
              "AUTO_BOOK_STATUS_IN_PROGRESS",
              "AUTO_BOOK_STATUS_SUCCESS",
              "AUTO_BOOK_STATUS_FAILED"
            ],
            "example": "AUTO_BOOK_STATUS_UNKNOWN"
          }
        }
      },
      "ApprovalStatus": {
        "type": "string",
        "description": "APPROVAL Status",
        "enum": [
          "APPROVAL_PENDING",
          "APPROVED",
          "DENIED",
          "TIMED_OUT",
          "SOFT_APPROVAL_TIMEOUT"
        ],
        "example": "APPROVED"
      },
      "ApprovalStatusFilterV2": {
        "type": "object",
        "title": "ApprovalStatusFilterV2",
        "description": "Approval status filter for the approval data list request.",
        "required": [
          "filterType",
          "approvalStatuses"
        ],
        "properties": {
          "filterType": {
            "type": "string",
            "example": "APPROVAL_STATUS_FILTER"
          },
          "approvalStatuses": {
            "type": "array",
            "description": "Approval Status list",
            "items": {
              "$ref": "#/components/schemas/ApprovalStatusV2"
            }
          }
        }
      },
      "ApprovalStatusV2": {
        "type": "string",
        "description": "Approval Status",
        "enum": [
          "APPROVAL_PENDING",
          "APPROVED",
          "DENIED",
          "AUTO_APPROVED",
          "AUTO_DENIED"
        ],
        "example": "APPROVED"
      },
      "ApprovalTripIdFilter": {
        "type": "object",
        "title": "ApprovalTripIdFilter",
        "description": "Trip IDs for the approval data list request.",
        "required": [
          "filterType",
          "tripIds"
        ],
        "properties": {
          "filterType": {
            "type": "string",
            "example": "TRIP_ID_FILTER"
          },
          "tripIds": {
            "type": "array",
            "description": "Trip ID list",
            "items": {
              "type": "string",
              "example": "6926658168"
            }
          }
        }
      },
      "ApprovalType": {
        "type": "string",
        "description": "Type of APPROVAL",
        "enum": [
          "HARD_APPROVAL",
          "SOFT_APPROVAL",
          "PASSIVE_APPROVAL",
          "PRE_APPROVAL"
        ],
        "x-ignoreBreakingChanges": [
          "ApprovalType->PRE_APPROVAL"
        ],
        "example": "SOFT_APPROVAL"
      },
      "ApprovalTypeFilter": {
        "type": "object",
        "title": "ApprovalTypeFilter",
        "description": "Approval type filter for the approval data list request.",
        "required": [
          "filterType",
          "approvalTypes"
        ],
        "properties": {
          "filterType": {
            "type": "string",
            "example": "APPROVAL_TYPE_FILTER"
          },
          "approvalTypes": {
            "type": "array",
            "description": "Approval Types",
            "items": {
              "$ref": "#/components/schemas/ApprovalType"
            }
          }
        }
      },
      "ApproverInfo": {
        "type": "object",
        "description": "Info about approver",
        "properties": {
          "basicInfo": {
            "$ref": "#/components/schemas/UserBasicInfo"
          }
        }
      },
      "ApproverUserIdFilter": {
        "type": "object",
        "title": "ApproverUserIdFilter",
        "description": "User IDs to filter approval data list. It is applicable only to company approval data list.",
        "required": [
          "filterType",
          "userIds"
        ],
        "properties": {
          "filterType": {
            "type": "string",
            "example": "APPROVER_USER_ID_FILTER"
          },
          "userIds": {
            "type": "array",
            "description": "List of user IDs",
            "items": {
              "$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"
          }
        }
      },
      "Baggage": {
        "type": "object",
        "title": "Baggage",
        "properties": {
          "checkedBags": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BaggageItem"
            }
          },
          "carryOns": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BaggageItem"
            }
          },
          "personalItems": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BaggageItem"
            }
          }
        }
      },
      "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"
          }
        }
      },
      "BaggageItem": {
        "type": "object",
        "title": "BaggageItem",
        "properties": {
          "policy": {
            "$ref": "#/components/schemas/AirPolicy"
          }
        }
      },
      "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"
            }
          }
        }
      },
      "BaggageWrapper": {
        "type": "object",
        "title": "BaggageWrapper",
        "properties": {
          "baggage": {
            "$ref": "#/components/schemas/Baggage"
          }
        }
      },
      "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"
          },
          "tripLocations": {
            "type": "array",
            "description": "Locations associated with the trip.",
            "items": {
              "$ref": "#/components/schemas/TripLocation"
            }
          }
        }
      },
      "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"
          }
        }
      },
      "BoardingPolicy": {
        "type": "object",
        "description": "Priority boarding information.",
        "required": [
          "description"
        ],
        "properties": {
          "description": {
            "type": "string",
            "description": "Text describing the priority boarding policy.",
            "example": "Priority boarding provided for free"
          }
        }
      },
      "BoardingPriorityPolicy": {
        "type": "object",
        "title": "BoardingPriorityPolicy",
        "properties": {
          "boardingPriorityPolicy": {
            "$ref": "#/components/schemas/AirPolicy"
          }
        }
      },
      "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",
            "x-pii": "IDENTIFIER"
          },
          "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"
                }
              }
            }
          }
        }
      },
      "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",
              "TICKETED",
              "EXCHANGE_TICKETED"
            ],
            "x-ignoreBreakingChanges": [
              "StatusEnum->FINALIZED",
              "StatusEnum->UNFINALIZED",
              "StatusEnum->AIR_SCHEDULE_CHANGE_ACCEPTED",
              "StatusEnum->TICKETED",
              "StatusEnum->EXCHANGE_TICKETED"
            ],
            "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"
            ]
          },
          "inlineQCInfo": {
            "description": "Inline QC information for this booking",
            "$ref": "#/components/schemas/InlineQCInfo"
          }
        }
      },
      "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"
          }
        }
      },
      "BrexBudgetMetadata": {
        "type": "object",
        "title": "BrexBudgetMetadata",
        "description": "Metadata for Brex Budget payment source.",
        "required": [
          "budgetName"
        ],
        "properties": {
          "budgetName": {
            "type": "string",
            "example": "Travel Budget",
            "description": "Budget name."
          },
          "budgetRemainingBalance": {
            "$ref": "#/components/schemas/SimpleMoney",
            "description": "Remaining balance of the budget."
          },
          "cardId": {
            "type": "string",
            "description": "Card id of the budget."
          },
          "budgetRemainingBalanceFormatted": {
            "type": "string",
            "example": "$90,000.00",
            "description": "Remaining balance of the budget formatted with currency."
          },
          "isPersonalCardAllowed": {
            "type": "boolean",
            "description": "Whether the personal card is allowed for the trip."
          },
          "isBudgetMasked": {
            "type": "boolean",
            "description": "Whether the budget is masked."
          }
        }
      },
      "BrexBudgetMetadataWrapper": {
        "type": "object",
        "title": "BrexBudgetMetadataWrapper",
        "description": "Wrapper for BrexBudgetMetadata",
        "required": [
          "brexBudgetMetadata"
        ],
        "properties": {
          "brexBudgetMetadata": {
            "$ref": "#/components/schemas/BrexBudgetMetadata"
          }
        }
      },
      "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"
            }
          }
        }
      },
      "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",
            "x-pii": "SENSITIVE"
          },
          "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",
            "x-pii": "SENSITIVE"
          },
          "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"
            }
          }
        }
      },
      "BuyerSellerInfo": {
        "type": "object",
        "title": "BuyerSellerInfo",
        "description": "Buyer and seller information with an associated type",
        "properties": {
          "type": {
            "type": "string",
            "description": "The type of entity this buyer/seller info is associated with",
            "enum": [
              "PNR"
            ],
            "example": "PNR"
          },
          "buyer": {
            "$ref": "#/components/schemas/BuyerInfo",
            "description": "Buyer details"
          },
          "seller": {
            "$ref": "#/components/schemas/SellerInfo",
            "description": "Seller details"
          }
        }
      },
      "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"
      },
      "CabinViewFareCategory": {
        "type": "string",
        "enum": [
          "UNKNOWN_CABIN_CATEGORY",
          "BASIC",
          "ECONOMY",
          "PREMIUM_ECONOMY",
          "ECONOMY_PLUS",
          "BUSINESS",
          "FIRST"
        ],
        "default": "UNKNOWN_CABIN_CATEGORY"
      },
      "CancelDetail": {
        "title": "CancelDetail",
        "description": "Describe the details associated with cancel PNR.",
        "type": "object",
        "properties": {
          "cancelObjectDetail": {
            "$ref": "#/components/schemas/CancelObjectDetail"
          },
          "refundInfo": {
            "type": "array",
            "description": "List of refund details associated with the cancel object.",
            "items": {
              "$ref": "#/components/schemas/RefundInfoDetail"
            }
          }
        }
      },
      "CancelObjectDetail": {
        "title": "CancelObjectDetail",
        "description": "Details associated with object to be cancel.",
        "type": "object",
        "properties": {
          "cancelObjectType": {
            "type": "string",
            "enum": [
              "PNR",
              "TICKET",
              "JOURNEY"
            ],
            "description": "Type of entity to be cancel.",
            "example": "PNR"
          },
          "cancelObjectId": {
            "type": "string",
            "description": "Unique ID of Cancel Object"
          },
          "vendorCancellationId": {
            "type": "string",
            "description": "Vendor cancellation Id of the supplier."
          }
        }
      },
      "CancellationDetails": {
        "type": "object",
        "title": "CancellationDetails",
        "description": "Cancellation details for this booking",
        "oneOf": [
          {
            "$ref": "#/components/schemas/AirCancellationDetailsWrapper"
          },
          {
            "$ref": "#/components/schemas/RailCancellationDetailsWrapper"
          }
        ]
      },
      "CancellationPolicy1": {
        "type": "object",
        "title": "CancellationPolicy",
        "properties": {
          "cancellationPolicy": {
            "$ref": "#/components/schemas/AirPolicy"
          }
        }
      },
      "CancellationPolicy2": {
        "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
          }
        }
      },
      "CancellationPolicy3": {
        "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"
          },
          "currentlyRefundable": {
            "type": "string",
            "description": "Refundable status that is currently applicable in the hotel timezone.\nFALSE even if it is partially refundable.\n",
            "enum": [
              "TRUE",
              "FALSE"
            ]
          },
          "cancellableStatus": {
            "type": "string",
            "description": "Whether the booking can be cancelled.\nUNSPECIFIED and CANCELLABLE are treated as cancellable.\nSome suppliers (e.g. Premier Inn) block cancellation on non-refundable rates.\n",
            "enum": [
              "CANCELLABLE_STATUS_UNSPECIFIED",
              "CANCELLABLE",
              "NOT_CANCELLABLE"
            ]
          }
        }
      },
      "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/CancellationPolicy3",
            "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",
              "NO_PREPAYMENT"
            ],
            "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"
          },
          "promotionalOffers": {
            "$ref": "#/components/schemas/PromotionalOffers",
            "description": "Car rental promotional offers."
          },
          "arrivalFlightInfo": {
            "$ref": "#/components/schemas/CarArrivalFlightInfo",
            "description": "Arrival flight information for this car reservation."
          },
          "specialEquipmentTypes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CarExtraType"
            },
            "description": "Special equipment types for the car booking if any. For example, child seat, bike rack etc."
          }
        }
      },
      "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
          }
        }
      },
      "CarArrivalFlightInfo": {
        "title": "CarArrivalFlightInfo",
        "description": "Contains arrival flight information for this car reservation.",
        "properties": {
          "airlineCode": {
            "type": "string",
            "description": "Arrival flight airline code.",
            "example": "AA"
          },
          "airlineNumber": {
            "type": "string",
            "description": "Arrival flight number.",
            "example": "100"
          }
        }
      },
      "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"
          }
        }
      },
      "CarExtraType": {
        "type": "string",
        "title": "CarExtraType",
        "description": "Car Extra Types.",
        "enum": [
          "RENTER_AGE",
          "ADDITIONAL_DRIVER",
          "BABY_STROLLER",
          "CHILD_SEAT_BOOSTER",
          "BICYCLE_RACK",
          "CARGO_BARRIER_BACK",
          "CARGO_BARRIER_FRONT",
          "BOOSTER_SEAT_UP_TO_AGE_12",
          "COLLISION_DAMAGE_WAIVER",
          "CHILD_SEAT_UP_TO_AGE_3",
          "CHILD_SEAT_INFANT",
          "SATELLITE_RADIO",
          "CHILD_SEAT_TODDLER",
          "REAR_SEAT_DVD_PLAYER",
          "FLAG_HOLDER",
          "HAND_CONTROL_LEFT",
          "HAND_CONTROL_RIGHT",
          "MOTORCYCLE_HELMET",
          "SECURITY_DEVICES",
          "JERRY_CAN",
          "LOSS_DAMAGE_WAIVER",
          "LUGGAGE_ROOF_CASE",
          "LUGGAGE_TRAILER",
          "LUGGAGE_RACK",
          "NAVIGATIONAL_SYSTEM",
          "NAVIGATIONAL_SYSTEM_BUILT_IN",
          "PERSONAL_ACCIDENT_INSURANCE",
          "MOBILE_PHONE",
          "ROAD_CONGESTION_PAYMENT_SCHEME",
          "SEAT_BELT_EXTENSION",
          "SNOW_BOARD_RACKS",
          "SKI_BOX",
          "SKI_RACK_ONLY",
          "SKI_RACK_OR_BOX",
          "SKI_EQUIPPED_VEHICLE",
          "SNOW_CHAINS",
          "SNOW_PACKS",
          "SNOW_TIRES",
          "SPINNER_KNOB",
          "SURF_RACK",
          "SCOOTER_TOP_CASE",
          "SNOW_WINTER_TIRES",
          "TOLL_PAYMENT_TAG_PASS",
          "SPARE_TIRE",
          "WHEEL_CHAIR_ACCESS_RAMP",
          "WHEEL_CHAIR",
          "WIFI_ACCESS"
        ],
        "example": "CHILD_SEAT_INFANT"
      },
      "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"
          },
          "weeklyOperatingSchedule": {
            "type": "array",
            "description": "Weekly operating schedule of vendor",
            "items": {
              "$ref": "#/components/schemas/WeeklyOperatingSchedule"
            }
          }
        }
      },
      "CarLoyaltyCode": {
        "type": "object",
        "description": "Loyalty code information for car rentals",
        "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"
          }
        }
      },
      "CarPnrSummary": {
        "type": "object",
        "title": "CarPnrSummary",
        "description": "Summary of Car PNR",
        "properties": {
          "vehicleName": {
            "type": "string",
            "description": "Name of vehicle",
            "example": "mercedez"
          },
          "vendor": {
            "$ref": "#/components/schemas/Vendor"
          },
          "totalAmount": {
            "$ref": "#/components/schemas/Money"
          },
          "fromDate": {
            "$ref": "#/components/schemas/DateTimeLocal"
          },
          "toDate": {
            "$ref": "#/components/schemas/DateTimeLocal"
          },
          "pnrStatus": {
            "$ref": "#/components/schemas/PnrStatus"
          },
          "pickupLocation": {
            "$ref": "#/components/schemas/CarLocation"
          },
          "dropOffLocation": {
            "$ref": "#/components/schemas/CarLocation"
          }
        }
      },
      "CarPnrSummaryWrapper": {
        "type": "object",
        "title": "CarPnrSummaryWrapper",
        "properties": {
          "carPnrSummary": {
            "$ref": "#/components/schemas/CarPnrSummary"
          }
        }
      },
      "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": {
              "$ref": "#/components/schemas/CarLoyaltyCode"
            }
          }
        }
      },
      "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",
            "x-pii": "SENSITIVE"
          },
          "address": {
            "description": "Billing address",
            "$ref": "#/components/schemas/PostalAddress",
            "x-pii": "SENSITIVE"
          },
          "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"
      },
      "CardCondition": {
        "type": "object",
        "title": "CardCondition",
        "description": "The card payment source fop condition",
        "required": [
          "type"
        ],
        "properties": {
          "type": {
            "type": "string"
          },
          "cardCompanies": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CardCompany"
            },
            "description": "List of card companies allowed for the payment"
          }
        }
      },
      "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"
          }
        ]
      },
      "CardMetadata": {
        "type": "object",
        "title": "CardMetadata",
        "description": "Metadata for Card payment source.",
        "required": [
          "card"
        ],
        "properties": {
          "card": {
            "$ref": "#/components/schemas/Card"
          }
        }
      },
      "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"
          }
        }
      },
      "CardMetadataWrapper": {
        "type": "object",
        "title": "CardMetadataWrapper",
        "description": "Wrapper for CardMetadata",
        "properties": {
          "cardMetadata": {
            "$ref": "#/components/schemas/CardMetadata"
          }
        }
      },
      "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",
          "PREVIOUS_TOTAL_CHARGE",
          "MISCELLANEOUS_CHARGE",
          "PREPAID_FEE",
          "POSTPAID_FEE"
        ],
        "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"
          }
        }
      },
      "CheckInPolicy": {
        "type": "object",
        "description": "Information about the check-in policy.",
        "required": [
          "description"
        ],
        "properties": {
          "description": {
            "type": "string",
            "description": "Description text for the check-in policy.",
            "example": "Standard check-in priority"
          }
        }
      },
      "CheckInPriorityPolicy": {
        "type": "object",
        "title": "CheckInPriorityPolicy",
        "properties": {
          "checkInPriorityPolicy": {
            "$ref": "#/components/schemas/AirPolicy"
          }
        }
      },
      "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"
      },
      "CoinageRelation": {
        "type": "string",
        "description": "Relationship between the primary currency amount and other coinage in a fare total.",
        "enum": [
          "OR",
          "AND"
        ],
        "example": "AND"
      },
      "Commission": {
        "type": "object",
        "title": "Commission",
        "description": "Commision on rate",
        "required": [
          "amount"
        ],
        "properties": {
          "amount": {
            "$ref": "#/components/schemas/Money",
            "description": "Commission amount"
          },
          "commissionPercent": {
            "type": "number",
            "format": "double",
            "description": "Commission percentage",
            "example": 7.5
          }
        }
      },
      "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"
          }
        }
      },
      "CompanyIdFilter": {
        "type": "object",
        "title": "CompanyIdFilter",
        "description": "Company ids for the list trip summary request.",
        "required": [
          "filterType",
          "companyIds"
        ],
        "properties": {
          "filterType": {
            "type": "string"
          },
          "companyIds": {
            "type": "array",
            "description": "List of company ids",
            "items": {
              "$ref": "#/components/schemas/CompanyId"
            }
          }
        }
      },
      "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"
          }
        }
      },
      "CorporateRateDetail": {
        "type": "object",
        "title": "CorporateRateDetail",
        "description": "Corporate negotiated rate details for a rail fare.",
        "properties": {
          "vendor": {
            "type": "string",
            "description": "Vendor name.",
            "example": "Eurostar"
          },
          "code": {
            "type": "string",
            "description": "Negotiated corporate rate code.",
            "example": "C007NT4"
          }
        }
      },
      "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"
          }
        }
      },
      "CreateAgentNoteRequest": {
        "title": "CreateAgentNoteRequest",
        "description": "Request for creating a new agent note.",
        "type": "object",
        "required": [
          "note"
        ],
        "properties": {
          "pnrId": {
            "type": "string",
            "description": "Pnr ID (optional)",
            "example": "6789533589"
          },
          "note": {
            "type": "string",
            "description": "Note message",
            "example": "An agent task has been created."
          }
        }
      },
      "CreateTripRequest": {
        "type": "object",
        "title": "CreateTripRequest",
        "description": "Request body to create a trip, with either userId or registrarId mandatory.",
        "required": [
          "tripName"
        ],
        "properties": {
          "tripName": {
            "type": "string",
            "description": "Name of the trip."
          },
          "tripDescription": {
            "type": "string",
            "description": "Description of the trip."
          },
          "userId": {
            "$ref": "#/components/schemas/UserId"
          },
          "registrarId": {
            "description": "Creator of the Trip.",
            "$ref": "#/components/schemas/UserId"
          },
          "startDate": {
            "description": "Start date of the trip if known.",
            "$ref": "#/components/schemas/DateModel"
          },
          "endDate": {
            "description": "End date of the trip if known.",
            "$ref": "#/components/schemas/DateModel"
          }
        }
      },
      "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"
          }
        }
      },
      "CustomFieldId": {
        "type": "object",
        "title": "CustomFieldId",
        "description": "The custom field type and the id associated with it.",
        "required": [
          "type",
          "externalId"
        ],
        "properties": {
          "type": {
            "$ref": "#/components/schemas/CustomFieldType"
          },
          "externalId": {
            "type": "string",
            "description": "Meeting id or budget id based on custom field type."
          }
        }
      },
      "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"
            }
          }
        }
      },
      "CustomPaymentMethodMetadata": {
        "type": "object",
        "title": "CustomPaymentMethodMetadata",
        "description": "Metadata for Custom Payment Method payment source.",
        "oneOf": [
          {
            "$ref": "#/components/schemas/BrexBudgetMetadataWrapper"
          },
          {
            "$ref": "#/components/schemas/AmadeusCheckoutMetadataWrapper"
          },
          {
            "$ref": "#/components/schemas/QantasTravelFundMetadataWrapper"
          },
          {
            "$ref": "#/components/schemas/VirtualPaymentMetadataWrapper"
          },
          {
            "$ref": "#/components/schemas/FlightPassWrapper"
          },
          {
            "$ref": "#/components/schemas/NoPrepaymentWrapper"
          }
        ],
        "x-ignoreBreakingChanges": [
          "CustomPaymentMethodMetadata->NoPrepaymentWrapper"
        ]
      },
      "CustomPaymentMethodMetadataWrapper": {
        "type": "object",
        "title": "CustomPaymentMethodMetadataWrapper",
        "description": "Wrapper for CustomPaymentMethodMetadata",
        "properties": {
          "customPaymentMethodMetadata": {
            "$ref": "#/components/schemas/CustomPaymentMethodMetadata"
          }
        }
      },
      "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"
          }
        }
      },
      "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"
      },
      "DeleteTripRequest": {
        "type": "object",
        "properties": {
          "allowEmptyTripDeletionOnly": {
            "type": "boolean",
            "default": false,
            "description": "If true, only allows deletion of empty trips (trips with no PNRs).\nIf false (default), allows deletion regardless of PNRs.\n"
          }
        }
      },
      "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
          }
        }
      },
      "DinersTacMetadata": {
        "type": "object",
        "title": "DinersTacMetadata",
        "description": "Details for Diners TAC Metadata.",
        "required": [
          "card"
        ],
        "properties": {
          "card": {
            "$ref": "#/components/schemas/Card"
          }
        }
      },
      "DinersTacMetadataWrapper": {
        "type": "object",
        "title": "DinersTacMetadataWrapper",
        "description": "Wrapper for DinersTac Metadata.",
        "properties": {
          "dinersTacMetadata": {
            "$ref": "#/components/schemas/DinersTacMetadata"
          }
        }
      },
      "DirectBilling": {
        "type": "object",
        "title": "DirectBilling",
        "description": "Descriptor for direct billing details.",
        "properties": {
          "directBillingCode": {
            "type": "string",
            "description": "Direct billing code provided by the vendor."
          },
          "corporateDiscountCode": {
            "type": "string",
            "deprecated": true,
            "x-sunset": "2026-07-01",
            "description": "Corporate discount code provided by the vendor."
          },
          "label": {
            "type": "string",
            "description": "Label for the Direct Billing Payment method."
          }
        }
      },
      "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"
          }
        }
      },
      "DirectBillingWrapper": {
        "type": "object",
        "title": "DirectBillingWrapper",
        "description": "Wrapper for DirectBilling",
        "properties": {
          "directBilling": {
            "$ref": "#/components/schemas/DirectBilling"
          }
        }
      },
      "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"
          }
        }
      },
      "DownloadInvoiceResponse": {
        "title": "DownloadInvoiceResponse",
        "type": "object",
        "description": "Invoice of trip in PDF format",
        "properties": {
          "data": {
            "type": "string",
            "format": "byte",
            "example": "6935813e12584abda0e43d71cd2ea260"
          }
        }
      },
      "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",
            "x-pii": "SENSITIVE"
          },
          "email": {
            "type": "string",
            "description": "Email address of contact.",
            "format": "email",
            "example": "emergency-contact@email.com",
            "x-pii": "IDENTIFIER"
          },
          "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.",
            "x-pii": "IDENTIFIER",
            "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",
            "x-pii": "SENSITIVE"
          },
          "designation": {
            "type": "string",
            "example": "MANAGER"
          },
          "email": {
            "type": "string",
            "format": "email",
            "example": "emergency-contact@email.com",
            "x-pii": "IDENTIFIER"
          },
          "name": {
            "$ref": "#/components/schemas/Name"
          },
          "phoneNumber": {
            "$ref": "#/components/schemas/PhoneNumber",
            "x-pii": "IDENTIFIER"
          },
          "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"
          }
        ]
      },
      "EntityNonUUIDId": {
        "type": "object",
        "description": "Identifier of a non uuid object",
        "properties": {
          "id": {
            "type": "string"
          }
        }
      },
      "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"
          }
        }
      },
      "ErrorParameter": {
        "type": "object",
        "title": "ErrorParameter",
        "description": "Error parameter",
        "properties": {
          "name": {
            "type": "string",
            "description": "Parameter name"
          },
          "value": {
            "type": "string",
            "description": "Parameter value"
          }
        }
      },
      "ErrorResponse": {
        "type": "object",
        "properties": {
          "debugIdentifier": {
            "type": "string",
            "description": "Link to debug the error internally."
          },
          "errorMessages": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "errorCode": {
                  "type": "string",
                  "description": "Error code to identify the specific errors."
                },
                "message": {
                  "type": "string",
                  "description": "Message containing details of error."
                },
                "errorParameters": {
                  "type": "array",
                  "description": "Error message parameters.",
                  "items": {
                    "$ref": "#/components/schemas/ErrorParameter"
                  }
                },
                "errorDetail": {
                  "type": "string",
                  "description": "More details about the error."
                }
              }
            }
          }
        }
      },
      "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
          }
        }
      },
      "EventBookingStyle": {
        "title": "EventBookingStyle",
        "description": "The booking style for the event's participants.",
        "type": "string",
        "enum": [
          "SELF_SERVE",
          "AGENT_MANAGED"
        ],
        "example": "SELF_SERVE"
      },
      "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"
          }
        }
      },
      "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",
            "x-pii": "IDENTIFIER"
          },
          "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"
          }
        }
      },
      "ExchangePayment": {
        "title": "ExchangePayment",
        "type": "object",
        "description": "In case of exchange, payment accounted to the original ticket.",
        "required": [
          "originalTicketNumber"
        ],
        "properties": {
          "originalTicketNumber": {
            "description": "Ticket number which was exchanged to pay for current ticket.",
            "type": "string",
            "example": "00129332929"
          }
        }
      },
      "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
          }
        }
      },
      "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"
            }
          }
        }
      },
      "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"
          }
        }
      },
      "FareAttributes": {
        "type": "object",
        "description": "The rules and attributes related to the fare.",
        "properties": {
          "isVoidable": {
            "type": "boolean",
            "description": "Designates whether the fare is voidable or not."
          },
          "holdDeadline": {
            "description": "Designates the dateTime until which the fare will be held (when a traveler places a hold on the fare).",
            "$ref": "#/components/schemas/DateTimeLocal"
          },
          "isNonVerifiedExchangeOffer": {
            "type": "boolean",
            "description": "Designates whether the fare is a non-verified exchange offer. For these fares, the \nexchange price guarantee is not provided by the supplier.\n"
          }
        }
      },
      "FareCategory": {
        "type": "object",
        "properties": {
          "ngsCategory": {
            "$ref": "#/components/schemas/NGSFareCategory"
          },
          "cabinViewCategory": {
            "$ref": "#/components/schemas/CabinViewFareCategory"
          }
        }
      },
      "FareComponent": {
        "type": "string",
        "description": "Fare component eligible for this fop rule",
        "enum": [
          "BASE",
          "TAX"
        ],
        "example": "BASE"
      },
      "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"
          }
        }
      },
      "FareInfo": {
        "title": "FareInfo",
        "description": "The detailed information about the fare (including tax and merchant fee details).",
        "required": [
          "totalFare"
        ],
        "properties": {
          "totalFare": {
            "description": "Total fare applicable to the associated entity.",
            "$ref": "#/components/schemas/FareAmount"
          },
          "taxBreakdown": {
            "description": "Details about of the tax amount in totalFare field.",
            "$ref": "#/components/schemas/TaxBreakdown"
          },
          "merchantFeeInfo": {
            "$ref": "#/components/schemas/MerchantFeeInfo"
          }
        }
      },
      "FareMetadata": {
        "description": "Metadata about pax fare",
        "properties": {
          "corpAccountCode": {
            "type": "string",
            "description": "The corp account code for each pax.",
            "example": "6CA4"
          }
        }
      },
      "FarePref": {
        "type": "object",
        "title": "FarePref",
        "description": "Fare preferences.",
        "required": [
          "fareTypes"
        ],
        "properties": {
          "fareTypes": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "UNKNOWN_TYPE",
                "CHANGEABLE",
                "REFUNDABLE"
              ],
              "example": "CHANGEABLE"
            }
          }
        }
      },
      "FareRules": {
        "type": "object",
        "description": "The rules and restrictions associated with the fare.",
        "properties": {
          "baggagePolicy": {
            "$ref": "#/components/schemas/BaggagePolicy"
          },
          "cancellationPolicy": {
            "$ref": "#/components/schemas/CancellationPolicy2"
          },
          "postDepartureCancellationPolicy": {
            "description": "Information about the post departure cancellation policy.",
            "$ref": "#/components/schemas/CancellationPolicy2"
          },
          "exchangePolicy": {
            "$ref": "#/components/schemas/ExchangePolicy"
          },
          "postDepartureExchangePolicy": {
            "description": "Information about the post departure exchange policy.",
            "$ref": "#/components/schemas/ExchangePolicy"
          },
          "seatSelectionPolicy": {
            "$ref": "#/components/schemas/SeatSelectionRule"
          },
          "boardingPolicy": {
            "$ref": "#/components/schemas/BoardingPolicy"
          },
          "checkInPolicy": {
            "$ref": "#/components/schemas/CheckInPolicy"
          },
          "loungePolicy": {
            "$ref": "#/components/schemas/LoungePolicy"
          },
          "seatType": {
            "$ref": "#/components/schemas/SeatTypeInfo"
          }
        }
      },
      "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"
            }
          }
        }
      },
      "FareTotal": {
        "type": "object",
        "title": "FareTotal",
        "description": "Computed total for a transaction fare detail with coinage relation.",
        "properties": {
          "coinageRelation": {
            "$ref": "#/components/schemas/CoinageRelation"
          },
          "amount": {
            "$ref": "#/components/schemas/Money",
            "description": "Total amount including other coinage in the Money's otherCoinage field."
          }
        }
      },
      "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"
        }
      },
      "FinalizeIntent": {
        "type": "object",
        "title": "FinalizeIntent",
        "description": "Intent of finalizing Pnr.",
        "oneOf": [
          {
            "$ref": "#/components/schemas/AirPriceOptimizationMetadataWrapper"
          },
          {
            "$ref": "#/components/schemas/ManualVerificationIntentWrapper"
          },
          {
            "$ref": "#/components/schemas/QcFinalizationWrapper"
          }
        ]
      },
      "FinalizeMetadata": {
        "title": "FinalizeRequest",
        "type": "object",
        "description": "Metadata information related to finalize request",
        "properties": {
          "isMandatoryTicketing": {
            "type": "boolean",
            "description": "True for forceful ticketing of PNR."
          },
          "mandatorySkipTicketing": {
            "type": "boolean",
            "description": "Override other params and skip ticketing."
          },
          "suspendReason": {
            "$ref": "#/components/schemas/SuspendReason"
          },
          "taskId": {
            "type": "string",
            "description": "Task Id which needs to be mark completed before finalizing the PNR."
          }
        }
      },
      "FinalizeRequest": {
        "title": "FinalizeRequest",
        "type": "object",
        "description": "Request Object to finalize an existing Manual form or Shell Pnr.",
        "properties": {
          "preBookAnswers": {
            "$ref": "#/components/schemas/PreBookAnswers",
            "deprecated": true,
            "x-sunset": "2026-07-01"
          },
          "finalizeIntent": {
            "$ref": "#/components/schemas/FinalizeIntent"
          },
          "finalizeMetadata": {
            "$ref": "#/components/schemas/FinalizeMetadata"
          },
          "customFieldV3UserResponses": {
            "type": "array",
            "description": "Custom field user responses for the booking.",
            "items": {
              "$ref": "#/components/schemas/CustomFieldV3Response"
            }
          }
        }
      },
      "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"
            }
          },
          "utaIndices": {
            "type": "array",
            "description": "Indices into the Air.utas array for this flight's UTAs",
            "items": {
              "type": "integer",
              "format": "int32",
              "minimum": 0
            }
          }
        }
      },
      "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
          }
        }
      },
      "FlightAttribute": {
        "type": "object",
        "title": "FlightAttribute",
        "description": "Information about flight product attributes such as marketing descriptions and images for superior retailing\nexperience.\n",
        "properties": {
          "description": {
            "type": "string",
            "description": "Marketing description and images associated with the flight attribute.",
            "example": "A fully flat bed"
          },
          "categories": {
            "type": "array",
            "description": "List of categories in which this flight attribute falls into",
            "items": {
              "$ref": "#/components/schemas/FlightAttributeCategory"
            }
          },
          "photos": {
            "type": "array",
            "description": "List of images associated with the flight attribute.",
            "items": {
              "$ref": "#/components/schemas/ImageGroup"
            }
          }
        }
      },
      "FlightAttributeCategory": {
        "type": "string",
        "enum": [
          "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"
      },
      "FlightCommon": {
        "title": "FlightCommon",
        "description": "Basic information about the flight.",
        "type": "object",
        "required": [
          "departureDateTime",
          "arrivalDateTime",
          "origin",
          "destination",
          "marketing",
          "operating"
        ],
        "properties": {
          "flightRef": {
            "type": "string",
            "description": "Unique ID for this flight in the response.",
            "example": "flight_3"
          },
          "departureDateTime": {
            "description": "Departure date and time of the flight.",
            "$ref": "#/components/schemas/DateTimeLocal"
          },
          "arrivalDateTime": {
            "description": "Arrival date and time of the flight.",
            "$ref": "#/components/schemas/DateTimeLocal"
          },
          "origin": {
            "description": "The airport from which the flight departs (origin).",
            "$ref": "#/components/schemas/AirportInfo"
          },
          "destination": {
            "description": "The airport at which the flight arrives (destination).",
            "$ref": "#/components/schemas/AirportInfo"
          },
          "departureGate": {
            "description": "Departure gate and terminal.",
            "$ref": "#/components/schemas/GateInfo"
          },
          "arrivalGate": {
            "description": "Arrival gate and terminal.",
            "$ref": "#/components/schemas/GateInfo"
          },
          "marketing": {
            "description": "Marketing flight number.",
            "$ref": "#/components/schemas/FlightNumber"
          },
          "operating": {
            "description": "Operating flight number (for the airline which actually operates the flight).",
            "$ref": "#/components/schemas/FlightNumber"
          },
          "operationalDisclosure": {
            "type": "string",
            "description": "Operating airline name that has to be displayed to the user",
            "example": "SKYWEST DBA UNITED EXPRESS"
          },
          "hiddenStops": {
            "type": "array",
            "description": "Any stops for refueling or boarding additional passengers.",
            "items": {
              "type": "object",
              "title": "FlightHiddenStop",
              "required": [
                "airport",
                "arrivalDateTime",
                "departureDateTime"
              ],
              "properties": {
                "airport": {
                  "description": "The airport where the flight will make a stop (not a traditional layover stop).",
                  "$ref": "#/components/schemas/AirportInfo"
                },
                "arrivalDateTime": {
                  "description": "The start date and time for the stop.",
                  "$ref": "#/components/schemas/DateTimeLocal"
                },
                "departureDateTime": {
                  "description": "The end date and time for the stop.",
                  "$ref": "#/components/schemas/DateTimeLocal"
                }
              }
            }
          },
          "duration": {
            "description": "The duration of the flight (travel time).",
            "$ref": "#/components/schemas/Duration"
          },
          "equipment": {
            "description": "The equipment or aircraft type used for the flight",
            "$ref": "#/components/schemas/Equipment"
          }
        }
      },
      "FlightCommonWrapper": {
        "title": "FlightCommonWrapper",
        "description": "Wrapper of FlightCommon data to be used in oneOf.",
        "properties": {
          "flightData": {
            "$ref": "#/components/schemas/FlightCommon"
          }
        }
      },
      "FlightCredits": {
        "type": "object",
        "title": "FlightCredits",
        "description": "Flight credits for a traveler.",
        "required": [
          "totalCreditAmount",
          "changePenalty",
          "netCreditAmount"
        ],
        "properties": {
          "totalCreditAmount": {
            "description": "Amount of flight credits.",
            "$ref": "#/components/schemas/FareAmount"
          },
          "changePenalty": {
            "description": "Change penalty applicable for using this credit.",
            "$ref": "#/components/schemas/FareAmount"
          },
          "netCreditAmount": {
            "description": "Net credit amount (total credit amount - change penalty)",
            "$ref": "#/components/schemas/FareAmount"
          }
        }
      },
      "FlightData": {
        "type": "object",
        "title": "FlightData",
        "oneOf": [
          {
            "$ref": "#/components/schemas/FlightRefWrapper"
          },
          {
            "$ref": "#/components/schemas/FlightCommonWrapper"
          }
        ]
      },
      "FlightDetail": {
        "type": "object",
        "description": "Describes the details of a flight segment (including the origin, destination, cabin, etc).",
        "required": [
          "id",
          "cabin"
        ],
        "properties": {
          "id": {
            "type": "string",
            "description": "The unique ID for this flight in the itinerary.",
            "example": "flight_0"
          },
          "flightData": {
            "$ref": "#/components/schemas/FlightData"
          },
          "cabin": {
            "description": "The cabin type for this flight in the associated itinerary",
            "$ref": "#/components/schemas/Cabin"
          },
          "bookingCode": {
            "type": "string",
            "description": "The airline's one-letter code for the associated fare",
            "example": "B"
          },
          "seatAvailability": {
            "type": "integer",
            "format": "int32",
            "description": "The availability of seats on this flight",
            "example": 9
          },
          "corpAccountCode": {
            "type": "string",
            "description": "The account code is used to get corporate negotiated price",
            "example": "DFG"
          },
          "carbonEmission": {
            "description": "The CO2 emission details for this flight",
            "$ref": "#/components/schemas/CO2EmissionDetail"
          },
          "amenities": {
            "description": "The amenities associated with the flight.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AirAmenity"
            }
          },
          "flightAttributes": {
            "description": "The set of product attributes associated with the flight.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FlightAttribute"
            }
          },
          "fareBasisCode": {
            "description": "The fare basis code contains information about the fare.",
            "type": "string",
            "example": "QUAJZNB3"
          }
        }
      },
      "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"
          }
        }
      },
      "FlightPassMetadata": {
        "type": "object",
        "title": "FlightPassMetadata",
        "required": [
          "label"
        ],
        "description": "Metadata for FlightPass payment source.",
        "properties": {
          "label": {
            "type": "string",
            "example": "Air Canada Flight Pass",
            "description": "Label for FlightPass payment source."
          }
        }
      },
      "FlightPassPaymentAmounts": {
        "type": "object",
        "title": "FlightPassPaymentAmounts",
        "description": "Fare breakdown for the flight pass booking.",
        "properties": {
          "totalAmount": {
            "description": "Total value (base + taxes).",
            "$ref": "#/components/schemas/Money"
          },
          "baseAmount": {
            "description": "Base fare excluding taxes.",
            "$ref": "#/components/schemas/Money"
          },
          "totalTaxes": {
            "description": "Sum of all taxes, fees, and charges.",
            "$ref": "#/components/schemas/Money"
          },
          "taxBreakdown": {
            "type": "array",
            "description": "Breakdown of taxes by code (e.g. GST_HST, QST, OTHER).",
            "items": {
              "$ref": "#/components/schemas/FlightPassTax"
            }
          }
        }
      },
      "FlightPassPaymentMetadata": {
        "type": "object",
        "title": "FlightPassPaymentMetadata",
        "description": "Metadata specific to Flight Pass payment method in OtherCoinage.",
        "properties": {
          "flightPassNumber": {
            "type": "string",
            "description": "Flight pass number",
            "example": "FP123456789"
          },
          "flightPassAmounts": {
            "$ref": "#/components/schemas/FlightPassPaymentAmounts"
          }
        }
      },
      "FlightPassPaymentMetadataWrapper": {
        "type": "object",
        "title": "FlightPassPaymentMetadataWrapper",
        "description": "Wrapper for Flight Pass payment metadata.",
        "required": [
          "flightPassMetadata"
        ],
        "properties": {
          "metadataType": {
            "type": "string",
            "description": "Discriminator field for polymorphic deserialization",
            "example": "FlightPassPaymentMetadata",
            "default": "FlightPassPaymentMetadata"
          },
          "flightPassMetadata": {
            "$ref": "#/components/schemas/FlightPassPaymentMetadata"
          }
        }
      },
      "FlightPassTax": {
        "type": "object",
        "title": "FlightPassTax",
        "description": "A single tax component of the flight pass fare.",
        "properties": {
          "code": {
            "type": "string",
            "description": "Tax code identifier (e.g. GST_HST, QST, OTHER).",
            "example": "GST_HST"
          },
          "amount": {
            "description": "Tax amount.",
            "$ref": "#/components/schemas/Money"
          }
        }
      },
      "FlightPassWrapper": {
        "type": "object",
        "title": "FlightPassWrapper",
        "description": "Wrapper for Flight Pass Payment Source.",
        "required": [
          "flightPassMetadata"
        ],
        "properties": {
          "flightPassMetadata": {
            "$ref": "#/components/schemas/FlightPassMetadata"
          }
        }
      },
      "FlightRef": {
        "title": "FlightRef",
        "description": "Flight reference information.",
        "type": "object",
        "required": [
          "flightRef"
        ],
        "properties": {
          "flightRef": {
            "type": "string",
            "description": "Points to the detailed flight information in auxiliary flight data fields. flightRef is present in\nFlightCommon. As a result, FlightRef can be used to point to the FlightCommon object.\n",
            "example": "flight_3"
          }
        }
      },
      "FlightRefWrapper": {
        "title": "FlightRefWrapper",
        "description": "Wrapper of flight reference to be used in oneOf.",
        "properties": {
          "flightRef": {
            "$ref": "#/components/schemas/FlightRef"
          }
        }
      },
      "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"
      },
      "FlightSummary": {
        "title": "FlightSummary",
        "description": "Summary of flight",
        "type": "object",
        "properties": {
          "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"
          },
          "departureDateTime": {
            "description": "Departure date time of flight",
            "$ref": "#/components/schemas/DateTimeLocal"
          },
          "arrivalDateTime": {
            "description": "Arrival date time of flight",
            "$ref": "#/components/schemas/DateTimeLocal"
          },
          "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"
          },
          "cabin": {
            "$ref": "#/components/schemas/Cabin",
            "description": "Flight cabin"
          }
        }
      },
      "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"
          },
          "baggageBelt": {
            "type": "string",
            "description": "Baggage belt / claim carousel number for arrival (from FlightStats)",
            "example": "7"
          }
        }
      },
      "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"
          }
        }
      },
      "GateInfo": {
        "type": "object",
        "title": "GateInfo",
        "description": "Information about the flight's departure / arrival gates and terminals.",
        "properties": {
          "gate": {
            "type": "string",
            "description": "Gate number",
            "example": "1A"
          },
          "terminal": {
            "type": "string",
            "description": "Airport terminal",
            "example": "1"
          }
        }
      },
      "GatewayInfo": {
        "type": "object",
        "title": "GatewayInfo",
        "description": "Payment gateway information",
        "oneOf": [
          {
            "$ref": "#/components/schemas/StripeInfoWrapper"
          }
        ]
      },
      "Gender": {
        "title": "Gender",
        "type": "string",
        "x-pii": "SENSITIVE",
        "enum": [
          "MALE",
          "FEMALE",
          "UNSPECIFIED",
          "UNDISCLOSED",
          "GENDER_REDACTED"
        ],
        "example": "FEMALE"
      },
      "GetApprovalDataV3Request": {
        "title": "GetApprovalDataV3Request",
        "description": "Request to get Approval Data summaries for a user",
        "type": "object",
        "properties": {
          "paginationRequestParams": {
            "$ref": "#/components/schemas/OffsetBasedPaginationRequestParams"
          },
          "includePnrSummaries": {
            "type": "boolean",
            "description": "Boolean flag to include PNR summaries in the response",
            "example": true
          },
          "approvalFilters": {
            "type": "array",
            "description": "Filter for the approval data list request.",
            "items": {
              "$ref": "#/components/schemas/ApprovalFilterV2"
            }
          }
        }
      },
      "GetApprovalDataV3Response": {
        "title": "GetApprovalDataV3Response",
        "description": "Response to approval data list request",
        "type": "object",
        "required": [
          "paginationResponseParams"
        ],
        "properties": {
          "paginationResponseParams": {
            "$ref": "#/components/schemas/OffsetBasedPaginationResponseParams"
          },
          "approvalDataList": {
            "type": "array",
            "description": "List of Approval Data",
            "items": {
              "$ref": "#/components/schemas/ApprovalDataV2"
            }
          }
        }
      },
      "GetTripSummariesV3Request": {
        "title": "GetUserTripSummariesRequest",
        "description": "Request to get Trip summaries for a user",
        "type": "object",
        "required": [
          "paginationRequestParams"
        ],
        "properties": {
          "paginationRequestParams": {
            "$ref": "#/components/schemas/OffsetBasedPaginationRequestParams"
          },
          "includePnrSummaries": {
            "type": "boolean",
            "description": "Boolean flag to include PNR summaries in the response",
            "example": true
          },
          "tripFilters": {
            "type": "array",
            "description": "Filter for the list trip summary request.",
            "items": {
              "$ref": "#/components/schemas/TripFilters"
            }
          },
          "sortOptions": {
            "type": "array",
            "description": "Sort options for the list trip summary request",
            "items": {
              "$ref": "#/components/schemas/TripSortOptions"
            }
          }
        }
      },
      "GetTripSummariesV3Response": {
        "title": "GetUserTripSummariesResponse",
        "description": "Response to get Trip summaries for a user",
        "type": "object",
        "required": [
          "paginationResponseParams"
        ],
        "properties": {
          "paginationResponseParams": {
            "$ref": "#/components/schemas/OffsetBasedPaginationResponseParams"
          },
          "tripSummaries": {
            "type": "array",
            "description": "List of Trip summaries",
            "items": {
              "$ref": "#/components/schemas/TripSummary"
            }
          },
          "failedTripSummaries": {
            "type": "array",
            "description": "List of Trip summaries",
            "items": {
              "$ref": "#/components/schemas/TripSummary"
            }
          }
        }
      },
      "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."
          },
          "totalRate": {
            "$ref": "#/components/schemas/HotelRoomRate",
            "description": "Total rate breakdown of the ancillary service.",
            "x-requiredFrom": "2026-03-31"
          },
          "prepaidRate": {
            "$ref": "#/components/schemas/HotelRoomRate",
            "description": "Prepaid rate breakdown of the ancillary service."
          },
          "postpaidRate": {
            "$ref": "#/components/schemas/HotelRoomRate",
            "description": "Postpaid rate breakdown of the ancillary service."
          },
          "status": {
            "type": "string",
            "enum": [
              "ANCILLARY_STATUS_UNKNOWN",
              "ACTIVE",
              "CANCELLED",
              "MODIFIED"
            ],
            "description": "Status of the ancillary service.",
            "x-requiredFrom": "2026-03-31"
          }
        }
      },
      "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"
          },
          "ancillaryCategory": {
            "type": "string",
            "description": "Category of the hotel ancillary (only set for ancillary transactions).",
            "enum": [
              "ANCILLARY_UNKNOWN",
              "EARLY_CHECKIN",
              "LATE_CHECKOUT",
              "WIFI",
              "BREAKFAST",
              "PARKING",
              "PETS",
              "MEAL_PLAN",
              "OTHER"
            ]
          },
          "ancillaryDisplayName": {
            "type": "string",
            "description": "Display name of the ancillary (only set for ancillary transactions)."
          }
        }
      },
      "HotelItemNameMetadata": {
        "title": "HotelItemNameMetadata",
        "type": "object",
        "description": "HotelItemNameMetadata information.",
        "required": [
          "pnrType"
        ],
        "properties": {
          "pnrType": {
            "type": "string",
            "example": "HOTEL"
          },
          "hotelName": {
            "description": "Name of the hotel.",
            "type": "string",
            "example": "Hilton"
          },
          "hotelCity": {
            "description": "City of the hotel.",
            "type": "string",
            "example": "New York"
          },
          "checkInDate": {
            "description": "Check in date.",
            "$ref": "#/components/schemas/DateModel"
          },
          "nights": {
            "description": "Number of nights.",
            "type": "string",
            "example": "2 Nights"
          }
        }
      },
      "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
          }
        }
      },
      "HotelPnrSummary": {
        "type": "object",
        "title": "HotelPnrSummary",
        "description": "Summary of Hotel PNR",
        "properties": {
          "name": {
            "type": "string",
            "description": "Name of hotel",
            "example": "Marriot"
          },
          "city": {
            "type": "string",
            "description": "Name of city",
            "example": "Bangalore"
          },
          "totalAmount": {
            "$ref": "#/components/schemas/Money"
          },
          "fromDate": {
            "$ref": "#/components/schemas/DateTimeLocal"
          },
          "toDate": {
            "$ref": "#/components/schemas/DateTimeLocal"
          },
          "pnrStatus": {
            "$ref": "#/components/schemas/PnrStatus"
          },
          "address": {
            "$ref": "#/components/schemas/PostalAddress"
          }
        }
      },
      "HotelPnrSummaryWrapper": {
        "type": "object",
        "title": "HotelPnrSummaryWrapper",
        "properties": {
          "hotelPnrSummary": {
            "$ref": "#/components/schemas/HotelPnrSummary"
          }
        }
      },
      "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"
      },
      "HotelRoomRate": {
        "type": "object",
        "title": "HotelRoomRate",
        "description": "Rate details for hotel room",
        "required": [
          "base",
          "tax"
        ],
        "properties": {
          "base": {
            "$ref": "#/components/schemas/Money",
            "description": "Base amount"
          },
          "tax": {
            "$ref": "#/components/schemas/Money",
            "description": "Tax"
          },
          "roomFees": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RoomFee"
            }
          },
          "commission": {
            "$ref": "#/components/schemas/Commission",
            "description": "Commission"
          },
          "taxBreakdown": {
            "$ref": "#/components/schemas/TaxBreakdown",
            "description": "Tax breakdown"
          },
          "includesCommission": {
            "type": "boolean",
            "description": "Whether the rate includes commission",
            "example": false
          }
        }
      },
      "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"
            }
          }
        }
      },
      "ImageGroupWithType": {
        "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/ImageWithType"
            }
          }
        }
      },
      "ImageType": {
        "type": "string",
        "description": "Type of image content.",
        "enum": [
          "EMBED"
        ]
      },
      "ImageWithType": {
        "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"
          },
          "type": {
            "$ref": "#/components/schemas/ImageType"
          }
        }
      },
      "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",
            "x-pii": "IDENTIFIER"
          },
          "expiryDate": {
            "description": "The date on which the immigration document expires.",
            "$ref": "#/components/schemas/DateModel",
            "x-pii": "SENSITIVE"
          },
          "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",
            "x-pii": "SENSITIVE"
          },
          "nationalityCountry": {
            "type": "string",
            "example": "IN",
            "x-pii": "SENSITIVE"
          },
          "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"
      },
      "IncompleteTransactionReason": {
        "type": "string",
        "title": "IncompleteTransactionReason",
        "description": "Reason the underlying booking is incomplete (e.g. SYS_TICKET). Present on an item group to explain why paymentDetails / amounts on the transaction may be empty. Generic across product types; only air tickets populate it today.",
        "enum": [
          "SYS_TICKET",
          "MISSING_MARKUP_INFO",
          "DISABLED_PCC",
          "MISSING_REFUND_INFO"
        ],
        "example": "SYS_TICKET"
      },
      "InlineQCInfo": {
        "description": "A list of failed inline QC rules",
        "type": "array",
        "items": {
          "$ref": "#/components/schemas/QcRuleType"
        }
      },
      "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"
            }
          }
        }
      },
      "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
          }
        }
      },
      "Invoice": {
        "type": "object",
        "title": "Invoice",
        "description": "Invoice Data for single invoice",
        "required": [
          "invoiceNumber",
          "invoiceId",
          "data"
        ],
        "properties": {
          "invoiceNumber": {
            "description": "The invoice number",
            "type": "string",
            "example": "SPOT-0001232"
          },
          "invoiceId": {
            "description": "The invoice ID",
            "type": "string",
            "example": "d694cf94-534e-410e-b66b-11ef970622bc"
          },
          "data": {
            "description": "The invoice content",
            "$ref": "#/components/schemas/InvoiceData"
          }
        }
      },
      "InvoiceData": {
        "type": "object",
        "title": "InvoiceData",
        "description": "Actual Data",
        "required": [
          "issuedDate",
          "seller",
          "buyer",
          "items",
          "payments",
          "productId",
          "productType",
          "referenceIds",
          "invoiceAmount"
        ],
        "properties": {
          "issuedDate": {
            "description": "Date of invoice issue",
            "$ref": "#/components/schemas/DateModel"
          },
          "seller": {
            "description": "Entity that sold the items mentioned in the invoice.",
            "$ref": "#/components/schemas/SellerInfo"
          },
          "buyer": {
            "description": "Buyer of items mentioned in the invoice.",
            "$ref": "#/components/schemas/BuyerInfo"
          },
          "items": {
            "description": "Items being invoiced.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Item"
            }
          },
          "payments": {
            "description": "Information on how the items have been paid for.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PaymentInformation"
            }
          },
          "productId": {
            "description": "ID of the product being invoiced",
            "type": "string",
            "example": "123243223"
          },
          "productType": {
            "description": "Type of product for which invoice is generated.",
            "$ref": "#/components/schemas/ProductType"
          },
          "invoiceAmount": {
            "description": "Total invoice amount.",
            "$ref": "#/components/schemas/FareAmount"
          },
          "taxBreakdown": {
            "description": "Tax breakdown for the invoice, this will be present for UK invoices with VAT",
            "$ref": "#/components/schemas/TaxBreakdown"
          },
          "referenceIds": {
            "description": "Reference Numbers to be shown on the invoice, for ex, Trip ID, PNR ID etc.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ReferenceId"
            }
          },
          "regionCode": {
            "description": "The region code for which the invoice is generated.",
            "$ref": "#/components/schemas/RegionCode",
            "example": "US"
          },
          "documentType": {
            "description": "Type of document",
            "type": "string",
            "enum": [
              "INVOICE",
              "RECEIPT",
              "NONE"
            ],
            "example": "INVOICE"
          },
          "footerText": {
            "description": "Text shown at bottom of the PDF document. Nothing is shown if not set.",
            "type": "string",
            "example": "This document is proof of payment. If you require a tax invoice, please request one from the travel provider."
          },
          "supplierType": {
            "description": "SupplierType for PNR, for eg. NDC, Sabre etc.",
            "$ref": "#/components/schemas/ThirdPartySource"
          }
        }
      },
      "InvoiceDataRequest": {
        "type": "object",
        "title": "InvoiceDataRequest",
        "description": "Invoice Data Request",
        "required": [
          "invoices"
        ],
        "properties": {
          "tmcId": {
            "deprecated": true,
            "x-sunset": "2026-07-01",
            "description": "TMC for which invoice is being requested. Deprecated in favor of invoiceIds.",
            "type": "string",
            "example": "15c94ac1-f540-4916-9243-306a75fbd8a9"
          },
          "invoiceNumbers": {
            "deprecated": true,
            "x-sunset": "2026-07-01",
            "description": "One or more invoice numbers being requested. Deprecated in favor of invoiceIds.",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "invoiceIds": {
            "description": "One or more Invoice IDs being requested",
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid",
              "example": "15c94ac1-f540-4916-9243-306a75fbd8a9"
            }
          }
        }
      },
      "InvoiceDataResponse": {
        "type": "object",
        "title": "InvoiceDataResponse",
        "description": "Invoice Data List",
        "required": [
          "invoices"
        ],
        "properties": {
          "invoices": {
            "description": "List of invoices which were requested.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Invoice"
            }
          }
        }
      },
      "InvoiceDocumentType": {
        "title": "InvoiceDocumentType",
        "description": "Type of document generated for an invoice.",
        "type": "string",
        "enum": [
          "INVOICE",
          "RECEIPT"
        ],
        "example": "INVOICE"
      },
      "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"
          },
          "isRefunded": {
            "type": "boolean",
            "description": "Whether the transaction amount represents a refund."
          },
          "transactionFareDetail": {
            "$ref": "#/components/schemas/TransactionFareDetail",
            "description": "Aggregated transaction fare detail across all transactions for this invoice."
          }
        }
      },
      "Item": {
        "type": "object",
        "title": "Item",
        "description": "Item being invoiced.",
        "required": [
          "name",
          "identifier",
          "type",
          "amount",
          "travelerName",
          "purchaseType"
        ],
        "properties": {
          "name": {
            "description": "Name of the item.",
            "type": "string",
            "example": "Air Ticket SFO-EWR"
          },
          "identifier": {
            "description": "Number identifying the item, for ex, the ticket number for air ticket.",
            "type": "string",
            "example": "00129383829"
          },
          "purchaseType": {
            "description": "Type of item, indicates what type of item is being sold",
            "type": "string",
            "enum": [
              "TRIP_FEE",
              "FLIGHT",
              "ANCILLARY",
              "HOTEL",
              "CAR",
              "RAIL",
              "MERCHANT_FEE",
              "LIMO",
              "MISC"
            ],
            "example": "TRIP_FEE"
          },
          "type": {
            "description": "Type of item, indicates if the item was purchased vs refunded.",
            "type": "string",
            "enum": [
              "PURCHASE",
              "REFUND"
            ],
            "example": "PURCHASE"
          },
          "amount": {
            "description": "Amount of money.",
            "$ref": "#/components/schemas/FareAmount"
          },
          "travelerName": {
            "description": "Name of the traveler.",
            "type": "string",
            "example": "John Doe"
          },
          "taxBreakdown": {
            "description": "Tax breakdown for the invoice, this will be present for UK invoices with VAT",
            "$ref": "#/components/schemas/TaxBreakdown"
          },
          "itemNameMetadata": {
            "description": "Metadata for the item name.",
            "$ref": "#/components/schemas/ItemNameMetadata"
          }
        }
      },
      "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"
          },
          "incompleteTransactionReasons": {
            "description": "Reasons the underlying booking is incomplete (e.g. SYS_TICKET). Explains why paymentDetails / amounts on the transaction may be empty.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/IncompleteTransactionReason"
            }
          },
          "transactionDateTime": {
            "description": "Date time of the transaction",
            "$ref": "#/components/schemas/DateTimeLocal"
          },
          "transactionAmountDiff": {
            "deprecated": true,
            "x-sunset": "2027-01-01",
            "description": "Deprecated: will be removed in transactions v3. Use transactionFareDetails instead. Difference between amount relating to this itemGroup and last itemGroup having same confirmation number.",
            "$ref": "#/components/schemas/FareAmount"
          },
          "transactionFeesDiff": {
            "deprecated": true,
            "x-sunset": "2027-01-01",
            "description": "Deprecated: will be removed in transactions v3. Use transactionFareDetails instead. Difference between airline fees in case of air and last itemGroup having same confirmation number.",
            "$ref": "#/components/schemas/Money"
          },
          "totalAmountDiff": {
            "deprecated": true,
            "x-sunset": "2027-01-01",
            "description": "Deprecated: will be removed in transactions v3. Use transactionFareDetails instead. Difference between total amount for this itemGroup and last itemGroup having same confirmation number.",
            "$ref": "#/components/schemas/FareAmount"
          },
          "penaltyDiff": {
            "deprecated": true,
            "x-sunset": "2027-01-01",
            "description": "Deprecated: will be removed in transactions v3. Use transactionFareDetails instead. Difference between penalty charged for this itemGroup and last itemGroup having same confirmation number.",
            "$ref": "#/components/schemas/Money"
          },
          "transactionAmount": {
            "deprecated": true,
            "x-sunset": "2027-01-01",
            "description": "Deprecated: will be removed in transactions v3. Use transactionFareDetails instead. Amount relating to this itemGroup.",
            "$ref": "#/components/schemas/FareAmount"
          },
          "transactionFees": {
            "deprecated": true,
            "x-sunset": "2027-01-01",
            "description": "Deprecated: will be removed in transactions v3. Use transactionFareDetails instead. Airline fees in case of air.",
            "$ref": "#/components/schemas/Money"
          },
          "totalAmount": {
            "deprecated": true,
            "x-sunset": "2027-01-01",
            "description": "Deprecated: will be removed in transactions v3. Use transactionFareDetails instead. Total amount for this itemGroup.",
            "$ref": "#/components/schemas/FareAmount"
          },
          "totalPnrAmount": {
            "deprecated": true,
            "x-sunset": "2027-01-01",
            "description": "Deprecated: will be removed in transactions v3. Use transactionFareDetails instead. Total amount for this pnr up until this transaction.",
            "$ref": "#/components/schemas/Money"
          },
          "penalty": {
            "deprecated": true,
            "x-sunset": "2027-01-01",
            "description": "Deprecated: will be removed in transactions v3. Use transactionFareDetails instead. 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": {
            "deprecated": true,
            "x-sunset": "2027-01-01",
            "description": "Deprecated: will be removed in transactions v3. Use transactionFareDetails instead.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TransactionFare"
            }
          },
          "previousTransactionFares": {
            "deprecated": true,
            "x-sunset": "2027-01-01",
            "description": "Deprecated: will be removed in transactions v3. Use previousTransactionFareDetails instead.",
            "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"
          },
          "productName": {
            "description": "Product name for this item group when the ticket type is EMD.",
            "type": "string",
            "example": "REFUNDABLE_BALANCE"
          }
        }
      },
      "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"
          },
          "documentType": {
            "$ref": "#/components/schemas/InvoiceDocumentType",
            "description": "Type of document generated (invoice or receipt)"
          }
        }
      },
      "ItemNameMetadata": {
        "title": "ticketMetadata",
        "description": "Metadata for the ticket.",
        "discriminator": {
          "propertyName": "pnrType",
          "mapping": {
            "AIR": "#/components/schemas/AirItemNameMetadata",
            "HOTEL": "#/components/schemas/HotelItemNameMetadata",
            "RAIL": "#/components/schemas/RailItemNameMetadata"
          }
        },
        "oneOf": [
          {
            "$ref": "#/components/schemas/AirItemNameMetadata"
          },
          {
            "$ref": "#/components/schemas/HotelItemNameMetadata"
          },
          {
            "$ref": "#/components/schemas/RailItemNameMetadata"
          }
        ]
      },
      "ItemType": {
        "type": "string",
        "description": "Type of payment item eligible for this fop rule",
        "enum": [
          "SERVICE_FEE",
          "TRAVEL_TICKET",
          "SEAT",
          "BAGGAGE",
          "EARLY_BIRD"
        ],
        "example": "SEAT"
      },
      "ItineraryInfo": {
        "type": "object",
        "description": "Describes the detailed itinerary information provided in the search response.",
        "properties": {
          "itineraries": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AirItin",
              "description": "List of itineraries available for selection in the search results."
            }
          },
          "flightData": {
            "type": "array",
            "description": "The set of flights and their details that are contained in this response.",
            "items": {
              "$ref": "#/components/schemas/FlightCommon"
            }
          }
        }
      },
      "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",
            "x-pii": "IDENTIFIER"
          },
          "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/CancellationPolicy2"
                },
                "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"
          }
        }
      },
      "LegSummary": {
        "type": "object",
        "title": "LegSummary",
        "properties": {
          "legStatus": {
            "$ref": "#/components/schemas/UserFacingStatus"
          },
          "flights": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FlightSummary"
            }
          }
        }
      },
      "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/CancellationPolicy3",
            "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"
                },
                "flightNumbers": {
                  "type": "array",
                  "description": "Flight information associated with this leg.",
                  "items": {
                    "$ref": "#/components/schemas/FlightNumber"
                  }
                }
              }
            }
          },
          "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"
          }
        }
      },
      "LimoLegSummary": {
        "type": "object",
        "title": "LimoLegSummary",
        "description": "Limo Leg description",
        "properties": {
          "fromDate": {
            "$ref": "#/components/schemas/DateTimeLocal"
          },
          "toDate": {
            "$ref": "#/components/schemas/DateTimeLocal"
          },
          "pickupLocation": {
            "$ref": "#/components/schemas/CarLocation"
          },
          "dropOffLocation": {
            "$ref": "#/components/schemas/CarLocation"
          }
        }
      },
      "LimoPnrSummary": {
        "type": "object",
        "title": "CarPnrSummary",
        "description": "Summary of Limo PNR",
        "properties": {
          "vehicleName": {
            "type": "string",
            "description": "Name of vehicle",
            "example": "mercedez"
          },
          "vendor": {
            "$ref": "#/components/schemas/Vendor"
          },
          "legs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LimoLegSummary"
            }
          },
          "totalAmount": {
            "$ref": "#/components/schemas/Money"
          },
          "pnrStatus": {
            "$ref": "#/components/schemas/PnrStatus"
          }
        }
      },
      "LimoPnrSummaryWrapper": {
        "type": "object",
        "title": "LimoPnrSummaryWrapper",
        "properties": {
          "limoPnrSummary": {
            "$ref": "#/components/schemas/LimoPnrSummary"
          }
        }
      },
      "LimoType": {
        "type": "string",
        "title": "LimoType",
        "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"
          }
        }
      },
      "ListAgentNotesResponse": {
        "title": "ListAgentNotesResponse",
        "description": "Response for listing agent notes.",
        "type": "object",
        "required": [
          "agentNotes"
        ],
        "properties": {
          "agentNotes": {
            "type": "array",
            "description": "Array of agent notes.",
            "items": {
              "$ref": "#/components/schemas/AgentNote"
            }
          }
        }
      },
      "ListOrganisationTripsRequest": {
        "title": "ListOrganisationTripsRequest",
        "type": "object",
        "description": "Request for giving trips and associated Pnr's for a certain organisation that are updated after a certain time",
        "required": [
          "organizationId",
          "pnrType"
        ],
        "properties": {
          "organizationId": {
            "$ref": "#/components/schemas/OrganizationId"
          },
          "updatedAt": {
            "$ref": "#/components/schemas/DateTimeOffset"
          },
          "pnrType": {
            "type": "string",
            "description": "Type of PNR",
            "enum": [
              "AIR",
              "CAR",
              "RAIL",
              "HOTEL",
              "LIMO",
              "ALL"
            ]
          },
          "customFieldIds": {
            "type": "array",
            "description": "List of custom field IDs to filter. This field is not in use and has been deprecated.",
            "deprecated": true,
            "x-sunset": "2026-07-01",
            "items": {
              "$ref": "#/components/schemas/CustomFieldId"
            }
          }
        }
      },
      "ListOrganisationTripsResponse": {
        "title": "ListOrganisationTripsResponse",
        "type": "object",
        "description": "Gives Trips and associated Pnr's for a certain organisation that are updated after a certain time",
        "properties": {
          "trips": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OrgTripInfo"
            }
          }
        }
      },
      "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"
            }
          }
        }
      },
      "LoungeAccessPolicy": {
        "type": "object",
        "title": "LoungeAccessPolicy",
        "properties": {
          "loungeAccessPolicy": {
            "$ref": "#/components/schemas/AirPolicy"
          }
        }
      },
      "LoungePolicy": {
        "type": "object",
        "description": "Information about the lounge policy.",
        "required": [
          "description"
        ],
        "properties": {
          "description": {
            "type": "string",
            "description": "Lounge policy description text (may include whether a fee is charged).",
            "example": "Lounge access for a fee"
          }
        }
      },
      "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",
            "x-pii": "IDENTIFIER"
          },
          "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
          },
          "tier": {
            "$ref": "#/components/schemas/LoyaltyTier"
          }
        }
      },
      "LoyaltyTier": {
        "type": "string",
        "description": "Loyalty membership tier name echoed from the supplier.",
        "example": "GOLD"
      },
      "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"
          }
        }
      },
      "ManualVerificationIntent": {
        "type": "object",
        "title": "ManualVerificationIntent",
        "description": "Represents the intent for manual verification with a remark and a list of reasons.",
        "required": [
          "reason"
        ],
        "properties": {
          "remark": {
            "type": "string",
            "description": "Additional remarks or notes about the verification.",
            "example": "Verification provided after manual approval."
          },
          "reasons": {
            "type": "array",
            "description": "List of reasons for manual verification.",
            "items": {
              "$ref": "#/components/schemas/ManualVerificationReason"
            }
          }
        }
      },
      "ManualVerificationIntentWrapper": {
        "type": "object",
        "title": "ManualVerificationIntentWrapper",
        "description": "Wrapper object for ManualVerificationIntent.",
        "properties": {
          "manualVerificationIntent": {
            "$ref": "#/components/schemas/ManualVerificationIntent"
          }
        }
      },
      "ManualVerificationReason": {
        "type": "string",
        "title": "ManualVerificationReason",
        "description": "Enumerates the possible reasons for manual verification.",
        "enum": [
          "FARE_THRESHOLD_VERIFIED",
          "FRAUD_CITY_VERIFIED"
        ],
        "example": "FARE_THRESHOLD_VERIFIED"
      },
      "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"
      },
      "MerchantFeeInfo": {
        "title": "MerchantFeeInfo",
        "description": "Describes the merchant fee applicable on the itinerary.",
        "required": [
          "amount"
        ],
        "properties": {
          "amount": {
            "$ref": "#/components/schemas/FareAmount"
          }
        }
      },
      "MinMaxAmount": {
        "type": "object",
        "title": "MinMaxAmount",
        "description": "Payment amount details if slider payment function is linear.",
        "properties": {
          "minLimit": {
            "$ref": "#/components/schemas/Money",
            "description": "The minimum amount that must be charged using this fop"
          },
          "maxLimit": {
            "$ref": "#/components/schemas/Money",
            "description": "The maximum amount that could be charged using this fop"
          }
        }
      },
      "MinMaxAmountWrapper": {
        "type": "object",
        "title": "MinMaxAmountWrapper",
        "description": "Min max amount wrapper.",
        "properties": {
          "minMaxAmount": {
            "$ref": "#/components/schemas/MinMaxAmount"
          }
        }
      },
      "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"
          }
        }
      },
      "MiscPnrSummary": {
        "type": "object",
        "title": "MiscPnrSummary",
        "required": [
          "description",
          "endDateTime",
          "rate",
          "startDateTime"
        ],
        "description": "Summary of Misc PNR",
        "properties": {
          "description": {
            "type": "string",
            "description": "Description of the segment",
            "example": "MiscellaneousPnr"
          },
          "startDateTime": {
            "$ref": "#/components/schemas/DateTimeLocal"
          },
          "endDateTime": {
            "$ref": "#/components/schemas/DateTimeLocal"
          },
          "totalAmount": {
            "$ref": "#/components/schemas/Money"
          },
          "status": {
            "$ref": "#/components/schemas/PnrStatus"
          },
          "sortingPriority": {
            "type": "integer",
            "format": "int32",
            "description": "Sorting priority of the segment",
            "example": 1
          }
        }
      },
      "MiscPnrSummaryWrapper": {
        "type": "object",
        "title": "MiscPnrSummaryWrapper",
        "properties": {
          "miscPnrSummary": {
            "$ref": "#/components/schemas/MiscPnrSummary"
          }
        }
      },
      "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
                },
                "otherCoinageMetadata": {
                  "description": "Metadata to store additional information related to the payment method",
                  "discriminator": {
                    "propertyName": "metadataType",
                    "mapping": {
                      "FlightPassPaymentMetadata": "#/components/schemas/FlightPassPaymentMetadataWrapper"
                    }
                  },
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/FlightPassPaymentMetadataWrapper"
                    }
                  ]
                }
              }
            }
          }
        }
      },
      "MoneyWrapper": {
        "type": "object",
        "title": "MoneyWrapper",
        "properties": {
          "money": {
            "$ref": "#/components/schemas/Money"
          }
        }
      },
      "NGSFareCategory": {
        "type": "string",
        "enum": [
          "UNKNOWN_NGS_CATEGORY",
          "BASE",
          "STANDARD",
          "ENHANCED",
          "PREMIUM",
          "LUXURY",
          "ULTRA_LUXURY"
        ],
        "default": "UNKNOWN_NGS_CATEGORY"
      },
      "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",
            "x-pii": "IDENTIFIER"
          },
          "issueCountry": {
            "type": "string",
            "description": "IS0 2 letter country code of the country issuing this id.",
            "example": "IN"
          },
          "issuedDate": {
            "$ref": "#/components/schemas/DateModel",
            "x-pii": "SENSITIVE"
          },
          "expiryDate": {
            "$ref": "#/components/schemas/DateModel",
            "x-pii": "SENSITIVE"
          },
          "type": {
            "type": "string",
            "enum": [
              "DNI",
              "NIE"
            ],
            "example": "DNI"
          }
        }
      },
      "NationalDocWrapper": {
        "type": "object",
        "title": "NationalDocWrapper",
        "properties": {
          "nationalDoc": {
            "$ref": "#/components/schemas/NationalDoc"
          }
        }
      },
      "NoPrepaymentMetadata": {
        "type": "object",
        "title": "NoPrepaymentMetadata",
        "required": [
          "label"
        ],
        "description": "Metadata for No Prepayment payment source (car bookings on no-guarantee rates).",
        "properties": {
          "label": {
            "type": "string",
            "example": "No Prepayment",
            "description": "Label for No Prepayment payment source."
          }
        }
      },
      "NoPrepaymentWrapper": {
        "type": "object",
        "title": "NoPrepaymentWrapper",
        "description": "Wrapper for No Prepayment Payment Source.",
        "required": [
          "noPrepaymentMetadata"
        ],
        "properties": {
          "noPrepaymentMetadata": {
            "$ref": "#/components/schemas/NoPrepaymentMetadata"
          }
        }
      },
      "NoteId": {
        "title": "NoteId",
        "description": "Note ID.",
        "type": "object",
        "required": [
          "id"
        ],
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "description": "ID",
            "example": "601e8a5b-3d1d-46bf-9ff6-5441097da8af"
          }
        }
      },
      "NumStopsPref": {
        "type": "object",
        "title": "NumStopsPref",
        "description": "Preferred number of stops.",
        "required": [
          "numOfStops"
        ],
        "properties": {
          "numOfStops": {
            "type": "integer",
            "format": "int64",
            "example": 34
          }
        }
      },
      "OfferExpiryInfo": {
        "type": "object",
        "title": "OfferExpiryInfo",
        "description": "Date time in UTC till when this cancellation offer is valid. For example void window expiry.\n",
        "required": [
          "dateTime"
        ],
        "properties": {
          "dateTime": {
            "$ref": "#/components/schemas/DateTimeOffset"
          }
        }
      },
      "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"
          }
        }
      },
      "OffsetBasedPaginationRequestParams": {
        "type": "object",
        "title": "OffsetBasedPaginationRequestParams",
        "description": "Pagination parameters for requests.",
        "properties": {
          "offset": {
            "type": "integer",
            "format": "int32",
            "description": "The starting index in the list from which results are returned. The value must be greater than or equal to 0.",
            "default": 0,
            "minimum": 0
          },
          "limit": {
            "type": "integer",
            "format": "int32",
            "description": "Maximum number of results to be fetched.",
            "minimum": 1,
            "default": 100
          }
        }
      },
      "OffsetBasedPaginationResponseParams": {
        "type": "object",
        "title": "PaginationResponseParams",
        "description": "Pagination parameters for response.",
        "required": [
          "totalNumResults"
        ],
        "properties": {
          "totalNumResults": {
            "type": "integer",
            "format": "int32",
            "description": "Total number of results."
          }
        }
      },
      "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"
          }
        ]
      },
      "OrgTripInfo": {
        "title": "OrgTripInfo",
        "description": "Trips and PNRs of a particular organistion",
        "type": "object",
        "required": [
          "tripId",
          "pnrInfos"
        ],
        "properties": {
          "tripId": {
            "type": "string",
            "description": "Spotnana trip ID",
            "example": "6926658168"
          },
          "pnrInfos": {
            "type": "array",
            "description": "Pnr Info for the organisation trips",
            "items": {
              "$ref": "#/components/schemas/PnrInfo"
            }
          },
          "tripName": {
            "type": "string",
            "description": "Trip Name",
            "example": "SFO - DEL Meeting"
          },
          "tripDescription": {
            "type": "string",
            "description": "Trip Description",
            "example": "SFO-DEL 22-04-2022"
          },
          "applicationId": {
            "type": "string",
            "format": "uuid",
            "description": "Application used while creating trip."
          }
        }
      },
      "OrganizationAgencyId": {
        "type": "object",
        "title": "OrganizationAgencyId",
        "description": "Agency id for the organization.",
        "deprecated": true,
        "x-sunset": "2026-07-01",
        "required": [
          "id"
        ],
        "properties": {
          "id": {
            "type": "string"
          }
        }
      },
      "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"
            }
          }
        }
      },
      "OutOfPolicyFilter": {
        "type": "object",
        "title": "OutOfPolicyFilter",
        "description": "Filter to get out of policy approval data.",
        "required": [
          "filterType",
          "outOfPolicy"
        ],
        "properties": {
          "filterType": {
            "type": "string",
            "example": "OUT_OF_POLICY_FILTER"
          },
          "outOfPolicy": {
            "type": "boolean",
            "description": "Out of policy indicator",
            "example": true
          }
        }
      },
      "OverallStatus": {
        "title": "OverallStatus",
        "description": "Overall status of the trip.",
        "type": "string",
        "enum": [
          "PENDING_STATUS",
          "CONFIRMED_STATUS",
          "CANCELLED_STATUS",
          "AIRLINE_CONTROL_STATUS",
          "PAYMENT_DECLINED_STATUS",
          "DISRUPTED_STATUS",
          "DRAFT_STATUS"
        ],
        "example": "CONFIRMED_STATUS"
      },
      "OverallStatusFilter": {
        "type": "object",
        "title": "OverallStatusFilter",
        "description": "Overall status filter for the list trip summary request.",
        "required": [
          "filterType",
          "overallStatuses"
        ],
        "properties": {
          "filterType": {
            "type": "string"
          },
          "overallStatuses": {
            "type": "array",
            "description": "List of overall statuses",
            "items": {
              "$ref": "#/components/schemas/OverallStatus"
            }
          }
        }
      },
      "OverheadBagPolicy": {
        "type": "object",
        "title": "OverheadBagPolicy",
        "properties": {
          "overheadBagPolicy": {
            "$ref": "#/components/schemas/AirPolicy"
          }
        }
      },
      "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"
          }
        }
      },
      "POSInfo": {
        "type": "object",
        "description": "Point of sale information",
        "required": [
          "source"
        ],
        "properties": {
          "source": {
            "description": "The third party source for the point of sale",
            "$ref": "#/components/schemas/ThirdPartySource"
          },
          "posDescriptor": {
            "type": "string",
            "description": "The identifier for the point of sale. This would be the PCC for GDS bookings.",
            "example": "6CA4"
          }
        }
      },
      "PaginationResponseParams": {
        "type": "object",
        "title": "PaginationResponseParams",
        "description": "Pagination parameters for response.",
        "required": [
          "numResults",
          "numPages"
        ],
        "properties": {
          "numResults": {
            "type": "integer",
            "format": "int32",
            "description": "Total number of results in the paginated list."
          },
          "numPages": {
            "type": "integer",
            "format": "int32",
            "description": "Total number of pages in the paginated list."
          }
        }
      },
      "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",
            "x-pii": "IDENTIFIER"
          },
          "expiryDate": {
            "$ref": "#/components/schemas/DateModel",
            "x-pii": "SENSITIVE"
          },
          "issueCountry": {
            "type": "string",
            "example": "IN"
          },
          "issuedDate": {
            "$ref": "#/components/schemas/DateModel",
            "x-pii": "SENSITIVE"
          },
          "nationalityCountry": {
            "type": "string",
            "example": "IN",
            "x-pii": "SENSITIVE"
          },
          "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"
          }
        }
      },
      "PaymentInformation": {
        "type": "object",
        "title": "PaymentInformation",
        "description": "Information on how the items have been paid for.",
        "required": [
          "amount",
          "paymentMode",
          "paymentInstrumentIdentifier"
        ],
        "properties": {
          "id": {
            "description": "Payment reference ID.",
            "type": "string",
            "example": "sdkljhafisudlls"
          },
          "transactionTime": {
            "description": "Transaction timestamp.",
            "$ref": "#/components/schemas/DateTimeOffset"
          },
          "amount": {
            "description": "Amount paid.",
            "$ref": "#/components/schemas/Money"
          },
          "paymentMode": {
            "description": "Mode of Payment shown on invoice.",
            "type": "string",
            "enum": [
              "CREDIT_CARD",
              "ON_ACCOUNT",
              "DIRECT",
              "EXCHANGE",
              "BREX_POINTS",
              "CASH",
              "QANTAS_POINTS",
              "VENDOR_PROGRAM_PAYMENT",
              "AMADEUS_CHECKOUT",
              "PREVIOUS_BOOKING_VALUE",
              "FLIGHT_CREDITS",
              "QANTAS_TRAVEL_FUND",
              "FLIGHT_PASS",
              "MISCELLANEOUS_CREDIT_ORDER",
              "NO_PREPAYMENT"
            ],
            "x-ignoreBreakingChanges": [
              "PaymentInformation->paymentMode"
            ],
            "example": "CREDIT_CARD"
          },
          "paymentInstrumentIdentifier": {
            "description": "An identifier for the payment instrument used. For example, last four credit card number digits in case a credit card was used.",
            "type": "string",
            "example": "**2343"
          },
          "actualPayment": {
            "description": "Details of how payment was done",
            "$ref": "#/components/schemas/ActualPayment"
          },
          "exchangePayment": {
            "description": "Details of how payment was done",
            "$ref": "#/components/schemas/ExchangePayment"
          }
        }
      },
      "PaymentInstruction": {
        "type": "object",
        "title": "PaymentInstruction",
        "description": "Payment instruction",
        "required": [
          "id",
          "displayText",
          "checkoutText"
        ],
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "description": "Id corresponding to the payment instruction",
            "example": "f49d00fe-1eda-4304-ba79-a980f565281d"
          },
          "displayText": {
            "type": "string",
            "description": "Display text corresponding to the payment instruction",
            "example": "Room and tax only"
          },
          "checkoutText": {
            "type": "string",
            "description": "Payment instruction text to display during checkout workflow",
            "example": "Room and tax only"
          }
        }
      },
      "PaymentItem": {
        "type": "object",
        "description": "The payment item eligible for associated payment rules",
        "properties": {
          "itemType": {
            "$ref": "#/components/schemas/ItemType",
            "description": "Type of payment item eligible for this fop rule"
          },
          "fareComponent": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FareComponent",
              "description": "List of fare components of associated payment item"
            }
          }
        }
      },
      "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
                  }
                }
              },
              "noPrepaymentMetadata": {
                "$ref": "#/components/schemas/NoPrepaymentMetadata"
              }
            }
          },
          "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",
          "NO_PREPAYMENT"
        ],
        "x-ignoreBreakingChanges": [
          "PaymentMethod->MISCELLANEOUS_CREDIT_ORDER",
          "PaymentMethod->NO_PREPAYMENT"
        ],
        "example": "BREX_POINTS"
      },
      "PaymentRule": {
        "type": "object",
        "description": "The payment rule applicable for a booking",
        "properties": {
          "paymentSplitDetails": {
            "$ref": "#/components/schemas/PaymentSplitDetails",
            "description": "Payment details of slider payment function"
          },
          "paymentSourceIds": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid",
              "description": "Unique identifier identifying this payment source",
              "example": "f49d00fe-1eda-4304-ba79-a980f565281d"
            }
          },
          "allowAddCard": {
            "type": "boolean",
            "description": "Whether to allow user to add a new card for the selected split payment."
          },
          "splitCriterion": {
            "$ref": "#/components/schemas/PaymentSplitCriterion",
            "description": "Defines the criteria for splitting a payment"
          },
          "unusablePaymentSources": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/UnusablePaymentSource"
            },
            "description": "List of payment sources that are not usable for this payment rule"
          },
          "paymentSourceConditions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PaymentSourceCondition"
            },
            "description": "List of conditions for payment sources"
          }
        }
      },
      "PaymentSourceCondition": {
        "type": "object",
        "title": "PaymentSourceCondition",
        "description": "The payment source fop condition",
        "discriminator": {
          "propertyName": "type",
          "mapping": {
            "CARD": "#/components/schemas/CardCondition"
          }
        },
        "oneOf": [
          {
            "$ref": "#/components/schemas/CardCondition"
          }
        ]
      },
      "PaymentSourceMetadata": {
        "type": "object",
        "title": "PaymentSourceMetadata",
        "description": "Metadata corresponding to the payment source.",
        "oneOf": [
          {
            "$ref": "#/components/schemas/CardMetadataWrapper"
          },
          {
            "$ref": "#/components/schemas/VirtualCardMetadataWrapper"
          },
          {
            "$ref": "#/components/schemas/RewardsProgramMetadataWrapper"
          },
          {
            "$ref": "#/components/schemas/CustomPaymentMethodMetadataWrapper"
          },
          {
            "$ref": "#/components/schemas/VendorProgramPaymentDescriptorWrapper"
          }
        ]
      },
      "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"
        ]
      },
      "PaymentSplitCriterion": {
        "type": "object",
        "description": "The criterion for the payment split.",
        "properties": {
          "accessType": {
            "description": "Access Type of the Payment Sources applicable for a portion of payment.",
            "$ref": "#/components/schemas/AccessType"
          }
        }
      },
      "PaymentSplitDetails": {
        "type": "object",
        "title": "PaymentSplitDetails",
        "description": "Payment details of slider payment function.",
        "oneOf": [
          {
            "$ref": "#/components/schemas/MinMaxAmountWrapper"
          },
          {
            "$ref": "#/components/schemas/SplitAmountWrapper"
          }
        ]
      },
      "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"
          }
        }
      },
      "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"
      },
      "PnrCancelRequest": {
        "title": "PnrCancelRequest",
        "type": "object",
        "description": "Request to cancel a PNR or part of PNR object.",
        "required": [
          "cancelType",
          "cancelDetails"
        ],
        "properties": {
          "cancellationType": {
            "type": "string",
            "enum": [
              "NO_REFUND",
              "FULL_REFUND",
              "PARTIAL_REFUND",
              "FULL_CREDIT"
            ],
            "description": "Type of cancellation to be performed. For the NO_REFUND, FULL_REFUND and\nFULL_CREDIT cancellation types, if no cancellationDetails are provided, we assume the\nentire PNR is being canceled. If the cancellation type is FULL_CREDIT, we will also\nassume the credits created will have 0 penalty and an expiry date of 1 year from the\nissue date of the ticket.\n",
            "example": "FULL_REFUND"
          },
          "cancellationDetails": {
            "type": "array",
            "description": "List of object to be cancelled and their associated refund details.",
            "items": {
              "$ref": "#/components/schemas/CancelDetail"
            }
          },
          "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
              }
            }
          }
        }
      },
      "PnrCancellationDetails": {
        "type": "object",
        "title": "PnrCancellationDetails",
        "description": "Cancellation details for a booking.",
        "required": [
          "pnrId",
          "tripId"
        ],
        "properties": {
          "pnrId": {
            "type": "string",
            "description": "PNR ID for the booking.",
            "example": "1234567890"
          },
          "tripId": {
            "type": "string",
            "description": "Trip ID for the booking.",
            "example": "2345678901"
          },
          "cancellationDetails": {
            "description": "Cancellation details for this booking.",
            "$ref": "#/components/schemas/CancellationDetails"
          }
        }
      },
      "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"
            }
          },
          "invoiceData": {
            "type": "array",
            "description": "Buyer and seller invoice information for this PNR",
            "items": {
              "$ref": "#/components/schemas/BuyerSellerInfo"
            }
          },
          "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"
          }
        }
      },
      "PnrInfo": {
        "title": "PnrInfo",
        "description": "Pnr Level info",
        "type": "object",
        "required": [
          "pnrId"
        ],
        "properties": {
          "pnrId": {
            "type": "string",
            "description": "Pnr ID",
            "example": "6789533589"
          },
          "customFields": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomField"
            }
          }
        }
      },
      "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"
            }
          }
        }
      },
      "PnrResponseOnExternalId": {
        "required": [
          "pnrId",
          "tripId"
        ],
        "properties": {
          "pnrId": {
            "type": "string",
            "description": "Spotnana PNR Id mapped with external Id",
            "example": "1234567890"
          },
          "tripId": {
            "type": "string",
            "description": "Spotnana trip Id mapped with external Id",
            "example": "1234567890"
          }
        }
      },
      "PnrSearchResponse": {
        "type": "object",
        "title": "PnrSearchResponse",
        "description": "Pnr Search Response Object having Spotnana Booking Id and Trip Id.",
        "required": [
          "pnrId",
          "tripId"
        ],
        "properties": {
          "pnrId": {
            "type": "string",
            "description": "Spotnana Booking Id mapped with Source PNR or Ticket Number or Vendor Confirmation",
            "example": "1234567890"
          },
          "tripId": {
            "type": "string",
            "description": "Trip Id associated with the booking",
            "example": "1234567890"
          }
        }
      },
      "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",
        "x-enumDescriptions": {
          "UNKNOWN": "PNR status could not be determined or mapped from the supplier.",
          "INITIATED": "Default status when a PNR entity is first created in our database. The booking may not yet be confirmed by the supplier, and we may not have a vendor confirmation ID.",
          "CANCELLED": "The booking or flight is cancelled. Terminal status.",
          "CONFIRMED": "Booking confirmed by the supplier. For Air PNRs, confirmed but not yet ticketed (no active tickets).",
          "GROUP_BOOKING_ON_REQUEST": "Group booking requested but not yet confirmed. Air only",
          "WAITLISTED": "Booking is on a waitlist, pending confirmation by the supplier.",
          "PENDING": "Booking is awaiting confirmation or action. Used across all PNR types as a catch-all for not-yet-confirmed states.",
          "AIRLINE_UPGRADE": "Passenger upgraded by the airline. Not directly mapped by any supplier.",
          "WAITLIST_CONFIRMED": "Previously waitlisted booking confirmed by the supplier. Air only",
          "BOOKING_DENIED_CONTACT_SUPPORT": "Booking denied by the supplier, requires support intervention. Air only",
          "NO_SHOW": "Passenger did not show up for the flight or hotel stay.",
          "CONTACT_SUPPORT": "Requires manual agent/support intervention. Mapped from the `OK` passive-confirmation action code in GDS systems, indicating the segment was manually confirmed and needs verification.",
          "STATUS_CHANGED_CONTACT_SUPPORT": "Booking status changed by the supplier, requires support review. Air only",
          "SCHEDULE_CHANGE": "Schedule change applied to the booking by the airline. Booking is still active but flight times or routing may have changed.",
          "SEGMENT_REQUEST": "Passive Segment requested but not yet confirmed by the supplier.",
          "SCHEDULE_CHANGE_WAITLISTED_BOOKING": "Waitlisted booking with a schedule change applied. Air only",
          "REQUEST_PENDING": "Booking request submitted but only partially confirmed or awaiting further processing. Rail, and Hotel only.",
          "WAITLISTED_NOT_CONFIRMED": "Waitlisted booking not confirmed by the supplier. Not directly mapped by any supplier.",
          "SCHEDULE_CHANGE_NOT_CONFIRMED": "Schedule change occurred but booking not reconfirmed. Not directly mapped by any supplier",
          "SCHEDULE_CHANGE_PENDING_STATUS": "Schedule change proposed but pending confirmation/action. Air only",
          "MIS_CONNECTION": "Misconnection — passenger missed a connecting flight. Not directly mapped by any supplier",
          "REQUESTED": "Booking initiated but no vendor confirmation ID exists yet. Intermediate state between INITIATED and CONFIRMED. When segments have blank confirmation IDs;",
          "TICKETED": "Tickets issued and payment charged for an Air PNR. Terminal status for successful air bookings.",
          "VOIDED": "All tickets voided — any charged amount refunded, including non-refundable bookings. Terminal status.",
          "CANCELLED_BY_VENDOR": "Booking cancelled by the vendor/airline, not by the traveler.",
          "CANCELLATION_IN_PROGRESS": "Cancellation initiated but not yet complete. Also set internally during the air cancellation workflow before the supplier call completes.",
          "REINSTATED": "Previously cancelled flight became active again. Air only. Not mapped from any GDS status code directly.",
          "BOOKING_ON_HOLD": "Air PNR confirmed with the airline but held for a limited time before auto-cancellation if not ticketed. Requires active hold metadata (`REQUESTED` or `ON_HOLD` hold status). Air only",
          "AIRLINE_CONTROL": "PNR taken over by the airline. Updates no longer visible to the TMC. Terminal status.",
          "MODIFIED": "Booking has been modified/rebooked. Car: CarTrawler `Rebooked` status. Also referenced in Sabre Hotel mapper for modified hotel PNR handling.",
          "PAYMENT_DECLINED": "Payment failed during ticketing. Retained as long as unticketed fare quotes exist (Sabre PQ/PQR or Amadeus TSTs), preventing incorrect progression to TICKETED.",
          "INOPERATIVE": "Booking inoperative or unavailable for use.",
          "UNCONFIRMED": "Booking unconfirmed and pending verification."
        }
      },
      "PnrSummary": {
        "type": "object",
        "title": "PnrSummary",
        "description": "Basic PNR info",
        "required": [
          "pnrId"
        ],
        "properties": {
          "pnrId": {
            "type": "string",
            "description": "Spotnana PNR Id",
            "example": "1234567890"
          },
          "sourcePnrId": {
            "type": "string",
            "description": "Source PNR Id",
            "example": "QWERGF"
          },
          "pnrStatus": {
            "$ref": "#/components/schemas/PnrStatus"
          },
          "pnrSummary": {
            "$ref": "#/components/schemas/PnrSummaryWrapper"
          },
          "userFacingStatus": {
            "$ref": "#/components/schemas/UserFacingStatus"
          },
          "tmcInfo": {
            "$ref": "#/components/schemas/TmcInfo"
          },
          "source": {
            "$ref": "#/components/schemas/ThirdPartySource",
            "description": "Source of the booking e.g. Sabre, NDC etc."
          },
          "travelers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Traveler"
            }
          },
          "pnrType": {
            "$ref": "#/components/schemas/PnrType"
          },
          "approvalData": {
            "$ref": "#/components/schemas/ApprovalData"
          },
          "policyInfo": {
            "$ref": "#/components/schemas/PolicyDetail"
          },
          "additionalMetadata": {
            "type": "object",
            "description": "Any addtional metadata associated with the booking",
            "properties": {
              "airportInfo": {
                "type": "array",
                "readOnly": true,
                "items": {
                  "$ref": "#/components/schemas/AirportDetail"
                }
              }
            }
          },
          "preBookAnswers": {
            "description": "The per booking answers collected from the traveler during checkout.",
            "$ref": "#/components/schemas/PreBookAnswers"
          },
          "initialCustomFieldV3Responses": {
            "type": "array",
            "description": "List of all the Custom Fields responses captured while booking.",
            "items": {
              "$ref": "#/components/schemas/CustomFieldV3Response"
            }
          }
        }
      },
      "PnrSummaryWrapper": {
        "title": "ApprovalFilter",
        "type": "object",
        "description": "Approval filter",
        "oneOf": [
          {
            "$ref": "#/components/schemas/AirPnrSummaryWrapper"
          },
          {
            "$ref": "#/components/schemas/RailPnrSummaryWrapper"
          },
          {
            "$ref": "#/components/schemas/HotelPnrSummaryWrapper"
          },
          {
            "$ref": "#/components/schemas/CarPnrSummaryWrapper"
          },
          {
            "$ref": "#/components/schemas/LimoPnrSummaryWrapper"
          },
          {
            "$ref": "#/components/schemas/MiscPnrSummaryWrapper"
          }
        ]
      },
      "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"
          },
          "blockLoyalty": {
            "type": "boolean",
            "description": "If true, hides the loyalty program input on the checkout page for this traveler.",
            "default": false,
            "example": false
          }
        }
      },
      "PnrType": {
        "type": "string",
        "description": "Type of PNR",
        "enum": [
          "AIR",
          "CAR",
          "RAIL",
          "HOTEL",
          "LIMO",
          "MISC"
        ]
      },
      "PnrTypeFilterV2": {
        "type": "object",
        "title": "PnrTypeFilterV2",
        "description": "Booking/PNR type filter for the approval data list request.",
        "required": [
          "filterType",
          "pnrTypes"
        ],
        "properties": {
          "filterType": {
            "type": "string",
            "example": "PNR_TYPE_FILTER"
          },
          "pnrTypes": {
            "type": "array",
            "description": "PNR type list",
            "items": {
              "$ref": "#/components/schemas/PnrType"
            }
          }
        }
      },
      "PointsBalance": {
        "type": "object",
        "title": "PointsBalance",
        "description": "Point type and balance",
        "required": [
          "amount",
          "pointType"
        ],
        "properties": {
          "amount": {
            "type": "number",
            "format": "double",
            "description": "Points balance",
            "example": 10
          },
          "pointType": {
            "type": "string",
            "description": "Point type. Valid type is BREX_POINT_TYPE",
            "example": "BREX_POINT_TYPE"
          }
        }
      },
      "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"
          },
          {
            "$ref": "#/components/schemas/PolicySplitPaymentActionWrapper"
          }
        ]
      },
      "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"
        ]
      },
      "PolicyDetail": {
        "type": "object",
        "title": "PolicyDetail",
        "required": [
          "appliedPolicyInfo"
        ],
        "properties": {
          "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"
          },
          "isOutOfPolicy": {
            "type": "boolean",
            "description": "Flag to indicate if the booking is out of policy",
            "example": true
          }
        }
      },
      "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"
          },
          "isPersonalUpgrade": {
            "type": "boolean",
            "description": "Indicates that this booking exceeded the allowed policy budget with the extra amount being charged on the traveler.",
            "example": false,
            "default": false
          }
        }
      },
      "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"
            }
          }
        }
      },
      "PolicySplitPaymentActionWrapper": {
        "type": "object",
        "title": "PolicySplitPaymentActionWrapper",
        "properties": {
          "splitPayment": {
            "$ref": "#/components/schemas/SplitPayment"
          }
        }
      },
      "PolicyStatus": {
        "type": "string",
        "enum": [
          "IN_POLICY",
          "OUT_OF_POLICY"
        ],
        "example": "IN_POLICY"
      },
      "PolicyStatusFilter": {
        "type": "object",
        "title": "PolicyStatusFilter",
        "description": "Policy filter for the list trip summary request.",
        "required": [
          "filterType",
          "policyStatuses"
        ],
        "properties": {
          "filterType": {
            "type": "string"
          },
          "policyStatuses": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PolicyStatus"
            }
          }
        }
      },
      "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."
          }
        }
      },
      "PrimaryTravelerIdFilter": {
        "type": "object",
        "title": "PrimaryTravelerIdFilter",
        "description": "Primary/Lead Traveler IDs for the approval data list request.",
        "required": [
          "filterType",
          "primaryTravelerIds"
        ],
        "properties": {
          "filterType": {
            "type": "string",
            "example": "PRIMARY_TRAVELER_ID_FILTER"
          },
          "primaryTravelerIds": {
            "type": "array",
            "description": "Primary traveler's user ID list",
            "items": {
              "$ref": "#/components/schemas/UserId"
            }
          }
        }
      },
      "ProcessPnrApprovalRequest": {
        "type": "object",
        "title": "ProcessPnrApprovalRequest",
        "description": "Process Approval request for a PNR.",
        "required": [
          "approvalType"
        ],
        "properties": {
          "approvalId": {
            "type": "string",
            "description": "Serialised Id containing approval related info",
            "example": "test-approval-id"
          },
          "approvalType": {
            "type": "string",
            "description": "Approval response APPROVED or DECLINED",
            "enum": [
              "APPROVED",
              "DECLINED"
            ],
            "example": "APPROVED"
          }
        }
      },
      "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"
          }
        }
      },
      "ProgramDetails": {
        "type": "object",
        "title": "ProgramDetails",
        "description": "Descriptor for programs details.",
        "required": [
          "uscId",
          "tourCode",
          "snapCode"
        ],
        "properties": {
          "uscId": {
            "type": "string",
            "description": "Contract Id between vendor and the client."
          },
          "tourCode": {
            "type": "string",
            "description": "Tracking code to know which company has booked the ticket, it is added to the price quote and ticket."
          },
          "snapCode": {
            "type": "string",
            "description": "Discount code."
          }
        }
      },
      "PromotionalOffers": {
        "type": "object",
        "title": "PromotionalOffer",
        "description": "Promotional offer info for car rental.",
        "properties": {
          "type": {
            "type": "string",
            "description": "Type of promotional offer.",
            "enum": [
              "PERCENTAGE_DISCOUNT",
              "FREE_ADDITIONAL_DRIVER",
              "MONETARY_DISCOUNT",
              "FREE_GPS",
              "FREE_FUEL",
              "FREE_DAYS",
              "FREE_WINTER_CARKIT",
              "FREE_CONGESTION_CHARGE",
              "FREE_CHILD_SEAT",
              "FREE_PERSONAL_INSURANCE",
              "EURO_DISNEY_PASS",
              "FREE_SKI_PASS",
              "FREE_UPGRADE",
              "PERCENTAGE_DISCOUNT_GPS",
              "FREE_WIFI",
              "GUARANTEED_MAM",
              "GENERIC_OFFER"
            ],
            "example": "PERCENTAGE_DISCOUNT"
          },
          "subType": {
            "type": "string",
            "description": "Sub-type of promotional offer."
          },
          "description": {
            "type": "string",
            "description": "Descriptive text for the promotional offer.",
            "example": "This special price is inclusive of a 4.09% discount. Discount is based on standard rate from the car hire agent."
          },
          "discountAmount": {
            "$ref": "#/components/schemas/Money",
            "description": "Discount amount applied to the rental."
          },
          "originalAmount": {
            "$ref": "#/components/schemas/Money",
            "description": "Original amount before discount is applied."
          },
          "value": {
            "type": "string",
            "description": "Value associated with the promotional offer (e.g., percentage value).",
            "example": "4"
          }
        }
      },
      "QantasTravelFundMetadata": {
        "type": "object",
        "title": "QantasTravelFundMetadata",
        "description": "Metadata for Qantas Travel Fund payment source.",
        "required": [
          "label",
          "fundBalance"
        ],
        "properties": {
          "label": {
            "type": "string",
            "example": "QANTAS_TRAVEL_FUND",
            "description": "Label for the Qantas Travel Fund."
          },
          "fundBalance": {
            "$ref": "#/components/schemas/Money",
            "description": "Balance of the travel fund wallet."
          }
        }
      },
      "QantasTravelFundMetadataWrapper": {
        "type": "object",
        "title": "QantasTravelFundMetadataWrapper",
        "description": "Wrapper for QantasTravelFundMetadata",
        "required": [
          "qantasTravelFundMetadata"
        ],
        "properties": {
          "qantasTravelFundMetadata": {
            "$ref": "#/components/schemas/QantasTravelFundMetadata"
          }
        }
      },
      "QcFinalizationWrapper": {
        "type": "object",
        "title": "QcFinalizationWrapper",
        "description": "Wrapper for QcFinalization.",
        "properties": {
          "qcFinalizeData": {
            "$ref": "#/components/schemas/QcFinalizeData"
          }
        }
      },
      "QcFinalizeData": {
        "title": "QcFinalizeData",
        "type": "object",
        "description": "Request Object to indicate that all qc tasks have been resolved and current pnr is qc compliant",
        "required": [
          "pnrId"
        ],
        "properties": {
          "pnrId": {
            "type": "string",
            "example": "0111234567890"
          }
        }
      },
      "QcRuleType": {
        "type": "string",
        "enum": [
          "SEGMENT_GAP_RULE",
          "OSI_REMARK",
          "DUPLICATE_TICKET_RULE",
          "VENDOR_CONFIRMATION_MISSING_RULE",
          "LAST_NAME_MISPELLED_RULE",
          "DUPLICATE_BOOKING_RULE",
          "DATE_OF_BIRTH_RULE",
          "SECURE_FLIGHT_INFO_RULE",
          "PASSPORT_INFO_RULE",
          "TICKET_LESS_CARRIER_RULE",
          "VENDOR_CONFIRMED_STATUS_RULE",
          "VALIDATING_CARRIER_RULE",
          "OB_FEE_PRESENT_RULE",
          "FRAUD_CITY_CHECK_RULE",
          "FILE_FINISHING_RULE",
          "FARE_THRESHOLD_MANUAL_VERIFICATION_CHECK_RULE",
          "BLOCKED_AIRLINES_RULE",
          "LAST_NAME_VALID_RULE",
          "FRAUD_AIRPORT_MANUAL_VERIFICATION_CHECK_RULE",
          "PNR_COMMISSION_RULE",
          "DYNAMIC_OSI_REMARK_RULE",
          "DYNAMIC_SSR_REMARK_RULE",
          "COMMISSION_STALE_RULE",
          "EXCHANGE_COMMISSION_CHECK_RULE",
          "ADD_OTH_SEGMENT_RULE",
          "IRD_MULTI_SEGMENT_RULE",
          "FOP_CONDITIONS_CHECK_RULE",
          "ADD_AGENCY_REMARKS",
          "CHECK_MCO_RULE",
          "OVERRIDE_VALIDATING_CARRIER_RULE",
          "EDIT_PRICE_QUOTE_RULE",
          "TRIP_CONTINUITY_RULE",
          "PNR_PURCHASE_RULE",
          "FRAUD_COUNTRY_AND_PNR_PURCHASE_RULE",
          "FRAUD_AIRPORT_AND_PNR_PURCHASE_RULE",
          "REMARK_CHECK_RULE",
          "FLIGHT_METROPOLITAN_RULE",
          "FLIGHT_LAYOVER_RULE",
          "HOTEL_METROPOLITAN_RULE",
          "TIME_CONTINUITY_RULE",
          "CAR_METROPOLITAN_RULE",
          "CAR_TIME_CONTINUITY_RULE",
          "SSR_OSI_VALIDATION_RULE",
          "PNR_QUEUING_RULE",
          "GST_INFO_RULE",
          "CONTACT_INFO_RULE",
          "REDEEMING_MCO_RULE",
          "REDEEMING_UNUSED_CREDIT_NAME_CHANGE_RULE",
          "FARE_THRESHOLD_ON_BOOKING_OR_EXCHANGE_RULE",
          "ADD_AGENCY_ADDRESS_RULE",
          "BSP_EXCHANGE_VALID_EMD_RULE",
          "HOTEL_CANCELLATION_RULE",
          "ADD_ACCOUNTING_LINE_RULE",
          "EXTERNAL_COMMISSIONS_PROCESSING_RULE"
        ],
        "example": "FLIGHT_LAYOVER_RULE"
      },
      "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"
          }
        }
      },
      "RailCancellationDetails": {
        "type": "object",
        "title": "RailCancellationDetails",
        "description": "Cancellation details for rail booking.",
        "properties": {
          "refundOptions": {
            "type": "array",
            "description": "Refund options for this booking.",
            "items": {
              "$ref": "#/components/schemas/RailRefundOption"
            }
          }
        }
      },
      "RailCancellationDetailsWrapper": {
        "type": "object",
        "title": "RailCancellationDetailsWrapper",
        "description": "Wrapper for RailCancellationDetails",
        "properties": {
          "rail": {
            "$ref": "#/components/schemas/RailCancellationDetails"
          }
        }
      },
      "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"
          }
        }
      },
      "RailFareRateType": {
        "type": "string",
        "description": "Rate type classification for the fare.",
        "enum": [
          "UNKNOWN",
          "PUBLISHED",
          "COMPANY_NEGOTIATED",
          "TMC_NEGOTIATED",
          "RAIL_CARD"
        ],
        "example": "PUBLISHED"
      },
      "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"
            }
          }
        }
      },
      "RailItemNameMetadata": {
        "title": "RailItemNameMetadata",
        "type": "object",
        "description": "RailItemNameMetadata information.",
        "required": [
          "pnrType"
        ],
        "properties": {
          "railNameInvoiceMetadata": {
            "description": "RailNameInvoiceMetadata information.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RailNameInvoiceMetadata"
            }
          },
          "pnrType": {
            "type": "string",
            "example": "RAIL"
          }
        }
      },
      "RailJourneySummary": {
        "type": "object",
        "title": "RailJourneySummary",
        "required": [
          "origin",
          "destination"
        ],
        "properties": {
          "origin": {
            "type": "string",
            "example": "London"
          },
          "destination": {
            "type": "string",
            "example": "London"
          },
          "departureDateTime": {
            "$ref": "#/components/schemas/DateTimeOffset"
          },
          "arrivalDateTime": {
            "$ref": "#/components/schemas/DateTimeOffset"
          },
          "pnrStatus": {
            "$ref": "#/components/schemas/PnrStatus"
          },
          "journeyStatus": {
            "$ref": "#/components/schemas/PnrStatus"
          }
        }
      },
      "RailNameInvoiceMetadata": {
        "title": "RailNameInvoiceMetadata",
        "type": "object",
        "description": "RailMetadata information.",
        "properties": {
          "vendor": {
            "description": "Name of the rail.",
            "type": "string",
            "example": "Amtrak"
          },
          "trainTableId": {
            "description": "Train number.",
            "type": "string",
            "example": "A123"
          },
          "origin": {
            "description": "Origin of the train.",
            "type": "string",
            "example": "Washington Union Station"
          },
          "destination": {
            "description": "Destination of the train.",
            "type": "string",
            "example": "South Station"
          },
          "date": {
            "description": "Date of the journey.",
            "$ref": "#/components/schemas/DateModel"
          },
          "travelClass": {
            "description": "Travel class.",
            "$ref": "#/components/schemas/RailTravelClass",
            "example": "FIRST"
          },
          "fareType": {
            "description": "Fare type.",
            "type": "string",
            "example": "Flexible Fare"
          },
          "confirmationNumber": {
            "description": "Confirmation number.",
            "type": "string",
            "example": "1234567890"
          }
        }
      },
      "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."
          },
          "rateType": {
            "$ref": "#/components/schemas/RailFareRateType"
          },
          "corporateRates": {
            "type": "array",
            "description": "Corporate rate details when rateType is company or TMC negotiated.",
            "items": {
              "$ref": "#/components/schemas/CorporateRateDetail"
            }
          }
        }
      },
      "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"
          },
          "merchantFee": {
            "description": "Merchant fee charged on top of the base fare.",
            "$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"
          }
        }
      },
      "RailPnrSummary": {
        "type": "object",
        "title": "RailPnrSummary",
        "description": "Summary of Rail PNR",
        "properties": {
          "journeys": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RailJourneySummary"
            }
          },
          "totalAmount": {
            "$ref": "#/components/schemas/Money"
          }
        }
      },
      "RailPnrSummaryWrapper": {
        "type": "object",
        "title": "RailPnrSummaryWrapper",
        "properties": {
          "railPnrSummary": {
            "$ref": "#/components/schemas/RailPnrSummary"
          }
        }
      },
      "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",
          "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
          },
          "merchantFee": {
            "description": "Merchant fee charged on top of the base fare.",
            "$ref": "#/components/schemas/Money"
          }
        }
      },
      "RailRefundOption": {
        "type": "object",
        "title": "RailRefundOption",
        "description": "Refund options for this rail booking.",
        "required": [
          "refundId",
          "refundRateInfo"
        ],
        "properties": {
          "refundId": {
            "type": "string",
            "description": "Refund option id.",
            "example": "1234567890"
          },
          "refundRateInfo": {
            "description": "Rail refund fare info.",
            "$ref": "#/components/schemas/RailRefundRateInfo"
          },
          "legs": {
            "type": "array",
            "description": "List of leg indices for the refund option.",
            "items": {
              "type": "integer",
              "format": "int32",
              "example": 1
            }
          }
        }
      },
      "RailRefundRateInfo": {
        "type": "object",
        "title": "RailRefundRateInfo",
        "description": "Rate information for this refund option.",
        "required": [
          "totalFare"
        ],
        "properties": {
          "totalFare": {
            "description": "Total fare.",
            "$ref": "#/components/schemas/FareAmount"
          },
          "nonRefundableFare": {
            "description": "Non refundable fare.",
            "$ref": "#/components/schemas/FareAmount"
          },
          "cancellationFee": {
            "description": "Cancellation fee.",
            "$ref": "#/components/schemas/Money"
          },
          "refund": {
            "description": "Total refund amount.",
            "$ref": "#/components/schemas/Money"
          },
          "voucher": {
            "description": "Refund voucher details",
            "$ref": "#/components/schemas/RailRefundVoucher"
          }
        }
      },
      "RailRefundVoucher": {
        "type": "object",
        "title": "RailRefundVoucher",
        "description": "Refund voucher information for this refund option.",
        "required": [
          "amount"
        ],
        "properties": {
          "amount": {
            "description": "Amount refunded as voucher.",
            "$ref": "#/components/schemas/Money"
          }
        }
      },
      "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",
            "x-pii": "IDENTIFIER"
          },
          "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"
          }
        }
      },
      "ReferenceId": {
        "type": "object",
        "title": "ReferenceId",
        "description": "Reference number to be shown on the invoice.",
        "required": [
          "label",
          "value"
        ],
        "properties": {
          "label": {
            "description": "Label for the reference ID on invoice.",
            "type": "string",
            "enum": [
              "TRIP_ID",
              "PNR_ID",
              "AGENCY_REFERENCE"
            ],
            "example": "AGENCY_REFERENCE"
          },
          "value": {
            "description": "The reference ID.",
            "type": "string",
            "example": "122332432"
          }
        }
      },
      "RefreshType": {
        "title": "RefreshType",
        "type": "string",
        "enum": [
          "REFRESH_TYPE_BLOCKING",
          "REFRESH_TYPE_ASYNC",
          "REFRESH_TYPE_DISABLED"
        ],
        "example": "REFRESH_TYPE_BLOCKING",
        "description": "Refresh Type:\n * REFRESH_TYPE_BLOCKING - Block the read call, till the PNRs are refreshed.\n * REFRESH_TYPE_ASYNC - Refresh the PNRs asynchronously and return the previous PNR versions.\n * REFRESH_TYPE_DISABLED - Disable trip refresh for the read call.\n"
      },
      "RefundInfoDetail": {
        "title": "RefundInfoDetail",
        "description": "Describe the refund info associated with cancel object.",
        "type": "object",
        "properties": {
          "refundType": {
            "type": "string",
            "enum": [
              "REFUND",
              "CREDIT"
            ],
            "description": "Type of refund.",
            "example": "CREDIT"
          },
          "amount": {
            "$ref": "#/components/schemas/FareAmount"
          },
          "fop": {
            "$ref": "#/components/schemas/FormOfPayment"
          },
          "expiryDate": {
            "$ref": "#/components/schemas/DateModel",
            "description": "Expiration for a CREDIT refund. This field will be ignored for all cases where the\nrefund_type is not CREDIT. If not set, we assume the credit will expire one year from\nticket issue date.\n"
          }
        }
      },
      "RegionCode": {
        "description": "The region code for which the following invoicing information is applicable.",
        "type": "string",
        "enum": [
          "US",
          "UK",
          "NL",
          "SG",
          "CA",
          "MX",
          "DO",
          "AR",
          "BR",
          "CO",
          "GT",
          "PE",
          "CR",
          "IL",
          "NOR",
          "AE",
          "SE",
          "TR",
          "PL",
          "SA",
          "ZA",
          "AU",
          "CN",
          "HK",
          "IN",
          "ID",
          "JP",
          "KR",
          "MY",
          "NZ",
          "PH",
          "TH",
          "VN",
          "FR",
          "DK",
          "CZ",
          "HU",
          "AL",
          "BY",
          "BA",
          "BG",
          "IS",
          "AD",
          "AT",
          "BE",
          "CY",
          "EE",
          "FI",
          "DE",
          "GR",
          "IE",
          "IT",
          "XK",
          "LV",
          "LT",
          "LU",
          "MC",
          "ME",
          "MT",
          "PT",
          "SM",
          "SK",
          "SI",
          "ES",
          "VA",
          "HR",
          "LI",
          "MD",
          "MK",
          "RO",
          "RU",
          "RS",
          "CH",
          "UA",
          "GB",
          "TW"
        ],
        "example": "US"
      },
      "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",
            "x-pii": "SENSITIVE"
          },
          "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"
        ]
      },
      "RestrictedKeywordsWithReason": {
        "type": "object",
        "properties": {
          "keyword": {
            "type": "string",
            "description": "Restricted keyword",
            "example": "Test Keyword"
          },
          "reason": {
            "type": "string",
            "description": "Reason for restriction",
            "example": "Test Reason"
          }
        }
      },
      "RewardsProgramMetadata": {
        "type": "object",
        "title": "RewardsProgramMetadata",
        "description": "Metadata for Rewards Program payment source.",
        "required": [
          "type"
        ],
        "properties": {
          "type": {
            "$ref": "#/components/schemas/RewardsProgramType"
          },
          "pointsBalance": {
            "$ref": "#/components/schemas/PointsBalance"
          }
        }
      },
      "RewardsProgramMetadataWrapper": {
        "type": "object",
        "title": "RewardsProgramMetadataWrapper",
        "description": "Wrapper for RewardsProgramMetadata",
        "properties": {
          "rewardsProgramMetadata": {
            "$ref": "#/components/schemas/RewardsProgramMetadata"
          }
        }
      },
      "RewardsProgramType": {
        "type": "string",
        "title": "RewardsProgramType",
        "description": "Type of Rewards Program",
        "enum": [
          "BREX_POINTS",
          "QANTAS_POINTS"
        ]
      },
      "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/CancellationPolicy3",
            "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",
              "BRAILLE_SIGNAGE",
              "WHEELCHAIR_ACCESSIBLE_VANITY",
              "LOWERED_ELECTRICAL_OUTLETS",
              "LOWERED_PEEPHOLE",
              "LOWERED_LOCKS",
              "LOWERED_COUNTERS",
              "LOWERED_DESK",
              "LOWERED_BED",
              "LEVER_DOOR_HANDLES",
              "ACCESSIBLE_COUNTER_HEIGHT",
              "ACCESSIBLE_DOORWAY_WIDTH",
              "ACCESSIBLE_VANITY_HEIGHT",
              "ACCESSIBLE_BED_HEIGHT",
              "ACCESSIBLE_DESK_HEIGHT",
              "ACCESSIBLE_SHOWER_WIDTH"
            ],
            "example": "WEB_ENABLED"
          }
        }
      },
      "RoomClass": {
        "type": "string",
        "description": "Room Class",
        "enum": [
          "STANDARD",
          "PREMIUM",
          "DELUXE",
          "BUSINESS",
          "PRESIDENTIAL",
          "SUPERIOR",
          "JUNIOR",
          "CLUB",
          "UNKNOWN"
        ],
        "example": "PRESIDENTIAL"
      },
      "RoomFee": {
        "type": "object",
        "title": "RoomFee",
        "description": "Room Fee",
        "required": [
          "amount"
        ],
        "properties": {
          "amount": {
            "$ref": "#/components/schemas/Money",
            "description": "Fees amount"
          },
          "feeInclusions": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Amenities included as part of the fee"
          },
          "displayFee": {
            "type": "boolean",
            "description": "Flag to determine whether to explicitly show this fee type on UI"
          },
          "feeType": {
            "type": "string",
            "description": "Fees Type",
            "enum": [
              "UNKNOWN",
              "BED_TAX",
              "CITY_HOTEL_FEE",
              "CITY_TAX",
              "COUNTRY_TAX",
              "ENERGY_TAX",
              "FEDERAL_TAX",
              "FOOD_AND_BEVERAGE_TAX",
              "LODGING_TAX",
              "MAINTENANCE_FEE",
              "OCCUPANCY_TAX",
              "PACKAGE_FEE",
              "RESORT_FEE",
              "SALES_TAX",
              "SERVICE_CHARGE",
              "STATE_TAX",
              "SURCHARGE",
              "TOTAL_TAX",
              "TOURISM_TAX",
              "VAT_GST_TAX",
              "SURPLUS_LINES_TAX",
              "INSURANCE_PREMIUM_TAX",
              "APPLICATON_FEE",
              "EXPRESS_HANDLING_FEE",
              "EXEMPT",
              "STANDARD",
              "ZERO_RATED",
              "MISCELLANEOUS",
              "ROOM_TAX",
              "EARLY_CHECKOUT_FEE",
              "COUNTRY_TAXES",
              "EXTRA_PERSON_CHARGE",
              "BANQUET_SERVICE_FEE",
              "ROOM_SERVICE_FEE",
              "LOCAL_FEE",
              "GOODS_AND_SERVICES_TAX",
              "VALUE_ADDED_TAX",
              "CRIB_FEE",
              "ROLLAWAY_FEE",
              "ASSESSMENT_LICENSE_TAX",
              "PET_SANITATION_FEE",
              "NOT_KNOWN",
              "CHILD_ROLLAWAY_CHARGE",
              "CONVENTION_TAX",
              "EXTRA_CHILD_CHARGE",
              "STANDARD_FOOD_AND_BEVERAGE_GRATUITY",
              "NATIONAL_GOVERNMENT_TAX",
              "ADULT_ROLLAWAY_FEE",
              "BEVERAGE_WITH_ALCOHOL",
              "BEVERAGE_WITHOUT_ALCOHOL",
              "TOBACCO",
              "FOOD",
              "TOTAL_SURCHARGES",
              "STATE_COST_RECOVERY_FEE",
              "MISCELLANEOUS_FEE",
              "DESTINATION_AMENITY_FEE",
              "REFUNDABLE_PET_FEE",
              "CHARITY_SUPPORT_FEE",
              "LOCAL_AMENITY_USAGE_MAINTENANCE_FEE",
              "CONVENTION_TOURISM_FEE",
              "DESTINATION_MARKETING_FEE",
              "HOTEL_DEVELOPMENT_FEE",
              "EVENT_FEE",
              "SUSTAINABILITY_FEE",
              "TRANSPORTATION_TRANSFER_FEE",
              "INSURANCE_FEE",
              "LOCAL_GOVERNMENT_FEE",
              "LOCAL_ORDINANCE_SURCHARGE",
              "GUARANTEED_EARLY_CHECK_IN_FEE",
              "GUARANTEED_LATE_CHECK_OUT_FEE",
              "MODIFICATION_FEE",
              "HOTEL_ANCILLARY_EARLY_CHECK_IN_FEE",
              "HOTEL_ANCILLARY_LATE_CHECK_OUT_FEE",
              "HOTEL_ANCILLARY_PET_FEE",
              "HOTEL_ANCILLARY_WIFI_FEE",
              "HOTEL_ANCILLARY_BREAKFAST_FEE",
              "HOTEL_ANCILLARY_PARKING_FEE",
              "HOTEL_ANCILLARY_MEAL_PLAN_FEE",
              "ACCESSIBILITY_EQUIPMENT_FEE",
              "TOURISM_MARKETING_FEE"
            ],
            "example": "ROOM_TAX"
          }
        }
      },
      "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",
          "VALLEY"
        ]
      },
      "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"
          }
        }
      },
      "SabrePnrRemark": {
        "type": "object",
        "title": "SabrePnrRemark",
        "description": "Sabre Remark",
        "properties": {
          "type": {
            "$ref": "#/components/schemas/SabrePnrRemarkType"
          },
          "text": {
            "type": "string",
            "description": "ThirdPartyPnrRemark",
            "example": "PREF ALLIANCES 1-ONE WORLD/AA"
          },
          "legIndex": {
            "type": "integer",
            "description": "Index referencing the flight leg for which the remark should be added. Currently required only for OSI Remarks. Should be used in conjunction with the flight Index.",
            "example": 1
          },
          "flightIndex": {
            "type": "integer",
            "description": "Index referencing the flight for which the remark should be added. Currently required only for OSI Remarks. Should be used in conjunction with the leg Index.",
            "example": 0
          }
        }
      },
      "SabrePnrRemarkType": {
        "type": "string",
        "description": "Type of remark, for eg, General, Invoice, etc.",
        "enum": [
          "ALPHA_CODED",
          "CLIENT_ADDRESS",
          "CORPORATE",
          "DELIVERY_ADDRESS",
          "GENERAL",
          "GROUP_NAME",
          "HIDDEN",
          "HISTORICAL",
          "INVOICE",
          "ITINERARY",
          "OSI"
        ],
        "example": "GENERAL"
      },
      "SabrePnrRemarkWrapper": {
        "type": "object",
        "title": "SabrePnrRemarkWrapper",
        "description": "Wrapper for SabrePnrRemark",
        "properties": {
          "sabre": {
            "$ref": "#/components/schemas/SabrePnrRemark"
          }
        }
      },
      "SameDayChangePolicy": {
        "type": "object",
        "title": "SameDayChangePolicy",
        "properties": {
          "sameDayChangePolicy": {
            "$ref": "#/components/schemas/AirPolicy"
          }
        }
      },
      "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"
          }
        }
      },
      "SearchTripFilters": {
        "type": "object",
        "title": "SearchTripFilters",
        "description": "Filter parameters for the search trips request.",
        "discriminator": {
          "propertyName": "filterType",
          "mapping": {
            "TRIP_USER_ID_FILTER": "#/components/schemas/TripUserIdFilter",
            "TRIP_ID_FILTER": "#/components/schemas/TripIdFilter",
            "TRIP_TYPE_FILTER": "#/components/schemas/TripTypeFilter",
            "TRIP_TRAVEL_TYPE_FILTER": "#/components/schemas/TripTravelTypeFilter",
            "POLICY_STATUS_FILTER": "#/components/schemas/PolicyStatusFilter",
            "TRIP_START_DATE_RANGE_FILTER": "#/components/schemas/TripStartDateRangeFilter",
            "TRIP_END_DATE_RANGE_FILTER": "#/components/schemas/TripEndDateRangeFilter",
            "CREATE_DATE_RANGE_FILTER": "#/components/schemas/TripDateRangeFilter",
            "UPDATE_DATE_RANGE_FILTER": "#/components/schemas/TripDateRangeFilter",
            "OVERALL_STATUS_FILTER": "#/components/schemas/OverallStatusFilter",
            "TRIP_CREATED_BY_FILTER": "#/components/schemas/TripUserIdFilter",
            "TRIP_ROOT_EVENT_ID_FILTER": "#/components/schemas/TripIdFilter",
            "TRIP_TRAVELER_ID_FILTER": "#/components/schemas/TripUserIdFilter"
          }
        },
        "oneOf": [
          {
            "$ref": "#/components/schemas/TripUserIdFilter"
          },
          {
            "$ref": "#/components/schemas/TripIdFilter"
          },
          {
            "$ref": "#/components/schemas/TripTypeFilter"
          },
          {
            "$ref": "#/components/schemas/TripTravelTypeFilter"
          },
          {
            "$ref": "#/components/schemas/PolicyStatusFilter"
          },
          {
            "$ref": "#/components/schemas/TripStartDateRangeFilter"
          },
          {
            "$ref": "#/components/schemas/TripEndDateRangeFilter"
          },
          {
            "$ref": "#/components/schemas/TripDateRangeFilter"
          },
          {
            "$ref": "#/components/schemas/OverallStatusFilter"
          }
        ]
      },
      "SearchTripSortOptions": {
        "type": "object",
        "title": "SearchTripSortOptions",
        "description": "Sort options for the search trips request.",
        "required": [
          "sortField",
          "sortOrder"
        ],
        "properties": {
          "sortField": {
            "type": "string",
            "description": "Field to sort by",
            "enum": [
              "START_DATE",
              "END_DATE",
              "TRIP_NAME",
              "CREATION_DATE"
            ]
          },
          "sortOrder": {
            "$ref": "#/components/schemas/SortOrder"
          }
        }
      },
      "SearchTripsRequest": {
        "title": "SearchTripsRequest",
        "description": "Request for API to search trips for a company.",
        "type": "object",
        "required": [
          "paginationRequestParams"
        ],
        "properties": {
          "tripQuery": {
            "description": "Query multiple trip fields such as Trip ID, Trip name, PNR ID, etc.",
            "$ref": "#/components/schemas/TripQuery"
          },
          "paginationRequestParams": {
            "$ref": "#/components/schemas/OffsetBasedPaginationRequestParams"
          },
          "tripFilters": {
            "type": "array",
            "description": "Filter for the list trip summary request.",
            "items": {
              "$ref": "#/components/schemas/SearchTripFilters"
            }
          },
          "sortOptions": {
            "type": "array",
            "description": "Sort options for the list trip summary request.",
            "items": {
              "$ref": "#/components/schemas/SearchTripSortOptions"
            }
          },
          "includePnrSummaries": {
            "type": "boolean",
            "description": "Boolean flag to include PNR summaries in the response",
            "example": true
          }
        }
      },
      "SearchTripsResponse": {
        "title": "SearchTripsResponse",
        "description": "Response for API to search trips for a company.",
        "type": "object",
        "required": [
          "paginationResponseParams"
        ],
        "properties": {
          "paginationResponseParams": {
            "$ref": "#/components/schemas/OffsetBasedPaginationResponseParams"
          },
          "tripSummaries": {
            "type": "array",
            "description": "List of Trip summaries.",
            "items": {
              "$ref": "#/components/schemas/TripSummary"
            }
          },
          "disruptedTripsCount": {
            "type": "integer",
            "format": "int64",
            "description": "Total count of upcoming disrupted trips for the company."
          },
          "failedTripSummaries": {
            "type": "array",
            "description": "List of failed Trip summaries.",
            "items": {
              "$ref": "#/components/schemas/TripSummary"
            }
          }
        }
      },
      "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"
      },
      "SeatSelectionPolicy": {
        "type": "object",
        "title": "SeatSelectionPolicy",
        "properties": {
          "seatSelectionPolicy": {
            "$ref": "#/components/schemas/AirPolicy"
          }
        }
      },
      "SeatSelectionRule": {
        "type": "object",
        "description": "Seat selection rule",
        "required": [
          "description"
        ],
        "properties": {
          "description": {
            "type": "string",
            "description": "Seat selection policy text",
            "example": "Seat selection for free"
          }
        }
      },
      "SeatTypeInfo": {
        "type": "object",
        "description": "Seat information",
        "required": [
          "seatType"
        ],
        "properties": {
          "seatType": {
            "type": "string",
            "description": "Description of the type of seat available",
            "example": "Recliner seat"
          }
        }
      },
      "SeatTypePolicy": {
        "type": "object",
        "title": "SeatTypePolicy",
        "properties": {
          "seatTypePolicy": {
            "$ref": "#/components/schemas/AirPolicy"
          }
        }
      },
      "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."
          }
        }
      },
      "SecurityPolicy": {
        "type": "object",
        "title": "SecurityPolicy",
        "properties": {
          "securityPolicy": {
            "$ref": "#/components/schemas/AirPolicy"
          }
        }
      },
      "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"
            }
          }
        }
      },
      "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"
        ]
      },
      "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"
            ]
          }
        }
      },
      "SortOrder": {
        "type": "string",
        "description": "Sorting order.",
        "enum": [
          "DESC",
          "ASC"
        ],
        "example": "DESC",
        "default": "ASC"
      },
      "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"
            ]
          }
        }
      },
      "SplitAmount": {
        "type": "object",
        "title": "SplitAmount",
        "description": "Payment amount details if slider payment function is non-linear.",
        "properties": {
          "amount": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Money",
              "description": "List of split amounts required for slider at checkout."
            }
          }
        }
      },
      "SplitAmountWrapper": {
        "type": "object",
        "title": "SplitAmountWrapper",
        "description": "Split amount wrapper.",
        "properties": {
          "splitAmount": {
            "$ref": "#/components/schemas/SplitAmount"
          }
        }
      },
      "SplitOptionByCardCompany": {
        "type": "object",
        "title": "SplitOptionByCardCompany",
        "required": [
          "cardCompanyCode"
        ],
        "description": "Split option details when using a card from a specific card company",
        "properties": {
          "cardCompanyCode": {
            "type": "string",
            "description": "Card company code which allows splitting the payment",
            "example": "VI, TP"
          },
          "splitWithCardCompanyCodes": {
            "type": "array",
            "items": {
              "type": "string",
              "description": "Card company codes payment can be split with. Empty value will indicate that payment cannot be split with cards of any company."
            }
          }
        }
      },
      "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"
          }
        }
      },
      "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:#",
            "readOnly": true
          },
          "address": {
            "description": "Address for the given account",
            "$ref": "#/components/schemas/PostalAddress"
          },
          "taxId": {
            "type": "string",
            "description": "Tax id for account",
            "example": "89-189390"
          }
        }
      },
      "StripeInfoWrapper": {
        "type": "object",
        "title": "StripeInfoWrapper",
        "description": "Wrapper for StripeInfo",
        "required": [
          "stripeInfo"
        ],
        "properties": {
          "stripeInfo": {
            "$ref": "#/components/schemas/StripeInfo"
          }
        }
      },
      "Summary": {
        "type": "object",
        "title": "Summary",
        "properties": {
          "headline": {
            "type": "string",
            "description": "Summary headline"
          },
          "summaryDescription": {
            "type": "string",
            "description": "Summary description"
          }
        }
      },
      "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",
          "ENTERPRISE",
          "HYATT",
          "NATIONAL",
          "ALAMO",
          "HERTZ",
          "DOLLAR",
          "THRIFTY",
          "FIREFLY",
          "EUROSTAR",
          "AVIS",
          "BUDGET"
        ],
        "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"
      },
      "SuspendRequest": {
        "title": "SuspendRequest",
        "type": "object",
        "description": "Request object to suspend a Pnr.",
        "required": [
          "reason"
        ],
        "properties": {
          "reason": {
            "$ref": "#/components/schemas/SuspendReason"
          }
        }
      },
      "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",
              "BCD"
            ]
          }
        }
      },
      "ThirdPartyPnrRemark": {
        "title": "ThirdPartyPnrRemark",
        "description": "Third party remarks to the given PNR",
        "oneOf": [
          {
            "$ref": "#/components/schemas/SabrePnrRemarkWrapper"
          }
        ]
      },
      "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",
          "ENTERPRISE",
          "HYATT",
          "EUROSTAR",
          "NATIONAL",
          "ALAMO",
          "AVIS",
          "BUDGET",
          "HERTZ",
          "DOLLAR",
          "THRIFTY",
          "FIREFLY"
        ],
        "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"
                },
                "sourceStatus": {
                  "type": "string",
                  "description": "Source status code from the supplier",
                  "example": "Not 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",
                    "CABIN_UPGRADE",
                    "SEAT_UPGRADE",
                    "FARE_FAMILY_UPGRADE",
                    "PRIORITY",
                    "INFANT",
                    "UPGRADE",
                    "OTHER",
                    "MILES_PURCHASE",
                    "FEE",
                    "PET"
                  ],
                  "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
              }
            }
          },
          "ticketPolicyInfo": {
            "$ref": "#/components/schemas/TicketPolicyInfo"
          }
        }
      },
      "TicketCancellationInfo": {
        "type": "object",
        "title": "TicketCancellationInfo",
        "description": "Cancellation information for ticket. For non-ticketed PNRs, this represents the ticket that\nis in pending state.\n",
        "required": [
          "ticketType",
          "ticketFare",
          "cancellationState"
        ],
        "properties": {
          "ticketNumber": {
            "type": "string",
            "description": "Ticket number. For non-ticketed PNRs, this field will not be present.",
            "example": "0111234567890"
          },
          "ticketType": {
            "type": "string",
            "title": "TicketType",
            "description": "Type of ticket.",
            "example": "FLIGHT",
            "enum": [
              "FLIGHT",
              "ANCILLARY"
            ]
          },
          "ticketFare": {
            "description": "Fare of this ticket. For tickets created via exchange, it will be equal to add collect\n",
            "$ref": "#/components/schemas/FareAmount"
          },
          "cancellationState": {
            "description": "Current cancellation state for this ticket.",
            "$ref": "#/components/schemas/AirCancellationState"
          },
          "cancellationOptions": {
            "type": "array",
            "description": "Cancellation options for this ticket. A ticket can have multiple options, like refunding\nticket, converting ticket to flight credits.\n",
            "minItems": 1,
            "items": {
              "$ref": "#/components/schemas/AirCancellationOption"
            }
          },
          "cancellationNotSupportedReasons": {
            "type": "array",
            "description": "Reasons why cancellation is not supported via OBT.",
            "minItems": 1,
            "items": {
              "$ref": "#/components/schemas/AirCancellationNotSupportedReason"
            }
          },
          "isNonRefundableAndNonExchangeable": {
            "type": "boolean",
            "description": "If true, the ticket is not refundable and not exchangeable.",
            "readOnly": 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"
      },
      "TicketPolicyInfo": {
        "title": "TicketPolicyInfo",
        "type": "object",
        "properties": {
          "isPersonalUpgrade": {
            "type": "boolean",
            "description": "Indicates that this booking exceeded the allowed policy budget with the extra amount being charged on the traveler.",
            "example": false,
            "default": false
          }
        }
      },
      "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"
          }
        }
      },
      "TicketStatus": {
        "description": "Status of the ticket.",
        "type": "string",
        "enum": [
          "UNKNOWN",
          "ISSUED",
          "VOIDED",
          "REFUNDED_EXCHANGED",
          "EXCHANGED"
        ],
        "example": "ISSUED"
      },
      "TicketType": {
        "type": "string",
        "description": "The ticket issuance type for a given itinerary, whether single or multiple",
        "enum": [
          "SINGLE",
          "MULTI"
        ],
        "default": "SINGLE"
      },
      "Tier": {
        "type": "string",
        "title": "Tier",
        "description": "Tier of User.\nNote: In default UI, BASIC is displayed as Standard, and SEAT1A is displayed as VIP.\nDisplay names for other tiers are driven by the company tier configuration.\n",
        "enum": [
          "BASIC",
          "SEAT1A",
          "TIER_2",
          "TIER_3",
          "TIER_4",
          "TIER_5",
          "TIER_6",
          "TIER_7",
          "TIER_8",
          "TIER_9",
          "TIER_10",
          "TIER_11",
          "TIER_12",
          "TIER_13",
          "TIER_14",
          "TIER_15",
          "TIER_16",
          "TIER_17",
          "TIER_18",
          "TIER_19",
          "TIER_20",
          "TIER_21",
          "TIER_22",
          "TIER_23",
          "TIER_24",
          "TIER_25",
          "TIER_26",
          "TIER_27",
          "TIER_28",
          "TIER_29",
          "TIER_30",
          "TIER_31"
        ],
        "x-enum-varnames": [
          "BASIC",
          "SEAT1A",
          "TIER_2",
          "TIER_3",
          "TIER_4",
          "TIER_5",
          "TIER_6",
          "TIER_7",
          "TIER_8",
          "TIER_9",
          "TIER_10",
          "TIER_11",
          "TIER_12",
          "TIER_13",
          "TIER_14",
          "TIER_15",
          "TIER_16",
          "TIER_17",
          "TIER_18",
          "TIER_19",
          "TIER_20",
          "TIER_21",
          "TIER_22",
          "TIER_23",
          "TIER_24",
          "TIER_25",
          "TIER_26",
          "TIER_27",
          "TIER_28",
          "TIER_29",
          "TIER_30",
          "TIER_31"
        ],
        "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
          },
          "total": {
            "$ref": "#/components/schemas/FareTotal",
            "description": "Computed total with coinage relation."
          }
        }
      },
      "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",
          "APPLIED",
          "NOT_APPLICABLE"
        ],
        "x-ignoreBreakingChanges": [
          "TransactionStatus->APPLIED"
        ],
        "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",
          "HOTEL_ANCILLARY_BOOKED",
          "HOTEL_ANCILLARY_CANCELLED"
        ],
        "x-ignoreBreakingChanges": [
          "TransactionType->MISC_BOOKED",
          "TransactionType->MISC_CANCELLED",
          "TransactionType->HOTEL_ANCILLARY_BOOKED",
          "TransactionType->HOTEL_ANCILLARY_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"
      },
      "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"
          }
        }
      },
      "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."
          }
        }
      },
      "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"
          }
        }
      },
      "TravelerDetail": {
        "title": "TravelerDetail",
        "description": "Passenger information in the search response",
        "type": "object",
        "required": [
          "travelerId",
          "travelerType",
          "fareInfo"
        ],
        "properties": {
          "travelerId": {
            "type": "string",
            "description": "Unique identifier for the traveler in this response",
            "example": "adult_0"
          },
          "travelerType": {
            "$ref": "#/components/schemas/PassengerType"
          },
          "travelerAge": {
            "$ref": "#/components/schemas/PassengerAge"
          },
          "fareInfo": {
            "$ref": "#/components/schemas/FareInfo"
          },
          "fareMetadata": {
            "$ref": "#/components/schemas/FareMetadata"
          }
        }
      },
      "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"
          },
          "parentEventId": {
            "type": "string",
            "description": "Optional parent event's id.",
            "example": "56789012"
          },
          "bookingStyle": {
            "description": "Whether the event bookings will be self served by the traveler or would be arranged by an agent for the traveler.",
            "$ref": "#/components/schemas/EventBookingStyle"
          },
          "allowTravelersToRsvp": {
            "description": "Allow travelers to rsvp for the event",
            "$ref": "#/components/schemas/AllowTravelersToRsvp"
          }
        }
      },
      "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.",
            "x-pii": "SENSITIVE"
          },
          "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"
            }
          },
          "lastConfirmedTickets": {
            "type": "array",
            "description": "List of tickets from last confirmed version. These will only be set for cancelled PNRs.",
            "items": {
              "$ref": "#/components/schemas/Ticket"
            }
          },
          "nameNumber": {
            "type": "string",
            "description": "Name number associated to the traveler like 1.1, 2.1 from Sabre",
            "example": 1.1
          }
        }
      },
      "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"
          }
        ]
      },
      "TravelerLegInfo": {
        "title": "TravelerLegInfo",
        "type": "object",
        "description": "Per leg information for the associated traveler",
        "required": [
          "travelerId"
        ],
        "properties": {
          "travelerId": {
            "type": "string",
            "description": "Unique identifier for the traveler in this response",
            "example": "adult_0"
          },
          "travelerLegFare": {
            "description": "The fare amount for the traveler for a given leg",
            "$ref": "#/components/schemas/FareAmount"
          },
          "fareRules": {
            "description": "Fare rules applicable for the traveler",
            "$ref": "#/components/schemas/FareRules"
          }
        }
      },
      "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"
          },
          "blockLoyalty": {
            "type": "boolean",
            "description": "If true, hides the loyalty program input on the checkout page for this traveler.",
            "default": false,
            "example": false
          }
        }
      },
      "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"
          }
        }
      },
      "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"
          }
        }
      },
      "TripBudgetInfo": {
        "title": "TripBudgetInfo",
        "description": "Trip budget Info",
        "type": "object",
        "required": [
          "budgetName",
          "isMaskedBudget"
        ],
        "properties": {
          "budgetName": {
            "type": "string",
            "description": "Name of the budget"
          },
          "budgetRemainingBalance": {
            "$ref": "#/components/schemas/SimpleMoney",
            "description": "Remaining balance of the budget. It will be present only if the user has role agent and \nabove.\n"
          },
          "isPersonalCardAllowed": {
            "type": "boolean",
            "description": "Whether the personal card is allowed for the trip.",
            "example": true,
            "default": false
          },
          "isBudgetMasked": {
            "type": "boolean",
            "description": "Whether the budget is masked.",
            "example": false,
            "default": false
          },
          "budgetRemainingBalanceFormatted": {
            "type": "string",
            "description": "Remaining balance of the budget in formatted string.",
            "example": "$1000.00"
          },
          "externalCardDetails": {
            "$ref": "#/components/schemas/Card",
            "description": "Details of the external card."
          },
          "isRewardPointsAllowed": {
            "type": "boolean",
            "description": "Whether the reward points are allowed on the budget.",
            "example": true,
            "default": false
          },
          "rewardPoints": {
            "type": "number",
            "format": "double",
            "description": "Available reward point balance.",
            "example": 5050
          },
          "rewardPointsValueUsd": {
            "type": "number",
            "format": "double",
            "description": "Available reward points value in USD.",
            "example": 50.5
          }
        }
      },
      "TripBudgetInfoWrapper": {
        "title": "TripBudgetInfoWrapper",
        "description": "Trip budget info wrapper",
        "type": "object",
        "properties": {
          "tripBudgetInfo": {
            "$ref": "#/components/schemas/TripBudgetInfo"
          }
        }
      },
      "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",
            "x-pii": "SENSITIVE"
          },
          "email": {
            "type": "string",
            "description": "Email of the contact",
            "example": "himani@spotnana.com",
            "x-pii": "IDENTIFIER"
          },
          "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
          }
        }
      },
      "TripDateRangeFilter": {
        "type": "object",
        "title": "TripDateRangeFilter",
        "description": "Date range filter for the list trip summary request.",
        "required": [
          "filterType"
        ],
        "properties": {
          "filterType": {
            "type": "string"
          },
          "startDate": {
            "description": "Start date for the date range filter",
            "$ref": "#/components/schemas/DateModel"
          },
          "endDate": {
            "description": "End date for the date range filter",
            "$ref": "#/components/schemas/DateModel"
          }
        }
      },
      "TripDateTimeRangeFilter": {
        "type": "object",
        "title": "TripDateTimeRangeFilter",
        "description": "Date and time range with filter for the list trip summary request.",
        "required": [
          "filterType"
        ],
        "properties": {
          "filterType": {
            "type": "string"
          },
          "startDateTime": {
            "description": "Start date and time for the date time range filter",
            "$ref": "#/components/schemas/DateTimeOffset"
          },
          "endDateTime": {
            "description": "End date and time for the date time range filter",
            "$ref": "#/components/schemas/DateTimeOffset"
          }
        }
      },
      "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"
          }
        }
      },
      "TripEndDateRangeFilter": {
        "type": "object",
        "title": "TripDateRangeFilter",
        "description": "Date range filter for trip end date for the list trip summary request.",
        "required": [
          "filterType"
        ],
        "properties": {
          "filterType": {
            "type": "string"
          },
          "startDate": {
            "description": "Start date for the date range filter",
            "$ref": "#/components/schemas/DateModel"
          },
          "endDate": {
            "description": "End date for the date range filter",
            "$ref": "#/components/schemas/DateModel"
          }
        }
      },
      "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"
          }
        }
      },
      "TripFilters": {
        "type": "object",
        "description": "Filter parameters for the list trip summary request.",
        "x-ignoreBreakingChanges": [
          "TripFilters->TripDateTimeRangeFilter"
        ],
        "discriminator": {
          "propertyName": "filterType",
          "mapping": {
            "TRIP_USER_ID_FILTER": "#/components/schemas/TripUserIdFilter",
            "TRIP_ID_FILTER": "#/components/schemas/TripIdFilter",
            "COMPANY_ID_FILTER": "#/components/schemas/CompanyIdFilter",
            "TRIP_TYPE_FILTER": "#/components/schemas/TripTypeFilter",
            "TRIP_TRAVEL_TYPE_FILTER": "#/components/schemas/TripTravelTypeFilter",
            "POLICY_STATUS_FILTER": "#/components/schemas/PolicyStatusFilter",
            "TRIP_START_DATE_RANGE_FILTER": "#/components/schemas/TripStartDateRangeFilter",
            "TRIP_END_DATE_RANGE_FILTER": "#/components/schemas/TripEndDateRangeFilter",
            "CREATE_DATE_TIME_RANGE_FILTER": "#/components/schemas/TripDateTimeRangeFilter",
            "UPDATE_DATE_TIME_RANGE_FILTER": "#/components/schemas/TripDateTimeRangeFilter",
            "OVERALL_STATUS_FILTER": "#/components/schemas/OverallStatusFilter"
          }
        },
        "oneOf": [
          {
            "$ref": "#/components/schemas/TripUserIdFilter"
          },
          {
            "$ref": "#/components/schemas/TripIdFilter"
          },
          {
            "$ref": "#/components/schemas/CompanyIdFilter"
          },
          {
            "$ref": "#/components/schemas/TripTypeFilter"
          },
          {
            "$ref": "#/components/schemas/TripTravelTypeFilter"
          },
          {
            "$ref": "#/components/schemas/PolicyStatusFilter"
          },
          {
            "$ref": "#/components/schemas/TripStartDateRangeFilter"
          },
          {
            "$ref": "#/components/schemas/TripEndDateRangeFilter"
          },
          {
            "$ref": "#/components/schemas/OverallStatusFilter"
          },
          {
            "$ref": "#/components/schemas/TripDateTimeRangeFilter"
          }
        ]
      },
      "TripIdFilter": {
        "type": "object",
        "title": "TripIdFilter",
        "description": "Trip ids for the list trip summary request.",
        "required": [
          "filterType",
          "tripIds"
        ],
        "properties": {
          "filterType": {
            "type": "string"
          },
          "tripIds": {
            "type": "array",
            "description": "List of trip ids",
            "items": {
              "type": "string",
              "example": "6926658168"
            }
          }
        }
      },
      "TripLocation": {
        "title": "TripLocation",
        "description": "Location information for a trip.",
        "type": "object",
        "properties": {
          "metroAreaName": {
            "type": "string",
            "description": "Name of the metropolitan area.",
            "example": "San Francisco"
          }
        }
      },
      "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"
          }
        }
      },
      "TripPartnerInfo": {
        "title": "TripPartnerInfo",
        "description": "Partner info such as budget info for a given trip Id.",
        "type": "object",
        "required": [
          "partnerInfoType",
          "partnerInfoDetails"
        ],
        "properties": {
          "partnerInfoType": {
            "$ref": "#/components/schemas/TripPartnerInfoType"
          },
          "partnerInfoDetails": {
            "$ref": "#/components/schemas/TripPartnerInfoDetails"
          }
        }
      },
      "TripPartnerInfoDetails": {
        "title": "TripPartnerInfoDetailsWrapper",
        "description": "OneOf trip partner info Details",
        "type": "object",
        "oneOf": [
          {
            "$ref": "#/components/schemas/TripBudgetInfoWrapper"
          }
        ]
      },
      "TripPartnerInfoResponse": {
        "title": "TripPartnerInfoResponse",
        "description": "Partner info such as budget info for a given trip Id.",
        "type": "object",
        "required": [
          "tripId",
          "partnerInfo"
        ],
        "properties": {
          "tripId": {
            "type": "string",
            "description": "Spotnana trip Id",
            "example": "6926658168"
          },
          "partnerInfo": {
            "$ref": "#/components/schemas/TripPartnerInfo"
          }
        }
      },
      "TripPartnerInfoType": {
        "type": "string",
        "description": "Trip Partner Info type.",
        "default": "BUDGET",
        "enum": [
          "BUDGET"
        ]
      },
      "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"
          }
        }
      },
      "TripQuery": {
        "type": "object",
        "title": "TripQuery",
        "description": "Query multiple trip fields such as Trip ID, Trip name, PNR ID, etc.",
        "required": [
          "query"
        ],
        "properties": {
          "query": {
            "type": "string",
            "description": "Query text",
            "example": "Trip"
          }
        }
      },
      "TripSortOptions": {
        "type": "object",
        "title": "TripSortOptions",
        "description": "Sort options for the list trip summary request.",
        "required": [
          "sortField",
          "sortOrder"
        ],
        "properties": {
          "sortField": {
            "type": "string",
            "description": "Field to sort by",
            "enum": [
              "START_DATE",
              "END_DATE"
            ]
          },
          "sortOrder": {
            "$ref": "#/components/schemas/SortOrder"
          }
        }
      },
      "TripStartDateRangeFilter": {
        "type": "object",
        "title": "TripDateRangeFilter",
        "description": "Date range filter for trip start date for the list trip summary request.",
        "required": [
          "filterType"
        ],
        "properties": {
          "filterType": {
            "type": "string"
          },
          "startDate": {
            "description": "Start date for the date range filter",
            "$ref": "#/components/schemas/DateModel"
          },
          "endDate": {
            "description": "End date for the date range filter",
            "$ref": "#/components/schemas/DateModel"
          }
        }
      },
      "TripSummary": {
        "title": "TripSummary",
        "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"
          },
          "description": {
            "type": "string",
            "description": "Description of the trip",
            "example": "Business Trip"
          },
          "pnrSummaries": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PnrSummary"
            }
          },
          "tripStatus": {
            "$ref": "#/components/schemas/PnrBookingStatus"
          },
          "startDate": {
            "$ref": "#/components/schemas/DateModel"
          },
          "endDate": {
            "$ref": "#/components/schemas/DateModel"
          },
          "userBasicInfo": {
            "$ref": "#/components/schemas/UserBasicInfo"
          },
          "overallStatus": {
            "$ref": "#/components/schemas/OverallStatus"
          },
          "tripUsageMetadata": {
            "$ref": "#/components/schemas/TripUsageMetadata"
          },
          "createdByUserBasicInfo": {
            "$ref": "#/components/schemas/UserBasicInfo"
          },
          "policyStatus": {
            "$ref": "#/components/schemas/PolicyStatus"
          },
          "imageId": {
            "type": "string",
            "description": "Image identifier to fetch any image and render on trips page.",
            "example": "london"
          }
        }
      },
      "TripTravelTypeFilter": {
        "type": "object",
        "title": "TripTravelTypeFilter",
        "description": "Travel type filter for the company list trip summary request.",
        "required": [
          "filterType",
          "travelTypes"
        ],
        "properties": {
          "filterType": {
            "type": "string"
          },
          "travelTypes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TravelType"
            }
          }
        }
      },
      "TripType": {
        "type": "string",
        "enum": [
          "UPCOMING",
          "PAST_OR_COMPLETED",
          "CANCELLED",
          "DISRUPTED",
          "DRAFT"
        ],
        "example": "UPCOMING"
      },
      "TripTypeFilter": {
        "type": "object",
        "title": "TripTypeFilter",
        "description": "Trip type filter for the list trip summary request.",
        "required": [
          "filterType",
          "tripTypes"
        ],
        "properties": {
          "filterType": {
            "type": "string"
          },
          "tripTypes": {
            "type": "array",
            "description": "List of trip types",
            "items": {
              "$ref": "#/components/schemas/TripType"
            }
          }
        }
      },
      "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"
        ]
      },
      "TripUserIdFilter": {
        "type": "object",
        "title": "TripUserIdFilter",
        "description": "User ids for the list trip summary request.",
        "required": [
          "filterType",
          "userIds"
        ],
        "properties": {
          "filterType": {
            "type": "string"
          },
          "userIds": {
            "type": "array",
            "description": "List of user ids",
            "items": {
              "$ref": "#/components/schemas/UserId"
            }
          }
        }
      },
      "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"
          }
        }
      },
      "UAPassPlusMetadata": {
        "type": "object",
        "title": "UAPassPlusMetadata",
        "description": "Details for UAPassPlus Metadata.",
        "required": [
          "programDetails",
          "uatpInfo"
        ],
        "properties": {
          "programDetails": {
            "$ref": "#/components/schemas/ProgramDetails"
          },
          "uatpInfo": {
            "$ref": "#/components/schemas/UATPInformation"
          }
        }
      },
      "UAPassPlusMetadataExternal": {
        "type": "object",
        "title": "UAPassPlusMetadata",
        "description": "Details for UAPassPlus Metadata.",
        "properties": {
          "uatpInfo": {
            "type": "object",
            "title": "uatpInfo",
            "description": "UATP card information for UAPassPlus"
          }
        }
      },
      "UAPassPlusMetadataWrapper": {
        "type": "object",
        "title": "UAPassPlusMetadataWrapper",
        "description": "Wrapper for UAPassPlus Metadata.",
        "properties": {
          "uaPassPlusMetadata": {
            "$ref": "#/components/schemas/UAPassPlusMetadata"
          }
        }
      },
      "UAPassPlusMetadataWrapperExternal": {
        "type": "object",
        "title": "UAPassPlusMetadataResponseWrapper",
        "description": "Wrapper for UAPassPlus response metadata",
        "required": [
          "uaPassPlusMetadata"
        ],
        "properties": {
          "uaPassPlusMetadata": {
            "$ref": "#/components/schemas/UAPassPlusMetadataExternal"
          }
        }
      },
      "UATPInformation": {
        "type": "object",
        "title": "UATPInformation",
        "description": "Descriptor for UATPInformation.",
        "required": [
          "card",
          "ticketingValidity",
          "travelValidity"
        ],
        "properties": {
          "card": {
            "$ref": "#/components/schemas/Card"
          },
          "ticketingValidity": {
            "description": "Valid ticketing datetime.",
            "$ref": "#/components/schemas/DateTimeRange"
          },
          "travelValidity": {
            "description": "Valid travel datetime.",
            "$ref": "#/components/schemas/DateTimeRange"
          }
        }
      },
      "UATPMetadata": {
        "type": "object",
        "title": "UATPMetadata",
        "description": "Details for UATP Metadata.",
        "required": [
          "card"
        ],
        "properties": {
          "card": {
            "$ref": "#/components/schemas/Card"
          }
        }
      },
      "UATPMetadataWrapper": {
        "type": "object",
        "title": "UATPMetadataWrapper",
        "description": "Wrapper for UATP Metadata.",
        "properties": {
          "uatpMetadata": {
            "$ref": "#/components/schemas/UATPMetadata"
          }
        }
      },
      "UnusablePaymentSource": {
        "type": "object",
        "title": "UnusablePaymentSource",
        "description": "The payment sources which are not usable for the payment rule",
        "required": [
          "id"
        ],
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "description": "Unique identifier identifying this payment source",
            "example": "f49d00fe-1eda-4304-ba79-a980f565281d"
          },
          "reason": {
            "$ref": "#/components/schemas/UnusableReason"
          }
        }
      },
      "UnusableReason": {
        "type": "string",
        "description": "Reason why a payment source is not usable.",
        "enum": [
          "SUPPLIER_RESTRICTION",
          "POLICY_RESTRICTION"
        ]
      },
      "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."
          },
          "legalEntityName": {
            "type": "string",
            "description": "The name of the legal entity associated with this 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"
      },
      "UpdateTripRequest": {
        "title": "UpdateTripRequest",
        "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"
          }
        }
      },
      "UpdateTripV3Request": {
        "title": "UpdateTripV3Request",
        "description": "Update trip request",
        "type": "object",
        "properties": {
          "tripContacts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TripContact"
            }
          },
          "tripCommunicationPreferences": {
            "$ref": "#/components/schemas/TripCommunicationPreferences"
          }
        }
      },
      "UpgradeEligibilityPolicy": {
        "type": "object",
        "title": "UpgradeEligibilityPolicy",
        "properties": {
          "upgradeEligibilityPolicy": {
            "$ref": "#/components/schemas/AirPolicy"
          }
        }
      },
      "User": {
        "type": "object",
        "title": "User",
        "description": "User details.",
        "properties": {
          "addresses": {
            "type": "array",
            "x-pii": "SENSITIVE",
            "items": {
              "$ref": "#/components/schemas/PostalAddress"
            }
          },
          "dob": {
            "$ref": "#/components/schemas/DateModel",
            "x-pii": "SENSITIVE"
          },
          "email": {
            "type": "string",
            "format": "email",
            "example": "example@email.com",
            "x-pii": "IDENTIFIER"
          },
          "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",
            "x-pii": "IDENTIFIER",
            "items": {
              "$ref": "#/components/schemas/PhoneNumber"
            }
          },
          "profilePicture": {
            "$ref": "#/components/schemas/Image",
            "x-pii": "SENSITIVE"
          },
          "nationality": {
            "type": "string",
            "example": "Indian",
            "description": "Nationality of user",
            "x-pii": "SENSITIVE"
          },
          "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",
            "x-pii": "IDENTIFIER"
          },
          "name": {
            "$ref": "#/components/schemas/Name"
          },
          "profilePicture": {
            "$ref": "#/components/schemas/Image"
          },
          "tier": {
            "$ref": "#/components/schemas/Tier"
          },
          "phoneNumber": {
            "$ref": "#/components/schemas/PhoneNumber",
            "x-pii": "IDENTIFIER"
          },
          "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",
            "x-pii": "IDENTIFIER"
          },
          "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",
            "x-pii": "IDENTIFIER",
            "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",
            "x-pii": "IDENTIFIER"
          }
        }
      },
      "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",
            "x-pii": "SENSITIVE",
            "items": {
              "$ref": "#/components/schemas/PostalAddress"
            }
          },
          "dob": {
            "$ref": "#/components/schemas/DateModel",
            "x-pii": "SENSITIVE"
          },
          "email": {
            "type": "string",
            "format": "email",
            "example": "example@email.com",
            "x-pii": "IDENTIFIER"
          },
          "emergencyContactInfo": {
            "deprecated": true,
            "x-sunset": "2026-07-01",
            "$ref": "#/components/schemas/EmergencyContactInfo"
          },
          "gender": {
            "$ref": "#/components/schemas/Gender",
            "x-pii": "SENSITIVE"
          },
          "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",
            "x-pii": "IDENTIFIER",
            "items": {
              "$ref": "#/components/schemas/PhoneNumber"
            }
          },
          "profilePicture": {
            "$ref": "#/components/schemas/Image",
            "x-pii": "SENSITIVE"
          },
          "nationality": {
            "type": "string",
            "example": "Indian",
            "description": "Nationality of user",
            "x-pii": "SENSITIVE"
          },
          "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"
          }
        }
      },
      "UserTitle": {
        "title": "UserTitle",
        "type": "string",
        "x-pii": "SENSITIVE",
        "enum": [
          "TITLE_UNKNOWN",
          "MR",
          "MS",
          "MRS",
          "MX",
          "MASTER",
          "MISS",
          "DR",
          "PROFESSOR",
          "CAPTAIN",
          "REVEREND",
          "HONOURABLE",
          "SIR",
          "LADY",
          "AMBASSADOR",
          "LORD",
          "BRIGADIER",
          "SENATOR",
          "DAME",
          "JUSTICE",
          "UK",
          "TITLE_REDACTED"
        ],
        "example": "MR"
      },
      "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"
          }
        }
      },
      "Value": {
        "type": "object",
        "title": "Value",
        "description": "Policy value which can be used by clients to decide how this policy is displayed.",
        "properties": {
          "seat": {
            "type": "string",
            "enum": [
              "UNKNOWN",
              "STANDARD",
              "RECLINER",
              "ANGLE_FLAT",
              "FLAT",
              "SUITE"
            ],
            "example": "RECLINER"
          }
        }
      },
      "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."
          }
        }
      },
      "VendorProgramPaymentDescriptor": {
        "type": "object",
        "title": "VendorProgramPaymentDescriptor",
        "description": "Descriptor for vendor program payment.",
        "required": [
          "vendorProgramPaymentMetadata"
        ],
        "properties": {
          "vendorInfo": {
            "$ref": "#/components/schemas/VendorInfo"
          },
          "vendorProgramPaymentMetadata": {
            "$ref": "#/components/schemas/VendorProgramPaymentMetadata"
          }
        }
      },
      "VendorProgramPaymentDescriptorWrapper": {
        "type": "object",
        "title": "VendorProgramPaymentDescriptorWrapper",
        "description": "Wrapper for VendorProgramPaymentDescriptor",
        "properties": {
          "vendorProgramPaymentDescriptor": {
            "$ref": "#/components/schemas/VendorProgramPaymentDescriptor"
          }
        }
      },
      "VendorProgramPaymentMetadata": {
        "type": "object",
        "title": "VendorProgramPaymentMetadata",
        "description": "Vendor program payment specific metadata.",
        "oneOf": [
          {
            "$ref": "#/components/schemas/DirectBillingWrapper"
          },
          {
            "$ref": "#/components/schemas/AirlineProgramWrapper"
          }
        ]
      },
      "VendorProgramPaymentMetadata2": {
        "type": "object",
        "title": "VendorProgramPaymentMetadata",
        "description": "Metadata related to vendor program payment method",
        "oneOf": [
          {
            "$ref": "#/components/schemas/DirectBillingWrapper2"
          },
          {
            "$ref": "#/components/schemas/UAPassPlusMetadataWrapperExternal"
          }
        ]
      },
      "VendorProgramType": {
        "type": "string",
        "description": "The type of the vendor program",
        "enum": [
          "UA_PASS_PLUS",
          "GENERIC_PROGRAM_TYPE"
        ]
      },
      "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"
          }
        }
      },
      "VirtualCardMetadata": {
        "type": "object",
        "title": "VirtualCardMetadata",
        "description": "Metadata for Virtual Card payment source.",
        "required": [
          "vendor",
          "cardLabel",
          "company"
        ],
        "properties": {
          "vendor": {
            "$ref": "#/components/schemas/VirtualCardVendor"
          },
          "cardLabel": {
            "type": "string",
            "description": "Name/Label for visual identification of the card.",
            "example": "cardCompany"
          },
          "company": {
            "$ref": "#/components/schemas/CardCompany"
          },
          "paymentInstruction": {
            "$ref": "#/components/schemas/PaymentInstruction"
          }
        }
      },
      "VirtualCardMetadataWrapper": {
        "type": "object",
        "title": "VirtualCardMetadataWrapper",
        "description": "Wrapper for VirtualCardMetadata",
        "properties": {
          "virtualCardMetadata": {
            "$ref": "#/components/schemas/VirtualCardMetadata"
          }
        }
      },
      "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"
          }
        }
      },
      "VirtualPaymentMetadata": {
        "type": "object",
        "title": "VirtualPaymentMetadata",
        "required": [
          "label"
        ],
        "description": "Metadata for custom virtual payment source.",
        "properties": {
          "label": {
            "type": "string",
            "example": "Custom payment card",
            "description": "Label for custom virtual payment source."
          }
        }
      },
      "VirtualPaymentMetadataWrapper": {
        "type": "object",
        "title": "VirtualPaymentMetadataWrapper",
        "description": "Wrapper for custom virtual payment metadata",
        "required": [
          "virtualPaymentMetadata"
        ],
        "properties": {
          "virtualPaymentMetadata": {
            "$ref": "#/components/schemas/VirtualPaymentMetadata"
          }
        }
      },
      "VoidPolicy": {
        "type": "object",
        "title": "VoidPolicy",
        "description": "Void policy information for the PNR",
        "properties": {
          "isVoidable": {
            "type": "boolean",
            "description": "Set to true if either PNR is not ticketed or the PNR can be voided based on all the pre validation checks",
            "example": true
          },
          "voidPeriod": {
            "$ref": "#/components/schemas/Duration",
            "description": "Duration up to which free cancelling is allowed. The field is not set if isVoidable is false, or when the PNR can be cancelled indefinitely (like when PNR hasn't been ticketed yet, but is in the confirmed state)"
          },
          "isInfoAvailable": {
            "type": "boolean",
            "description": "If false, void policy is not available for the PNR",
            "example": true
          }
        }
      },
      "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"
          }
        }
      },
      "WeeklyOperatingSchedule": {
        "type": "object",
        "title": "WeeklyOperatingSchedule",
        "description": "Weekly operating schedule of vendor with day of week",
        "required": [
          "interval"
        ],
        "properties": {
          "interval": {
            "type": "array",
            "description": "Operating schedule intervals",
            "items": {
              "$ref": "#/components/schemas/DateTimeRange"
            }
          },
          "dayOfWeek": {
            "type": "string",
            "description": "Day of the week for which operating schedule is valid",
            "example": "SUN"
          }
        }
      },
      "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"
          }
        }
      }
    }
  },
  "tags": [
    {
      "name": "Trips",
      "description": "APIs to manage trips."
    },
    {
      "name": "Trip PNRs",
      "description": "APIs to manage PNRs within trips.",
      "x-displayName": "PNRs"
    },
    {
      "name": "Invoicing",
      "description": "APIs to manage invoicing."
    },
    {
      "name": "Approval",
      "description": "APIs to manage approvals."
    }
  ],
  "paths": {
    "/v2/trips": {
      "post": {
        "tags": [
          "Trips"
        ],
        "summary": "Create trip",
        "description": "This endpoint creates a trip object. A trip is a container object for all related PNRs associated \nwith a trip.\n",
        "operationId": "createTrip",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateTripRequest"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EntityNonUUIDId",
                  "example": {
                    "id": 1234567890
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          }
        }
      }
    },
    "/v2/trips/{tripId}": {
      "parameters": [
        {
          "name": "tripId",
          "in": "path",
          "description": "Identifier for trip.",
          "required": true,
          "schema": {
            "type": "string"
          },
          "example": "2398199412"
        }
      ],
      "get": {
        "deprecated": true,
        "x-sunset": "2026-07-01",
        "tags": [
          "Trips"
        ],
        "summary": "Get trip",
        "description": "Retrieves trip info by ID.\n{% admonition type=\"warning\" name=\"Deprecation notice\" %}\nThe **Get Trip** `/v2/trips/{tripId}` endpoint has been deprecated.\nUse the new **Get trip details** `/v3/trips/{tripId}/detail` endpoint instead.\n{% /admonition %}\n",
        "operationId": "readTrip",
        "x-draft": true,
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BasicTripInfo"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      },
      "put": {
        "tags": [
          "Trips"
        ],
        "summary": "Update trip",
        "operationId": "updateTrip",
        "description": "This endpoint updates trip by ID.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateTripRequest"
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "Updated Successfully"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      }
    },
    "/v3/trips/{tripId}/detail": {
      "parameters": [
        {
          "name": "tripId",
          "in": "path",
          "description": "Trip ID",
          "required": true,
          "schema": {
            "type": "string",
            "example": "6926658168"
          }
        },
        {
          "name": "refreshType",
          "in": "query",
          "description": "Refresh Type",
          "schema": {
            "$ref": "#/components/schemas/RefreshType"
          }
        },
        {
          "name": "fetchMappedData",
          "in": "query",
          "description": "If true, fetch PNRs from already mapped data present in DB",
          "schema": {
            "type": "boolean",
            "default": false
          }
        }
      ],
      "get": {
        "tags": [
          "Trips"
        ],
        "summary": "Get trip details",
        "description": "This endpoint gets trip details for a given trip ID.\n{% admonition type=\"info\" %}\n**Note:** For air bookings made via Travelfusion (i.e., `pnrs.data.sourceInfo.bookingSource: TRAVEL_FUSION`)\nthe `refundPolicy` and `exchangePolicy` fields will be empty.\n{% /admonition %}\n",
        "operationId": "getTripDetailsV3",
        "x-pii-supported": true,
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TripV3DetailsResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      }
    },
    "/v3/trips/{tripId}": {
      "parameters": [
        {
          "name": "tripId",
          "in": "path",
          "description": "Trip ID",
          "required": true,
          "schema": {
            "type": "string",
            "example": "6926658168"
          }
        }
      ],
      "delete": {
        "tags": [
          "Trips"
        ],
        "summary": "Delete trip",
        "description": "This endpoint deletes a trip by ID.",
        "operationId": "deleteTrip",
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DeleteTripRequest"
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "Deleted Successfully"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      },
      "post": {
        "tags": [
          "Trips"
        ],
        "summary": "Update trip details for trip Id",
        "operationId": "updateTripV3",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateTripV3Request"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      }
    },
    "/v3/trips/users/{userId}/list": {
      "parameters": [
        {
          "name": "userId",
          "in": "path",
          "description": "Identifier for the user whose trip summaries are requested.",
          "required": true,
          "schema": {
            "type": "string",
            "format": "uuid",
            "example": "4974a66b-7493-4f41-908c-58ba81093947"
          }
        }
      ],
      "post": {
        "tags": [
          "Trips"
        ],
        "summary": "List trip summaries for a user",
        "description": "Retrieves the list of trip summaries associated with a user.",
        "operationId": "getUserTripSummariesList",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GetTripSummariesV3Request"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetTripSummariesV3Response"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          }
        }
      }
    },
    "/v3/trips/companies/{companyId}/list": {
      "parameters": [
        {
          "name": "companyId",
          "in": "path",
          "description": "Identifier for the company whose trip summaries are requested.",
          "required": true,
          "schema": {
            "type": "string",
            "format": "uuid",
            "example": "4974a66b-7493-4f41-908c-58ba81093947"
          }
        }
      ],
      "post": {
        "tags": [
          "Trips"
        ],
        "summary": "List trip summaries for a company",
        "description": "Retrieves the list of trip summaries associated with a company.",
        "operationId": "getCompanyTripSummariesList",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GetTripSummariesV3Request"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetTripSummariesV3Response"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          }
        }
      }
    },
    "/v3/trips/companies/{companyId}/search": {
      "parameters": [
        {
          "name": "companyId",
          "in": "path",
          "description": "Identifier for the company whose trip summaries are requested.",
          "required": true,
          "schema": {
            "type": "string",
            "format": "uuid",
            "example": "4974a66b-7493-4f41-908c-58ba81093947"
          }
        }
      ],
      "post": {
        "tags": [
          "Trips"
        ],
        "summary": "Search company trips.",
        "description": "This endpoint is used to search trips for a company.",
        "operationId": "searchCompanyTrips",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SearchTripsRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SearchTripsResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          }
        }
      }
    },
    "/v2/list-organisation-trips": {
      "post": {
        "deprecated": true,
        "x-sunset": "2026-07-01",
        "tags": [
          "Trips"
        ],
        "summary": "List trips",
        "description": "Retrieves the list of trips associated with an organization.\n{% admonition type=\"warning\" name=\"Deprecation notice\" %}\nThe **List Trips** `/v2/list-organisation-trips` endpoint has been deprecated.\nUse the new **List trip summaries for a company** `/v3/trips/companies/{companyId}/list` endpoint instead.\n{% /admonition %}\n",
        "operationId": "listOrganisationTrips",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ListOrganisationTripsRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListOrganisationTripsResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      }
    },
    "/v3/trips/arrangers/{arrangerId}/list": {
      "parameters": [
        {
          "name": "arrangerId",
          "in": "path",
          "description": "Identifier for the arranger whose managed travelers trip summaries are requested.",
          "required": true,
          "schema": {
            "type": "string",
            "format": "uuid",
            "example": "4974a66b-7493-4f41-908c-58ba81093947"
          }
        }
      ],
      "post": {
        "tags": [
          "Trips"
        ],
        "summary": "List trip summaries for travelers managed by an arranger",
        "description": "Retrieves the list of trip summaries for all travelers managed by a specific arranger.\nThis endpoint can be used for arrangers whose role types are `COMPANY_TRAVEL_ARRANGER` or `TRAVEL_ARRANGER`.\n",
        "operationId": "getArrangerManagedTripSummariesList",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GetTripSummariesV3Request"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetTripSummariesV3Response"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          }
        }
      }
    },
    "/v2/trips/{tripId}/booker-email/{bookerEmailId}/partner-info": {
      "parameters": [
        {
          "name": "tripId",
          "in": "path",
          "description": "Identifier for trip.",
          "required": true,
          "schema": {
            "type": "string"
          },
          "example": "2398199412"
        },
        {
          "name": "bookerEmailId",
          "in": "path",
          "description": "Booker Email Id for whom budget info will be fetched.",
          "required": true,
          "schema": {
            "type": "string"
          },
          "example": "akanksha@spotnana.com"
        },
        {
          "name": "revealReason",
          "in": "query",
          "description": "Reason for revealing the budget card information.",
          "required": false,
          "schema": {
            "type": "string"
          },
          "example": "Purchase a Flight"
        }
      ],
      "get": {
        "tags": [
          "Trips"
        ],
        "summary": "Get trip partner info",
        "description": "This endpoint provides info related to partner for the trip.",
        "operationId": "fetchTripPartnerInfo",
        "x-draft": true,
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TripPartnerInfoResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      }
    },
    "/v3/trips/{tripId}/pnrs": {
      "parameters": [
        {
          "name": "tripId",
          "in": "path",
          "description": "Trip ID",
          "required": true,
          "schema": {
            "type": "string",
            "example": "6926658168"
          }
        }
      ],
      "post": {
        "tags": [
          "Trip PNRs"
        ],
        "summary": "Create PNR",
        "description": "Create a new Passenger Name Record (PNR). A PNR represents a booking (air, hotel, rail, or car) made on the Spotnana platform.\nYou can also use this endpoint to import bookings made from external sources into the Spotnana platform.\n",
        "operationId": "createPnrV3",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PnrData"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EntityNonUUIDId",
                  "example": {
                    "id": 1234567890
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          }
        }
      }
    },
    "/v3/trips/{tripId}/pnrs/{pnrId}": {
      "parameters": [
        {
          "name": "tripId",
          "in": "path",
          "description": "Trip ID",
          "required": true,
          "schema": {
            "type": "string",
            "example": "6926658168"
          }
        },
        {
          "name": "pnrId",
          "in": "path",
          "description": "Pnr Id",
          "required": true,
          "schema": {
            "type": "string",
            "example": "6926658168"
          }
        }
      ],
      "get": {
        "tags": [
          "Trip PNRs"
        ],
        "summary": "Get PNR",
        "description": "This endpoint gets PNR for a given trip ID and PNR ID.",
        "operationId": "getPnrV3",
        "x-pii-supported": true,
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PnrData"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      },
      "put": {
        "tags": [
          "Trip PNRs"
        ],
        "summary": "Update PNR",
        "description": "This endpoint updates PNR by ID.",
        "operationId": "updatePnrV3",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PnrData"
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "Updated Successfully"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      }
    },
    "/v3/trips/{tripId}/pnrs/{pnrId}/remarks": {
      "parameters": [
        {
          "name": "tripId",
          "in": "path",
          "description": "Trip ID",
          "required": true,
          "schema": {
            "type": "string",
            "example": 6926658168
          }
        },
        {
          "name": "pnrId",
          "in": "path",
          "description": "PNR ID",
          "required": true,
          "schema": {
            "type": "string",
            "example": 6926658168
          }
        }
      ],
      "post": {
        "tags": [
          "Trip PNRs"
        ],
        "summary": "Add Remark",
        "description": "This endpoint provided adding third party remarks to the given PNR.",
        "operationId": "addRemarkV3",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AddRemarksRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AddRemarksResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      }
    },
    "/v3/trips/{tripId}/pnrs/{pnrId}/finalize": {
      "parameters": [
        {
          "name": "tripId",
          "in": "path",
          "description": "Trip Id",
          "required": true,
          "schema": {
            "type": "string",
            "example": "6926658168"
          }
        },
        {
          "name": "pnrId",
          "in": "path",
          "description": "Pnr Id",
          "required": true,
          "schema": {
            "type": "string",
            "example": "6926658168"
          }
        }
      ],
      "post": {
        "tags": [
          "Trip PNRs"
        ],
        "summary": "Finalize the given pnr.",
        "description": "This endpoint changes the metadata of PNR to finalized and triggers supplier actions if required.",
        "operationId": "finalizePnr",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FinalizeRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      }
    },
    "/v3/trips/{tripId}/pnrs/{pnrId}/suspend": {
      "parameters": [
        {
          "name": "tripId",
          "in": "path",
          "description": "Trip Id",
          "required": true,
          "schema": {
            "type": "string",
            "example": "6926658168"
          }
        },
        {
          "name": "pnrId",
          "in": "path",
          "description": "Pnr Id",
          "required": true,
          "schema": {
            "type": "string",
            "example": "6926658168"
          }
        }
      ],
      "post": {
        "tags": [
          "Trip PNRs"
        ],
        "summary": "Suspend the given pnr.",
        "description": "This endpoint suspends the PNR, transitioning it into a read-only state.\nOnce suspended, updates via OBT will be restricted.\nThis API serves various use cases, such as price optimization and rebooking.\n",
        "operationId": "suspendPnr",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SuspendRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      }
    },
    "/v3/trips/{tripId}/pnrs/{pnrId}/cancel": {
      "parameters": [
        {
          "name": "tripId",
          "in": "path",
          "description": "Trip ID",
          "required": true,
          "schema": {
            "type": "string",
            "example": 6926658168
          }
        },
        {
          "name": "pnrId",
          "in": "path",
          "description": "PNR ID",
          "required": true,
          "schema": {
            "type": "string",
            "example": 6926658168
          }
        }
      ],
      "post": {
        "tags": [
          "Trip PNRs"
        ],
        "summary": "Cancel PNR",
        "description": "This endpoint cancels PNR or part of PNR object.In case of partial PNR cancel we can cancel journey/ticket.",
        "operationId": "cancelPnrV3",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PnrCancelRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      }
    },
    "/v2/trips/{tripId}/pnrs/{pnrId}/cancellation-details": {
      "parameters": [
        {
          "name": "tripId",
          "in": "path",
          "description": "Trip ID.",
          "required": true,
          "schema": {
            "type": "string",
            "example": "1234567890"
          }
        },
        {
          "name": "pnrId",
          "in": "path",
          "description": "PNR ID.",
          "required": true,
          "schema": {
            "type": "string",
            "example": "6926658168"
          }
        }
      ],
      "get": {
        "tags": [
          "Trip PNRs"
        ],
        "summary": "Get cancellation details",
        "description": "This endpoint gets cancellation details for a given trip ID and PNR ID.",
        "operationId": "getCancellationDetails",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PnrCancellationDetails"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      }
    },
    "/v2/trips/{tripId}/pnrs/{pnrId}/download-invoice": {
      "parameters": [
        {
          "name": "tripId",
          "in": "path",
          "description": "Trip Id",
          "required": true,
          "schema": {
            "type": "string",
            "example": "6926658168"
          }
        },
        {
          "name": "pnrId",
          "in": "path",
          "description": "Pnr Id",
          "required": true,
          "schema": {
            "type": "string",
            "example": "2643222286"
          }
        }
      ],
      "post": {
        "tags": [
          "Trip PNRs"
        ],
        "summary": "Download PNR invoice",
        "description": "This endpoint downloads invoice on demand for a given trip ID and PNR ID.",
        "operationId": "downloadInvoice",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DownloadInvoiceResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      }
    },
    "/v2/pnrs/{pnrId}/process-approval": {
      "parameters": [
        {
          "name": "pnrId",
          "in": "path",
          "description": "Pnr Id",
          "required": true,
          "schema": {
            "type": "string"
          },
          "example": "6926658168"
        }
      ],
      "post": {
        "tags": [
          "Trip PNRs"
        ],
        "summary": "Process the PNR approval",
        "description": "Approve or decline a PNR.",
        "operationId": "processPnrApproval",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ProcessPnrApprovalRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          }
        }
      }
    },
    "/v2/pnrs": {
      "parameters": [
        {
          "name": "externalId",
          "in": "query",
          "description": "External ID",
          "required": true,
          "schema": {
            "type": "string"
          },
          "example": "external-pnr-id"
        }
      ],
      "get": {
        "tags": [
          "Trip PNRs"
        ],
        "summary": "Get PNR by external Id",
        "description": "This endpoint gets PNR Id and Trip Id for a given external Id.",
        "operationId": "getPnrByExternalId",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PnrResponseOnExternalId"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      }
    },
    "/v2/pnrs/search": {
      "parameters": [
        {
          "name": "searchText",
          "in": "query",
          "description": "The Source Pnr or Ticket Number or Vendor Confirmation to be searched",
          "required": true,
          "schema": {
            "type": "string",
            "example": "MDIB5C"
          }
        },
        {
          "name": "inputType",
          "in": "query",
          "description": "The type of Search text,i.e, SOURCE_PNR or TICKET_NUMBER or VENDOR_CONFIRMATION",
          "required": true,
          "schema": {
            "type": "string",
            "enum": [
              "SOURCE_PNR",
              "TICKET_NUMBER",
              "VENDOR_CONFIRMATION"
            ],
            "example": "SOURCE_PNR"
          }
        }
      ],
      "get": {
        "tags": [
          "Trip PNRs"
        ],
        "summary": "Find Pnr details like BookingId and TripId",
        "description": "This API gets Pnr details for a given Source Pnr/ Ticket Number/ Vendor Confirmation.",
        "operationId": "pnrSearch",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PnrSearchResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      }
    },
    "/v2/invoicing/invoice-data": {
      "post": {
        "tags": [
          "Invoicing"
        ],
        "summary": "Get Invoice Data",
        "description": "This endpoint gets the invoice data for given invoice numbers",
        "operationId": "getInvoiceData",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/InvoiceDataRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InvoiceDataResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      }
    },
    "/v3/approvals/approvers/{userId}/list": {
      "parameters": [
        {
          "name": "userId",
          "in": "path",
          "description": "Identifier for the approver whose approval data is requested.",
          "required": true,
          "schema": {
            "type": "string",
            "format": "uuid",
            "example": "4974a66b-7493-4f41-908c-58ba81093947"
          }
        }
      ],
      "post": {
        "tags": [
          "Approval"
        ],
        "summary": "List approval data for an approver",
        "description": "Retrieves the list of approval data associated with an approver.",
        "operationId": "getApprovalUserApprovalDataList",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GetApprovalDataV3Request"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetApprovalDataV3Response"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          }
        }
      }
    },
    "/v3/approvals/companies/{companyId}/list": {
      "parameters": [
        {
          "name": "companyId",
          "in": "path",
          "description": "Identifier for the company whose approvals are requested.",
          "required": true,
          "schema": {
            "type": "string",
            "format": "uuid",
            "example": "4974a66b-7493-4f41-908c-58ba81093947"
          }
        }
      ],
      "post": {
        "tags": [
          "Approval"
        ],
        "summary": "List approval data for a company",
        "description": "Retrieves the list of approval data associated with a company.",
        "operationId": "getCompanyApprovalDataList",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GetApprovalDataV3Request"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetApprovalDataV3Response"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          }
        }
      }
    },
    "/v2/trips/{tripId}/agent-notes": {
      "parameters": [
        {
          "name": "tripId",
          "in": "path",
          "description": "Trip Id",
          "required": true,
          "schema": {
            "type": "string",
            "example": "6926658168"
          }
        }
      ],
      "post": {
        "tags": [
          "Trip Notes"
        ],
        "summary": "Create a note for agents",
        "description": "Creates a note addressed to the agents assigned for a specific trip. \nAgent notes are used to communicate trip-related information to agents handling the trip, \nsuch as special instructions, updates made on the booking, or any unresolved issues reported by the traveler.\n\nUse this endpoint to:\n- Add a note to a trip so the agents working on it will have all the latest information about the trip.\n- Use the optional `pnrId` field in the request body to link a note to a specific PNR within a trip.\n",
        "operationId": "createAgentNote",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateAgentNoteRequest"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      },
      "get": {
        "tags": [
          "Trip Notes"
        ],
        "summary": "Read all agent notes for a trip",
        "description": "Retrieves all agent notes associated with a specific trip. \nEach note in the response includes the message, the sender's basic information, \nand timestamps.\n\nUse this endpoint to:\n- Review the full history of agent notes added to a trip.\n- Identify who created each note and when, using the `senderInfo`, `createdAt`, and `updatedAt` fields.\n\n**Note:** The response may contain a `pnrId` if it was added during the note creation. Otherwise, the `pnrId` field is omitted in the response.\n",
        "operationId": "listAgentNotes",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListAgentNotesResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      }
    },
    "/v2/trips/{tripId}/agent-notes/{noteId}": {
      "parameters": [
        {
          "name": "tripId",
          "in": "path",
          "description": "Trip Id",
          "required": true,
          "schema": {
            "type": "string",
            "example": "6926658168"
          }
        },
        {
          "name": "noteId",
          "in": "path",
          "description": "Note Id",
          "required": true,
          "schema": {
            "type": "string",
            "example": "fc68b68a-ed0a-4aa3-9099-bc7c1211acf1"
          }
        }
      ],
      "delete": {
        "tags": [
          "Trip Notes"
        ],
        "summary": "Delete an agent note",
        "description": "Deletes an existing agent note from a trip. \nOnce deleted, the note cannot be retrieved later.\n\nUse this endpoint to:\n- Remove an agent note that is no longer relevant or was added by mistake.\n",
        "operationId": "deleteAgentNote",
        "responses": {
          "204": {
            "description": "No Content"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      }
    }
  }
}