openapi: 3.1.0
info:
  title: Webhook Events
  version: v2
servers:
  - url: https://api-ext-sboxmeta.partners.spotnana.com
    description: Sandbox URL
security:
  - Bearer: []
components:
  securitySchemes:
    Bearer:
      type: http
      scheme: bearer
  schemas:
    AdditionalFareAmount:
      type: object
      title: AdditionalFareAmount
      description: >-
        Additional fare amounts like flight pass additional amount, change
        penalty etc.
      required:
        - type
        - fareAmount
      properties:
        type:
          type: string
          description: Type of additional fare amount
          enum:
            - TYPE_UNKNOWN
            - FLIGHT_PASS_AMOUNT
            - CHANGE_FEE
            - CANCELLATION_FEE
            - PENALTY
            - AIRLINE_FEE
            - SEAT
            - BAGGAGE
          example: FLIGHT_PASS_AMOUNT
          x-enumDeprecated:
            TYPE_UNKNOWN:
              deprecated: true
              sunset: '2025-12-12'
        fareAmount:
          description: Fare amount for this type
          $ref: '#/components/schemas/FareAmount'
        isIncludedInFareAmount:
          type: boolean
          description: >-
            Whether this additional fare amount is included in the ticket fare
            or not
          example: false
    AdditionalInfo:
      type: object
      title: AdditionalInfo
      description: Additional data need to be sent along with the custom field response.
      discriminator:
        propertyName: type
        mapping:
          VARIABLE: '#/components/schemas/Variable'
          EXPRESSION: '#/components/schemas/Expression'
      oneOf:
        - $ref: '#/components/schemas/Variable'
        - $ref: '#/components/schemas/Expression'
    AdhocTravelerInfo:
      title: AdhocTravelerInfo
      type: object
      description: Describes an adhoc traveler.
      properties:
        registrarUserId:
          description: The registrar of the adhoc traveler.
          $ref: '#/components/schemas/UserId'
        externalId:
          type: string
          description: External Id of user
          example: qwert123
    AdhocTravelerInfoWrapper:
      title: AdhocTravelerInfoWrapper
      description: >-
        Wrapper over AdhocTravelerInfo object to be used as an identifier in a
        oneOf case.
      properties:
        adhocTravelerInfo:
          $ref: '#/components/schemas/AdhocTravelerInfo'
    AdhocUserInfo:
      type: object
      title: AdhocUserInfo
      description: Basic information related to ad-hoc traveler profile.
      required:
        - profileOwner
      properties:
        profileOwner:
          $ref: '#/components/schemas/ProfileOwner'
        isSaved:
          type: boolean
          description: >
            A boolean flag to show if ad-hoc traveler is visible in search.
            While updating the user 

            if client tries to update this field, it will throw exception.
          default: false
    AdvanceChangePolicy:
      type: object
      title: AdvanceChangePolicy
      properties:
        advanceChangePolicy:
          $ref: '#/components/schemas/AirPolicy'
    Agent:
      type: object
      title: Agent
      description: Agent details.
      required:
        - userBasicInfo
      properties:
        role:
          description: Role of user in the organization
          type: string
          example: SYSTEM_ADMIN
        title:
          description: Designation of user in the organization
          type: string
          example: Human Resources
        office:
          description: Office name where user is working
          type: string
          example: London or New York
        userBasicInfo:
          $ref: '#/components/schemas/UserBasicInfo'
        assignedGroups:
          type: array
          description: Information about all the groups agent is assigned to.
          items:
            $ref: '#/components/schemas/AgentGroupBasicInfo'
        assignedTasks:
          type: array
          description: Information about all the tasks assigned to the agent.
          items:
            $ref: '#/components/schemas/AgentTaskBasicInfo'
        availabilityStatus:
          $ref: '#/components/schemas/AgentAvailabilityStatus'
    AgentAssistedTransactionFeeInfo:
      title: Agent Assisted Transaction Fee Info
      type: object
      description: Transaction Fees when Agent is booking for Traveler.
      required:
        - agentFeeType
      properties:
        agentFeeType:
          type: string
          example: AGENT_ASSISTED_TRANSACTION_FEE
        transactionFeeType:
          $ref: '#/components/schemas/ServiceFeeTransactionType'
        calculatedAmount:
          $ref: '#/components/schemas/Money'
        chargeProcessorInfo:
          $ref: '#/components/schemas/ChargeProcessorInfo'
    AgentAssistedTripFeeInfo:
      title: Agent Assisted Trip Fee Info
      type: object
      description: Trip Fees when Agent is booking for Traveler.
      required:
        - agentFeeType
      properties:
        agentFeeType:
          type: string
          example: AGENT_ASSISTED_TRIP_FEE
        calculatedAmount:
          $ref: '#/components/schemas/Money'
        chargeProcessorInfo:
          $ref: '#/components/schemas/ChargeProcessorInfo'
    AgentAvailabilityStatus:
      type: string
      description: Availability status of agent.
      enum:
        - UNKNOWN_AVAILABILITY_STATUS
        - AVAILABLE
        - OFFLINE
        - ON_BREAK
      default: AVAILABLE
    AgentBasicInfo:
      type: object
      title: AgentBasicInfo
      description: Agent Basic information details.
      required:
        - userBasicInfo
      properties:
        userBasicInfo:
          $ref: '#/components/schemas/UserBasicInfo'
        availabilityStatus:
          $ref: '#/components/schemas/AgentAvailabilityStatus'
    AgentContact:
      type: object
      title: AgentContact
      description: Details of agent contact event.
      required:
        - contactType
        - contactId
        - contactOp
        - billable
      properties:
        contactType:
          description: Mode of agent contact.
          $ref: '#/components/schemas/AgentContactType'
          example: PHONE
        contactId:
          type: string
          description: Unique ID for agent contact.
          example: '1234567890'
        contactOp:
          description: Operation that the agent performed.
          $ref: '#/components/schemas/AgentContactOp'
          example: AGENT_BOOKING
        agentId:
          $ref: '#/components/schemas/UserId'
          description: User ID of agent.
        billable:
          type: boolean
          description: Is the agent contact event billable?
          example: true
        pnrId:
          type: string
          description: PNR ID (if applicable).
          example: '1234567890'
        travelType:
          description: Travel type.
          $ref: '#/components/schemas/TravelType'
          example: AIR
        notes:
          type: string
          description: Agent notes.
          example: Requested by customer
        nonBillableReason:
          $ref: '#/components/schemas/NonBillableReason'
          description: Reason for non-billable agent contact
    AgentContactOp:
      type: string
      title: AgentContactOp
      description: Agent contact operation.
      enum:
        - AGENT_BOOKING
        - AGENT_MODIFY
        - AGENT_CANCEL
        - AGENT_OTHER
        - AGENT_EXCHANGE
        - ANCILLARY_PURCHASE
        - SHELL_PNR_CREATE
        - SHELL_PNR_MODIFY
        - SHELL_PNR_CANCEL
        - SHELL_PNR_EXCHANGE
        - MANUAL_FORM_CREATE
        - MANUAL_FORM_MODIFY
        - MANUAL_FORM_CANCEL
        - MANUAL_FORM_EXCHANGE
        - UNUSED_TICKET_MANAGEMENT
    AgentContactType:
      type: string
      title: Agent contact type
      description: Agent contact type
      enum:
        - PHONE
        - CHAT
        - EMAIL
    AgentFeeInfo:
      type: object
      title: AgentFeeInfo
      required:
        - feeType
      discriminator:
        propertyName: agentFeeType
        mapping:
          AGENT_ASSISTED_TRIP_FEE: '#/components/schemas/AgentAssistedTripFeeInfo'
          AGENT_ASSISTED_TRANSACTION_FEE: '#/components/schemas/AgentAssistedTransactionFeeInfo'
      oneOf:
        - $ref: '#/components/schemas/AgentAssistedTripFeeInfo'
        - $ref: '#/components/schemas/AgentAssistedTransactionFeeInfo'
      properties:
        feeType:
          type: string
          description: Type of the fee
          example: AGENT_FEE
    AgentGroupBasicInfo:
      type: object
      title: AgentGroupBasicInfo
      description: Basic details related to agent group.
      required:
        - name
        - description
      properties:
        id:
          type: string
          format: uuid
          description: Agent group id.
        name:
          type: string
          description: Name of the agent group.
        description:
          type: string
          description: Description of the agent group.
        isDefault:
          type: boolean
          default: false
          description: True if group is default group for the tmc.
    AgentTask:
      type: object
      required:
        - id
        - taskType
        - priority
        - status
        - sourcePnrId
        - source
      properties:
        id:
          description: >-
            Unique task ID. This is a read only field and must not be used when
            the task is created.
          type: string
          readOnly: true
          example: 065c77fa-900c-11ec-9eeb-0242ac170003
        primaryTraveler:
          $ref: '#/components/schemas/UserBasicInfo'
          description: Traveler Information
        travelArranger:
          $ref: '#/components/schemas/UserBasicInfo'
          description: The travel arranger to be contacted (if any).
        taskType:
          type: string
          readOnly: true
          example: TAW - Tickets to print
        priority:
          $ref: '#/components/schemas/Priority'
        travelStartDate:
          $ref: '#/components/schemas/DateTimeLocal'
        bookingDate:
          $ref: '#/components/schemas/DateTimeLocal'
        status:
          $ref: '#/components/schemas/Status'
        assignee:
          $ref: '#/components/schemas/UserBasicInfo'
          description: The agent who is assigned this task
        organization:
          $ref: '#/components/schemas/OrganizationBasicInfo'
        sourcePnrId:
          type: string
          readOnly: true
          example: WIBAPI
        tripId:
          type: string
          readOnly: true
          example: 065c77fa-900c-11ec-9eeb-0242ac170003
        source:
          $ref: '#/components/schemas/ThirdPartySource'
        sourceMetadata:
          description: Data that is specific to the source, for Sabre it is PCC number
          type: string
          readOnly: true
          example: 5XY9
        referenceMetadata:
          description: >-
            Data that is specific to the source reference, for Sabre it is the
            Sabre Queue number
          type: string
          readOnly: true
          example: '50'
        bookingTmc:
          $ref: '#/components/schemas/OrganizationBasicInfo'
        contractingTmc:
          $ref: '#/components/schemas/OrganizationBasicInfo'
        tierAtBooking:
          $ref: '#/components/schemas/Tier'
        taskOrigin:
          $ref: '#/components/schemas/TaskOrigin'
        events:
          type: array
          description: Information about all the events within task.
          items:
            $ref: '#/components/schemas/EventInfo'
        assignedGroup:
          $ref: '#/components/schemas/AgentGroupBasicInfo'
        assignedAgent:
          $ref: '#/components/schemas/Agent'
        taskDuration:
          $ref: '#/components/schemas/Duration'
        pnrId:
          type: string
          readOnly: true
          example: '9199471293'
        assignedAgentBasicInfo:
          $ref: '#/components/schemas/AgentBasicInfo'
        description:
          type: string
          example: Approval timed out
        createdAt:
          $ref: '#/components/schemas/DateTimeOffset'
        agentTaskResolution:
          $ref: '#/components/schemas/AgentTaskResolution'
    AgentTaskBasicInfo:
      type: object
      title: AgentTaskBasicInfo
      description: Basic information of the agent task.
      required:
        - id
      properties:
        id:
          type: string
          format: uuid
          description: Task ID.
        sourcePnrId:
          type: string
          description: Source PNR ID associated to the task.
        eventCount:
          type: integer
          description: Number of task events.
        tripId:
          type: string
          description: Trip ID associated to the task.
        type:
          description: Type of task.
          type: string
          example: Schedule change
        description:
          type: string
          description: Task type description.
        status:
          $ref: '#/components/schemas/Status'
    AgentTaskDetails:
      type: object
      x-ignore-naming-case: true
      properties:
        event_type:
          type: string
          description: AGENT_TASK_DETAILS
          example: AGENT_TASK_DETAILS
        operationSummary:
          type: object
          $ref: '#/components/schemas/OperationSummary'
        operation:
          $ref: '#/components/schemas/AgentTaskOperationType'
        payload:
          $ref: '#/components/schemas/AgentTask'
        timestamp:
          type: string
          description: Timestamp when the event was published
        audience:
          $ref: '#/components/schemas/WebhookAudience'
        payloadMetadata:
          $ref: '#/components/schemas/PayloadMetadata'
    AgentTaskOperationType:
      description: Agent task operation types
      type: string
      enum:
        - TASK_CREATE
        - TASK_UPDATE
      example: TASK_CREATE
      x-enumDescriptions:
        TASK_CREATE: A new agent `taskId` has been created.
        TASK_UPDATE: An update has been made to an existing `taskId`.
    AgentTaskResolution:
      type: object
      required:
        - type
      properties:
        type:
          $ref: '#/components/schemas/ResolutionType'
        resolutionSteps:
          type: string
          maxLength: 1500
          example: 1. Check PNR status 2. Verify with airline 3. Update booking
    Air:
      title: Air
      description: Air PNR information
      required:
        - legs
        - travelerInfos
      properties:
        legs:
          type: array
          description: List of legs that are part of this bookings
          items:
            $ref: '#/components/schemas/Leg'
        airPnrRemarks:
          type: array
          description: Remarks added for the pnr.
          items:
            $ref: '#/components/schemas/AirPnrRemark'
        travelerInfos:
          type: array
          minItems: 1
          description: Information about traveler bookings
          items:
            $ref: '#/components/schemas/TravelerInfo'
        automatedCancellationInfo:
          readOnly: true
          $ref: '#/components/schemas/AutomatedCancellationInfo'
        automatedExchangeInfo:
          readOnly: true
          $ref: '#/components/schemas/AutomatedExchangeInfo'
        bookingMetadata:
          type: object
          title: BookingMetadata
          description: Metadata like fare statistics for this booking
          properties:
            fareStatistics:
              description: >
                Fare statistics of all logical itineraries. In case of multi
                pax, only primary i.e.

                adult fare is included in stats.
              $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'
    AirConditioning:
      type: string
      title: AirConditioning
      description: Whether air conditioning is available.
      enum:
        - UNKNOWN_AC
        - AC_AVAILABLE
        - AC_NOT_AVAILABLE
      example: AC_AVAILABLE
    AirFlight:
      type: object
      title: AirFlight
      description: Flight information of the ticket
      properties:
        arrivalDateTime:
          description: Arrival date time of flight
          $ref: '#/components/schemas/DateTimeLocal'
        departureDateTime:
          description: Departure date time of flight
          $ref: '#/components/schemas/DateTimeLocal'
        marketing:
          description: Marketing flight number
          $ref: '#/components/schemas/FlightNumber'
        operating:
          description: Operating flight number
          $ref: '#/components/schemas/FlightNumber'
        origin:
          description: Airport info about the origin airport.
          $ref: '#/components/schemas/Airport'
        destination:
          description: Airport info about the destination airport.
          $ref: '#/components/schemas/Airport'
        cabin:
          description: Cabin class for this flight
          $ref: '#/components/schemas/Cabin'
    AirItem:
      type: object
      title: Item
      description: >-
        This describes the details for an airItem related to a particular
        itemGroup.
      required:
        - itemType
      properties:
        itemType:
          type: string
        airItemType:
          $ref: '#/components/schemas/AirItemType'
          description: type of the air item , could be flights or ancillary.
        flights:
          type: array
          items:
            $ref: '#/components/schemas/AirFlight'
        ancillaryTypes:
          type: array
          items:
            $ref: '#/components/schemas/TransactionAncillaryType'
        oldFlights:
          type: array
          items:
            $ref: '#/components/schemas/AirFlight'
    AirItemType:
      type: string
      description: type of air item
      enum:
        - FLIGHT
        - ANCILLARY
      example: FLIGHT
    AirPnrRemark:
      title: AirPnrRemark
      type: object
      required:
        - remarkString
      properties:
        remarkString:
          type: string
          description: Remark String
          example: COMPLEATREMARK
    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.
      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.
            For non-ticketed PNRs, tickets will not be present.
        newTickets:
          type: array
          items:
            type: string
            example: '0111234567890'
          description: |
            List of new tickets in PNR after rebook.
            For non-ticketed PNRs, tickets will not be present.
        oldPnrId:
          type: string
          description: |
            Old Spotnana PnrId of the PNR before rebook.
          example: '6789533589'
        newPnrId:
          type: string
          description: >
            New Spotnana PnrId of the PNR after rebook.

            If the same PNR has been modified during rebook, oldPnrId and
            newPnrId will be same.

            If a new PNR has been booked during rebook, oldPnrId and newPnrId
            will be different.
          example: '6789533589'
        oldPrice:
          description: Total price of the PNR before rebook.
          $ref: '#/components/schemas/Money'
        newPrice:
          description: Total price of the PNR after rebook.
          $ref: '#/components/schemas/Money'
        priceDrop:
          description: Total price drop during rebook process.
          $ref: '#/components/schemas/Money'
        penaltyPrice:
          description: Penalty amount paid during rebook process.
          $ref: '#/components/schemas/Money'
    AirRequestTravelerInfo:
      title: AirRequestTravelerInfo
      description: >
        The traveler identifiers. These can be either the Spotnana user IDs of
        the travelers or information regarding

        the adhoc travelers.
      type: object
      oneOf:
        - $ref: '#/components/schemas/UserIdWrapper'
        - $ref: '#/components/schemas/AdhocTravelerInfoWrapper'
    AirRestrictedFaresParams:
      type: object
      title: AirRestrictedFaresParams
      properties:
        airRestrictedKeywords:
          type: array
          description: List of keywords grouped by airline
          items:
            $ref: '#/components/schemas/AirRestrictedKeyword'
    AirRestrictedFaresParamsWrapper:
      type: object
      title: AirRestrictedFaresParamsWrapper
      properties:
        airRestrictedFaresParams:
          $ref: '#/components/schemas/AirRestrictedFaresParams'
    AirRestrictedKeyword:
      type: object
      title: AirRestrictedKeyword
      description: Airline/Keyword to be restricted
      required:
        - keyword
      properties:
        keyword:
          type: string
          description: Restricted keyword.
        airlineCode:
          type: string
          description: >-
            IATA airline code. If not set, the restriction applies to all
            airlines.
    AirRsvpResponse:
      title: AirRsvpResponse
      type: object
      description: Air rsvp response
      properties:
        notNeeded:
          type: boolean
          description: Whether air booking is needed by the traveler or not
          example: true
    AirSeatAssignmentType:
      type: string
      description: The type of seat assignment
      enum:
        - AUTO_ASSIGNED
      example: AUTO_ASSIGNED
    AirUpa:
      type: object
      title: AirUpa
      description: Air UPA Info
      properties:
        headline:
          type: string
          example: A fully flat bed
        upaDescription:
          type: string
          example: >-
            Arrive well-rested in our 180-degree flat-bed seating with
            illuminated seat controls.
        smallIconUrl:
          type: string
          example: >-
            https://d13cihc9138cdj.cloudfront.net/icons/1d571a8b-559a-4c16-8be2-088566b2adaf/small/lay-flat.png?channel_id\u003dys18ftmp
        largeIconUrl:
          type: string
          example: >-
            https://d13cihc9138cdj.cloudfront.net/icons/1d571a8b-559a-4c16-8be2-088566b2adaf/large/lay-flat.png?channel_id\u003dys18ftmp
        externalDetailsUrl:
          type: string
          example: >-
            https://www.united.com/web/en-US/content/travel/inflight/businessfirst.aspx
        categories:
          type: array
          items:
            $ref: '#/components/schemas/UpaCategory'
        photo:
          type: array
          items:
            $ref: '#/components/schemas/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'
    AirlineInfo:
      title: AirlineInfo
      type: object
      required:
        - airlineCode
        - airlineName
      properties:
        airlineCode:
          type: string
          description: IATA code for airline.
          example: AA
        airlineName:
          type: string
          description: Airline name
          example: American Airlines
    AirlinePref:
      type: object
      title: AirlinePref
      description: Airline preferences.
      properties:
        airlines:
          type: array
          items:
            type: string
            example: Indigo
        flightType:
          type: string
          enum:
            - UNKNOWN_FLIGHT_TYPE
            - DOMESTIC
            - INTERNATIONAL
            - ALL
          example: DOMESTIC
    Airport:
      title: Airport
      description: Airport Details
      type: object
      required:
        - airportCode
        - airportName
        - cityCode
      properties:
        airportCode:
          type: string
          description: Unique code for the Airport
          example: LHR
        airportName:
          type: string
          description: Full Name of the Airport
          example: Heathrow Airport
        cityCode:
          type: string
          description: City Code for the location
          example: LON
        location:
          $ref: '#/components/schemas/Location'
        groupInfo:
          $ref: '#/components/schemas/AirportGroupInfo'
    AirportGroupInfo:
      title: AirportGroupInfo
      description: Grouping criteria for the airports in same group
      type: object
      required:
        - groupId
        - mainAirportLocation
      properties:
        groupId:
          type: string
          description: Id of the airport group
          example: NYC
        groupCityCode:
          type: string
          description: >-
            City code of the airport group. If airport group does not have a
            recognized city code, then this field will be empty.
          example: NYC
        mainAirportLocation:
          description: Location of the main airport in the group
          $ref: '#/components/schemas/Location'
    AirportInfo:
      title: AirportInfo
      description: Detailed information about the airport.
      type: object
      properties:
        airportCode:
          type: string
          description: 3-letter code of the airport.
          example: WRA
        airportName:
          type: string
          description: Full name of the airport.
          example: Warder Airport
        cityName:
          type: string
          description: Name of the city in which the airport is located (or is nearest to).
          example: Werder
        countryName:
          type: string
          description: Name of the country in which the airport is located.
          example: Ethiopia
        countryCode:
          type: string
          description: 2-letter IATA country code associated with the airport.
          example: ET
        zoneName:
          type: string
          description: Name of the time zone associated with the airport.
          example: Africa/Addis_Ababa
        stateCode:
          type: string
          description: 2-letter IATA code for the state in which the airport is located.
          example: CA
    Alliance:
      type: string
      enum:
        - UNKNOWN_ALLIANCE
        - STAR_ALLIANCE
        - ONEWORLD
        - SKYTEAM
        - VANILLA_ALLIANCE
        - U_FLY_ALLIANCE
        - VALUE_ALLIANCE
      default: UNKNOWN_ALLIANCE
      example: STAR_ALLIANCE
    AlliancePref:
      type: object
      title: AlliancePref
      description: Alliance preferences.
      required:
        - alliances
      properties:
        alliances:
          type: array
          items:
            $ref: '#/components/schemas/Alliance'
    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
    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 

        belongs to all flights, this index should be set to -1
      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,

        this index should be set to -1
      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.

            If the fare is greater than credit available, value of this field
            will be positive (that amount will be charged to payment method).

            If the fare is less than credit available, value of this field will
            be negative (credit balance will remain).
        penalty:
          $ref: '#/components/schemas/Money'
          description: >-
            Penalty amount applied to redeem credit. This could be a change fee
            applied when redeeming.
        ticketType:
          type: string
          description: Type of credit.
          enum:
            - ETICKET
            - MCO
    AppliedWaiveOffInfo:
      type: object
      title: Applied Waive-Off Information
      description: Information about TMC fee waivers applied by an agent during checkout.
      properties:
        waiveOffAmount:
          description: The amount of TMC fee that has been waived
          $ref: '#/components/schemas/FareAmount'
        waiveOffReason:
          description: The reason provided by the agent for waiving the fee
          $ref: '#/components/schemas/WaiveOffFeeReason'
    ApprovalInfo:
      type: object
      title: ApprovalInfo
      required:
        - approvalStatus
      properties:
        approvalStatus:
          type: string
          description: The approval status for the PNR
          enum:
            - APPROVAL_PENDING
            - APPROVED
            - DENIED
            - TIMED_OUT
            - TIMED_OUT_REMINDER
            - APPROVAL_NOT_REQUIRED
            - SOFT_APPROVAL_TIMEOUT
        approvalType:
          type: string
          description: Type of APPROVAL
          enum:
            - APPROVAL_TYPE_UNKNOWN
            - HARD_APPROVAL
            - SOFT_APPROVAL
            - PASSIVE_APPROVAL
            - PRE_APPROVAL
          x-ignoreBreakingChanges:
            - approvalType->PRE_APPROVAL
          example: SOFT_APPROVAL
        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
    ApprovalType:
      type: string
      description: Type of APPROVAL
      enum:
        - HARD_APPROVAL
        - SOFT_APPROVAL
        - PASSIVE_APPROVAL
        - PRE_APPROVAL
      x-ignoreBreakingChanges:
        - ApprovalType->PRE_APPROVAL
      example: SOFT_APPROVAL
    ApproverWebhookPayload:
      type: object
      properties:
        name:
          type: string
          description: Full name of the approver
        email:
          type: string
          description: Email of the approver
        userId:
          $ref: '#/components/schemas/UserId'
    AssessmentType:
      type: string
      enum:
        - NEUTRAL
        - BENEFIT
        - RESTRICTION
        - FEE
      example: BENEFIT
    AutomatedCancellationInfo:
      type: object
      description: Info related to possible automated cancellations
      properties:
        supportedCancellations:
          type: array
          description: >
            Supported automated cancellations. If this list is empty, automated
            cancellation is not 

            supported for this booking
          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 

            supported for this booking.
          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'
    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 

                include service fee
            totalFlightsFare:
              $ref: '#/components/schemas/FareAmount'
              description: Total flights fare
            totalSeatFare:
              $ref: '#/components/schemas/Money'
              description: Total fare for seats
            totalLuggageFare:
              $ref: '#/components/schemas/Money'
              description: Total fare for luggage
            totalMerchantFees:
              $ref: '#/components/schemas/Money'
              description: Total merchant fees
            totalAirlineFees:
              $ref: '#/components/schemas/Money'
              description: Total card or sevice fee charged by airline
            otherCharges:
              $ref: '#/components/schemas/Money'
              description: Charges other than flight, seat and luggage
            flightFareBreakup:
              type: array
              description: Ticket level flight fare breakup
              items:
                type: object
                title: FlightFareBreakup
                properties:
                  legIndices:
                    type: array
                    description: List of legs for this fare info
                    items:
                      type: integer
                      format: int32
                      example: 1
                  flightsFare:
                    description: Total flight fare for the above legs
                    $ref: '#/components/schemas/FareAmount'
            fareComponents:
              type: array
              description: List of fare component details for this itinerary
              items:
                $ref: '#/components/schemas/FareComponentDetail'
            otherAncillaryFares:
              type: array
              description: Fare breakup for ancillaries other than seat and luggage
              items:
                $ref: '#/components/schemas/OtherAncillaryFare'
        otherCharges:
          type: array
          title: Other
          description: Extra charges over flight fare, seat and luggage.
          items:
            type: object
            required:
              - amount
              - type
            properties:
              amount:
                $ref: '#/components/schemas/Money'
                description: Total amount for extra item
              type:
                type: string
                description: Name of extra item
                example: Meal
    BookingDetails:
      type: object
      title: BookingDetails
      description: Booking information
      properties:
        pnrId:
          type: string
          description: PNR Id
        pnrVersion:
          type: integer
          format: int32
          description: Version number associated with the PNR
        tripUsageType:
          type: string
          description: Trip Usage Type
          enum:
            - TRIP_USAGE_TYPE_UNKNOWN
            - STANDARD
            - EVENT
        source:
          description: Third party source
          $ref: '#/components/schemas/ThirdPartySource'
        sourcePnrId:
          type: string
          description: Source PNR Id from thirdparty source
    BookingFeeInfo:
      type: object
      title: BookingFeeInfo
      required:
        - feeType
      discriminator:
        propertyName: bookingFeeType
        mapping:
          TRIP_FEE: '#/components/schemas/TripFeeInfo'
          TRANSACTION_FEE: '#/components/schemas/TransactionFeeInfo'
          VALUE_ADDED_SERVICE_FEE: '#/components/schemas/ValueAddedServiceFeeInfo'
          OTHER_FEE: '#/components/schemas/OtherFeeInfo'
      oneOf:
        - $ref: '#/components/schemas/TripFeeInfo'
        - $ref: '#/components/schemas/TransactionFeeInfo'
        - $ref: '#/components/schemas/ValueAddedServiceFeeInfo'
        - $ref: '#/components/schemas/OtherFeeInfo'
      properties:
        feeType:
          type: string
          description: Type of the fee
          example: BOOKING_FEE
    BookingHistory:
      title: BookingHistory
      description: Booking History
      properties:
        bookerInfo:
          $ref: '#/components/schemas/BookerInfo'
          description: Booker Information
        bookingInfo:
          $ref: '#/components/schemas/BookingInfo'
          description: Booking Information
    BookingInfo:
      title: BookingInfo
      description: Booking Details
      type: object
      properties:
        updatedDateTime:
          description: Date Time when the booking was created/updated
          $ref: '#/components/schemas/DateTimeOffset'
        status:
          type: string
          description: User facing status of the booking in history
          enum:
            - UNKNOWN_STATUS
            - BOOKED
            - EXCHANGED
            - UPDATED
            - CANCELLED
            - FINALIZED
            - UNFINALIZED
            - AIR_SCHEDULE_CHANGE_ACCEPTED
            - 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
    BucketEmailPreferences:
      type: object
      title: BucketEmailPreferences
      description: Email communication preferences based on bucket types.
      required:
        - bucketTypes
      properties:
        bucketTypes:
          type: array
          description: List of email bucket types.
          items:
            $ref: '#/components/schemas/EmailBucketType'
        isEnabled:
          type: boolean
          description: Indicates whether emails are disabled.
          default: false
        toEmails:
          type: array
          description: List of email address to be included in emails.
          items:
            type: string
            format: email
            example: example@email.com
        ccEmails:
          type: array
          description: List of email address to be cc-ed in emails.
          items:
            type: string
            format: email
            example: example@email.com
        bccEmails:
          type: array
          description: List of email address to be bcc-ed in emails.
          items:
            type: string
            format: email
            example: example@email.com
    BusinessInfo:
      type: object
      title: BusinessInfo
      description: User business information.
      required:
        - organizationRef
        - legalEntityRef
      properties:
        departmentRef:
          $ref: '#/components/schemas/Reference'
        designation:
          type: string
          example: MANAGER
        email:
          type: string
          format: email
          example: user@business.com
          x-pii: IDENTIFIER
        employeeId:
          description: >-
            Unique employee id. Can use email if a company don't use employee
            ids.
          type: string
          example: '101'
        gradeRef:
          $ref: '#/components/schemas/Reference'
        legalEntityRef:
          $ref: '#/components/schemas/Reference'
        managerRef:
          $ref: '#/components/schemas/Reference'
        officeRef:
          $ref: '#/components/schemas/Reference'
        organizationRef:
          $ref: '#/components/schemas/Reference'
        phoneNumbers:
          type: array
          x-pii: IDENTIFIER
          items:
            $ref: '#/components/schemas/PhoneNumber'
        costCenterRef:
          $ref: '#/components/schemas/Reference'
        countryCode:
          type: string
          description: alpha-2 or alpha-3 ISO country code.
          example: USA
        workerType:
          $ref: '#/components/schemas/WorkerType'
        accountingCode:
          type: string
          description: Code used for accounting.
          example: '123'
        companySpecifiedAttributes:
          type: array
          items:
            $ref: '#/components/schemas/CompanySpecifiedAttribute'
        designatedApproverRefs:
          type: array
          description: A list of references for designated approvers.
          items:
            $ref: '#/components/schemas/Reference'
        authorizerEmail:
          type: string
          description: >-
            Email address to be used as approval authorizer, when a manager is
            not present.
          example: example@email.com
          x-pii: IDENTIFIER
    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,
            New 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
    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

            FREE_CANCELLATION_UNTIL or PARTIALLY_REFUNDABLE.
        deadlineUtc:
          $ref: '#/components/schemas/DateTimeOffset'
          description: >
            The UTC date and time of the final deadline for cancellation, if
            policy type is

            FREE_CANCELLATION_UNTIL or PARTIALLY_REFUNDABLE.
        durationBeforeArrivalDeadline:
          $ref: '#/components/schemas/Duration'
          description: >
            The duration before arrival of the final deadline for cancellation,
            if policy type is

            `FREE_CANCELLATION_UNTIL` or `PARTIALLY_REFUNDABLE`.
        amount:
          $ref: '#/components/schemas/Money'
        currentlyRefundable:
          type: string
          description: >
            Refundable status that is currently applicable in the hotel
            timezone.

            FALSE even if it is partially refundable.
          enum:
            - 'TRUE'
            - 'FALSE'
        cancellableStatus:
          type: string
          description: >
            Whether the booking can be cancelled.

            UNSPECIFIED and CANCELLABLE are treated as cancellable.

            Some suppliers (e.g. Premier Inn) block cancellation on
            non-refundable rates.
          enum:
            - CANCELLABLE_STATUS_UNSPECIFIED
            - CANCELLABLE
            - NOT_CANCELLABLE
    CancellationRequestStatus:
      type: string
      description: >
        Status of in progress cancellation request

        CANCELLATION_IN_PROGRESS - Cancellation request is in progress via OBT

        CANCELLATION_BY_AGENT_REQUESTED - Cancellation request is in progress
        via agent
      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
    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
    CardDetails:
      type: object
      title: Card Details
      description: Card Details
      required:
        - token
        - expiry
        - company
      properties:
        company:
          $ref: '#/components/schemas/CardCompany'
        token:
          type: string
          description: Tokenized Card Number
          example: '4111111111111111'
        expiry:
          $ref: '#/components/schemas/CardExpiry'
    CardExpiry:
      title: CardExpiry
      type: object
      description: Contains the expiry of a Card.
      oneOf:
        - $ref: '#/components/schemas/TokenizedExpiryWrapper'
        - $ref: '#/components/schemas/ExpiryWrapper'
    CardMetadata2:
      type: object
      title: CardMetadata
      description: Metadata for Card payment source.
      properties:
        card:
          $ref: '#/components/schemas/Card'
        accessType:
          $ref: '#/components/schemas/CreditCardAccess'
        isLodgeCard:
          type: boolean
          description: Whether the payment is made using a lodge card
          example: false
        bta:
          type: string
          description: >-
            Whether this is a BTA card. Possible values are 'Y' or 'N'. Relevant
            only for lodge cards.
          example: 'Y'
    CentralCardAccessLevel:
      title: CentralCardAccessLevel
      type: string
      description: >-
        Identifies at which level central card is applicable, for example
        organization or legal entity.
      enum:
        - UNKNOWN
        - ORGANIZATION
        - LEGAL_ENTITY
        - TMC
    ChargeCode:
      type: string
      description: >-
        Charge code for transaction fare detail, used for email display
        ordering.
      enum:
        - BASE
        - SUBTOTAL
        - CHANGE_FEE_CHARGE
        - AIRLINE_FEES_CHARGE
        - DESTINATION_FEES_CHARGE
        - TOTAL_DELTA
        - TOTAL_CHARGE
        - CANCEL_FEE_CHARGE
        - 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'
    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
    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'
    CreatedMco:
      title: CreatedMco
      type: object
      properties:
        airline:
          type: string
          description: Code of the airline for which mco is created.
        fare:
          $ref: '#/components/schemas/FareAmount'
        mcoNumber:
          type: string
          description: Number of the mco created.
        issuedDate:
          $ref: '#/components/schemas/DateTimeLocal'
        isMcoVoided:
          type: boolean
          description: Whether the MCO was voided or not
          example: false
    CreatedVia:
      title: CreatedViaEnum
      type: string
      description: Indicates the source of creation of PNR, like SHELL, OBT, etc.
      readOnly: true
      enum:
        - OFFLINE
        - OBT
        - SHELL
        - PASSIVE
        - API
    Credit:
      type: object
      title: Credit
      required:
        - ticketNumber
        - ticketType
        - sourcePnr
        - totalFare
        - passengerName
        - segmentsAvailable
        - type
        - airlineInfo
        - traveler
        - source
        - unusedCreditPcc
        - pnrOwningPcc
      properties:
        type:
          type: string
          description: >-
            Payment source type. Should be set to CREDIT for unused credit
            details.
        pnrOwningPcc:
          type: string
          description: PCC the PNR was created on.
        unusedCreditPcc:
          type: string
          description: PCC the credit was issued on.
        departureCountry:
          type: string
          description: >-
            3 letter country code of the departure country associated with the
            original ticket.
          example: USA
        arrivalCountry:
          type: string
          description: >-
            3 letter country code of the arrival country associated with the
            original ticket.
          example: USA
        ticketType:
          type: string
          description: Type of credit.
          enum:
            - TICKET_TYPE_UNKNOWN
            - ETICKET
            - MCO
        departureDate:
          description: >-
            Date for the departure of the first flight associated with the
            unused credit.
          $ref: '#/components/schemas/DateTimeOffset'
        segmentsAvailable:
          type: string
          description: Whether all segments are unused or some have already been used.
          enum:
            - UNKNOWN
            - ALL_OPEN
            - PARTIAL
            - OTHER
        traveler:
          description: >-
            Information about the traveler for which the credit should be
            redeemed.
          $ref: '#/components/schemas/AirRequestTravelerInfo'
        passengerName:
          description: Name of the passenger associated with the credit.
          $ref: '#/components/schemas/Name'
        airlineInfo:
          description: Airline info with airline name and code
          $ref: '#/components/schemas/AirlineInfo'
        totalFare:
          description: Total airfare associated with the original ticket.
          $ref: '#/components/schemas/Money'
        issueDate:
          description: Issue date for the unused credit.
          $ref: '#/components/schemas/DateTimeOffset'
        expiryDate:
          description: Expiry date for the unused credit.
          $ref: '#/components/schemas/DateTimeOffset'
        source:
          $ref: '#/components/schemas/ThirdPartySource'
          default: SABRE
          description: Source of unused credit e.g. Sabre, NDC etc.
        sourcePnr:
          type: string
          description: >-
            PNR number corresponding to third party through which booking was
            made.
          example: MC5ONS
        flightIds:
          type: array
          description: ID of the flights on which this credit applies.
          minItems: 1
          items:
            type: string
        ticketNumber:
          type: string
          description: >-
            Ticket number for the ticket that was converted into an unused
            credit.
          example: '5267779139217'
      x-ignoreBreakingChanges:
        - Credit->pnrOwningPcc
        - Credit->unusedCreditPcc
        - Credit->source
    CreditCardAccess:
      type: object
      title: CreditCardAccess
      description: >-
        Access type for cards to check who in the organization has permission to
        use it
      required:
        - accessType
        - entityIds
      properties:
        accessType:
          $ref: '#/components/schemas/CreditCardAccessType'
        entityIds:
          type: array
          items:
            type: string
          description: >-
            Holds the ids for for all users who can access the card or
            organization id
        entities:
          type: array
          description: >-
            A list of cardAccessEntity consisting of central card access level
            if present and entity id.
          items:
            $ref: '#/components/schemas/CardAccessEntity'
    CreditCardAccessType:
      title: CreditCardAccessType
      type: string
      description: >-
        Identifies the different ways the card can be used across an
        organization
      enum:
        - UNKNOWN_TYPE
        - CENTRALISED
        - INDIVIDUAL
        - PERSONAL
        - TMC
        - APPLICATION
        - ITINERARY
        - EVENTS
        - TRAVEL_ARRANGER_MANAGED
        - COMPANY_TRAVEL_ARRANGER_MANAGED
        - EVENT_TEMPLATE
      x-ignoreBreakingChanges:
        - CreditCardAccessType->EVENT_TEMPLATE
    CreditStatus:
      type: string
      description: Status of the credit.
      enum:
        - STATUS_UNKNOWN
        - OPEN
        - USED
        - RESERVED
      x-ignoreBreakingChanges:
        - CreditStatus->RESERVED
    CreditUsageType:
      type: string
      description: Usage type of the credit.
      enum:
        - CREDIT_USAGE_TYPE_UNKNOWN
        - COMPANY
        - PERSONAL
    CustomField:
      type: object
      title: CustomField
      description: The custom field containing type, externalId and description
      required:
        - id
        - type
        - description
      properties:
        id:
          type: string
          description: Meeting id or budget id based on custom field type.
        type:
          $ref: '#/components/schemas/CustomFieldType'
        description:
          type: string
          description: Description of the custom Field
          example: GLOBAL OFFSITE 2022
    CustomFieldLocation:
      title: CustomFieldLocation
      description: Display the custom fields in all these locations.
      type: string
      enum:
        - POLICY_APPROVAL_EMAIL
        - PNR_EMAIL
        - TRIP_EMAIL
      example: POLICY_APPROVAL_EMAIL
    CustomFieldMatchConditions:
      type: object
      title: CustomFieldMatchConditions
      description: Conditions to select the custom field for given context.
      properties:
        travelerConditions:
          $ref: '#/components/schemas/TravelerMatchConditions'
        travelTypes:
          type: array
          description: Travel types to match.
          items:
            $ref: '#/components/schemas/TravelType'
        travelRegionTypes:
          type: array
          description: Travel region types to match.
          items:
            $ref: '#/components/schemas/TravelRegionType'
        tripUsageTypes:
          type: array
          description: >-
            Trip usage types to match. If empty, all trip usage types will be
            matched.
          items:
            $ref: '#/components/schemas/TripUsageType'
    CustomFieldOptionsParam:
      type: string
      title: CustomFieldOptionsParam
      enum:
        - COST_CENTER
        - LEGAL_ENTITY
        - OFFICE
        - DEPARTMENT
      description: Parameter to form options for the custom field.
      example: COST_CENTER
    CustomFieldResponsesPerEntity:
      type: object
      title: CustomFieldResponsesPerEntity
      description: Custom field responses per entity.
      required:
        - entity
        - selectedResponses
      x-ignoreBreakingChanges:
        - CustomFieldResponsesPerEntity->selectedResponses
        - TripApi.yaml->SelectedCustomFieldResponseInfo
      properties:
        entity:
          $ref: '#/components/schemas/EntityV3'
        selectedResponses:
          type: array
          description: The list of responses that are selected by user or auto populated.
          items:
            $ref: '#/components/schemas/CustomFieldV3Response'
    CustomFieldSelectedOption:
      type: object
      title: CustomFieldSelectedOption
      description: Selected response for the custom field.
      required:
        - name
      properties:
        name:
          type: string
          description: Value of the selection
        translatedName:
          type: string
          description: Translated value of the selection
        description:
          type: string
          description: Description of the selection
        translatedDescription:
          type: string
          description: Translated description of the selection
        additionalUserInput:
          type: string
          description: Additional user input
        additionalInfos:
          type: array
          description: Actual values of the additional infos
          items:
            type: string
        additionalInfoConfigs:
          type: array
          description: Additional info configs for the selected option
          items:
            $ref: '#/components/schemas/AdditionalInfo'
    CustomFieldType:
      type: string
      description: The type of custom field.
      enum:
        - QUESTION
        - MEETING
        - BUDGET
        - BREX_TOKEN
      default: QUESTION
    CustomFieldV3Response:
      type: object
      title: CustomFieldV3Response
      description: Custom field responses.
      required:
        - fieldId
        - armId
        - selectedOptions
      properties:
        fieldId:
          type: string
          format: uuid
          description: Custom field id
        fieldName:
          type: string
          description: Name of the custom field
        armId:
          type: string
          format: uuid
          description: Arm id which is applicable
        includeLocations:
          type: array
          items:
            $ref: '#/components/schemas/IncludeLocation'
        selectedOptions:
          type: array
          description: The list of options that are selected by user or auto populated.
          items:
            $ref: '#/components/schemas/CustomFieldSelectedOption'
    DateModel:
      title: Date
      description: Date in ISO 8601 standard.
      type: object
      required:
        - iso8601
      properties:
        iso8601:
          type: string
          pattern: ^\d{4}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])$
          example: '2017-07-21'
    DateRange:
      type: object
      description: Date range within which the virtual card can be charged.
      required:
        - startDate
        - endDate
      properties:
        startDate:
          $ref: '#/components/schemas/DateTimeLocal'
        endDate:
          $ref: '#/components/schemas/DateTimeLocal'
    DateTimeLocal:
      title: DateTimeLocal
      description: Local date and time in ISO 8601 format.
      type: object
      required:
        - iso8601
      properties:
        iso8601:
          type: string
          pattern: >-
            ^\d{4}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])T([01][0-9]|2[0-4]):([0-5][0-9])(:([0-5][0-9]))?$
          example: 2017-07-21T17:32
    DateTimeLocalWithZone:
      title: DateTimeLocalWithZone
      description: Local date and time represented in the ISO 8601 standard.
      type: object
      required:
        - iso8601
      properties:
        iso8601:
          type: string
          pattern: >-
            ^\d{4}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])T([01][0-9]|2[0-4]):([0-5][0-9])(:([0-5][0-9]))?$
          example: 2017-07-21T17:32
        zoneId:
          type: string
          description: Zone Id for the date time string.
          example: Europe/Paris
    DateTimeOffset:
      title: DateTimeOffset
      description: ISO8601 UTC Date Time
      type: object
      required:
        - iso8601
      properties:
        iso8601:
          type: string
          pattern: >-
            ^\d{4}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])T([01][0-9]|2[0-4]):([0-5][0-9])(:([0-5][0-9]))?(Z|([+-](0[0-9]|1[0-4]):([0-5][0-9])))$
          example: 2017-07-21T17:32Z
    DateTimeRange:
      type: object
      properties:
        min:
          $ref: '#/components/schemas/DateTimeLocal'
          description: Minimum value - inclusive.
        max:
          $ref: '#/components/schemas/DateTimeLocal'
          description: Maximum value - inclusive.
    DeckLevel:
      type: string
      description: The deck level of the rail.
      enum:
        - UPPER_DECK
        - LOWER_DECK
      example: UPPER_DECK
    Department:
      type: object
      title: Department
      description: Department details.
      required:
        - id
        - name
      properties:
        id:
          $ref: '#/components/schemas/DepartmentId'
        name:
          type: string
          example: IT Department
        externalId:
          type: string
          description: External id of the department
          example: department-ext-id
        employeeCount:
          type: integer
          format: int32
          description: Count of employees in the department
          example: 57
    DepartmentId:
      type: object
      title: DepartmentId
      description: Department id.
      required:
        - id
      properties:
        id:
          type: string
          example: 631ccbcf-9414-5fe0-c234-b324dfbe7422
    DepartmentV2:
      type: object
      title: DepartmentV2
      description: Department details.
      required:
        - id
        - name
      properties:
        id:
          type: string
          format: uuid
        name:
          type: string
          description: Name of the department
          example: IT Department
        externalId:
          type: string
          description: External id of the department
          example: department-ext-id
    Dimensions:
      type: object
      title: Dimensions
      description: Image dimensions ie width and height.
      properties:
        height:
          type: integer
          format: int32
          example: 120
        width:
          type: integer
          format: int32
          example: 240
    DirectBilling2:
      title: DirectBilling
      type: object
      description: Metadata for Direct Billing
      required:
        - vendorId
      properties:
        vendorId:
          type: string
          description: Unique vendor id/code
          example: ZI
        directBillingCode:
          type: string
          description: Direct billing code provided by the vendor
          example: '123456'
    DirectBillingWrapper2:
      type: object
      title: DirectBillingWrapper
      description: Wrapper for DirectBilling metadata
      required:
        - directBilling
      properties:
        directBilling:
          $ref: '#/components/schemas/DirectBilling2'
    DisabledReason:
      type: string
      description: Reason why the trip is disabled if applicable.
      enum:
        - MAX_BOOKINGS_EXCEEDED
        - TRIP_EXPIRED
    Document:
      type: object
      title: Document
      description: Document details.
      required:
        - url
        - documentId
        - documentMetadata
      properties:
        url:
          type: string
          description: S3 location of the document.
          example: https://s3.amazonaws.com/bucket-name/folder-name/file-name
        documentId:
          type: string
          format: uuid
          description: Unique identifier of the document.
          example: f49d00fe-1eda-4304-ba79-a980f565281d
        documentMetadata:
          $ref: '#/components/schemas/DocumentMetadata'
    DocumentMetadata:
      title: DocumentMetadata
      description: Metadata related to document.
      type: object
      required:
        - documentType
        - entityType
        - entityId
        - entityMetadata
        - name
      properties:
        documentType:
          $ref: '#/components/schemas/DocumentType'
        entityType:
          $ref: '#/components/schemas/EntityType'
        entityId:
          type: string
          description: Entity Id for the given entity type.
          example: '123124'
        entityMetadata:
          $ref: '#/components/schemas/EntityMetadata'
        name:
          type: string
          description: Document name.
          example: BoardingPass.pdf
    DocumentType:
      title: DocumentType
      description: Document type.
      type: string
      enum:
        - BOARDING_PASS
        - CONFIRMATION
        - INVOICE
        - VISA
        - MISCELLANEOUS
        - OTHERS
        - TASK_PROCESSOR
        - EVENT_COVER_IMAGE
        - LOGO_IMAGE
      example: VISA
      x-ignoreBreakingChanges:
        - DocumentType->LOGO_IMAGE
    DoubleListWrapper:
      type: object
      title: DoubleListWrapper
      properties:
        dList:
          type: array
          items:
            type: number
            format: double
    DoubleRange:
      type: object
      properties:
        min:
          type: number
          format: double
          description: Minimum value - inclusive.
        max:
          type: number
          format: double
          description: Maximum value - inclusive.
    DoubleRangeWrapper:
      type: object
      title: DoubleRangeWrapper
      properties:
        dRange:
          $ref: '#/components/schemas/DoubleRange'
    DoubleWrapper:
      type: object
      title: DoubleWrapper
      properties:
        d:
          type: number
          format: double
    Dpan:
      type: object
      title: Dpan
      description: Object to pass through dpan payment source details through the api call.
      required:
        - type
        - cardDetails
      properties:
        type:
          type: string
          description: Payment source type. Should be set to DPAN for card details.
        cardDetails:
          $ref: '#/components/schemas/CardDetails'
    Duration:
      type: object
      title: Duration
      description: Represents a duration of time with specific units of time.
      properties:
        iso8601:
          description: >
            Durations define the amount of intervening time in a time interval
            and are represented by the

            format P[n]Y[n]M[n]DT[n]H[n]M[n]S.

            The [n] is replaced by the value for each of the date and time
            elements that follow the [n].

            Leading zeros are not required. The capital letters P, Y, M, W, D,
            T, H, M, and S are

            designators for each of the date and time elements and are not
            replaced. P is the duration

            designator (for period) placed at the start of the duration
            representation.

            Y is the year designator.

            M is the month designator.

            W is the week designator.

            D is the day designator.

            T is the time designator.

            H is the hour designator.

            M is the minute designator.

            S is the second designator and can include decimal digits with
            arbitrary precision.
          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
            answer.
        answers:
          type: array
          items:
            $ref: '#/components/schemas/AnswerPair'
        customFieldType:
          $ref: '#/components/schemas/CustomFieldType'
        questionDisplayText:
          type: string
          description: The question text to be displayed to the user.
        question:
          $ref: '#/components/schemas/Question'
    EntityId:
      type: object
      description: Identifier of an object
      required:
        - id
      properties:
        id:
          type: string
          format: uuid
          example: b93dc51f-12dd-46c7-b7d6-1cb12cd3f5b3
    EntityMetadata:
      title: EntityMetadata
      description: Metadata for associated entity of document.
      type: object
      oneOf:
        - $ref: '#/components/schemas/PnrMetadataWrapper'
        - $ref: '#/components/schemas/EventMetadataWrapper'
    EntityType:
      title: EntityType
      description: Entity type against which the document is to uploaded.
      type: string
      enum:
        - PNR
        - COMPANY
        - AIR_ITINERARY
        - EVENT
        - LOCATION_IMAGE
        - AIR_COMMISSION_CONTRACT
      example: PNR
      x-ignoreBreakingChanges:
        - EntityType->TRIP
        - EntityType->TICKETING_ERROR
    EntityTypeV3:
      type: string
      title: EntityTypeV3
      description: The type at which the field will be stored.
      enum:
        - PNR
        - TICKET
      example: TICKET
    EntityV3:
      type: object
      title: EntityV3
      description: The entity.
      required:
        - type
        - id
      properties:
        type:
          $ref: '#/components/schemas/EntityTypeV3'
        id:
          type: string
          description: Identifier of the entity
    Equipment:
      type: object
      title: Equipment
      description: The type of the aircraft equipment
      properties:
        code:
          type: string
          description: Aircraft equipment code
          example: '777'
        type:
          type: string
          description: Code representing the type of the equipment
          example: 'N'
          deprecated: true
          x-sunset: '2026-07-01'
        name:
          type: string
          description: The name of the flight aircraft type
          example: Boeing 737-800
    EventAllowedBookingType:
      title: EventAllowedBookingType
      description: Allowed booking type for the event
      type: string
      enum:
        - AIR
        - HOTEL
        - CAR
        - RAIL
    EventBookingGuideline:
      title: EventBookingGuideline
      description: Booking details allowed for the event
      type: object
      oneOf:
        - $ref: '#/components/schemas/AirBookingGuidelineWrapper'
        - $ref: '#/components/schemas/HotelBookingGuidelineWrapper'
        - $ref: '#/components/schemas/CarBookingGuidelineWrapper'
        - $ref: '#/components/schemas/RailBookingGuidelineWrapper'
      properties:
        numGuestsAllowed:
          type: integer
          description: Number of guests allowed to be booked for this booking
          example: 1
    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'
    EventInfo:
      type: object
      description: Queue event related information.
      properties:
        id:
          description: Unique task event ID.
          type: string
          format: uuid
          example: 065c77fa-900c-11ec-9eeb-0242ac170003
        priority:
          $ref: '#/components/schemas/Priority'
        queueNumber:
          deprecated: true
          x-sunset: '2026-07-01'
          description: Queue Number.
          type: integer
          format: int32
          example: 10
        queueDescription:
          deprecated: true
          x-sunset: '2026-07-01'
          description: Description of the queue.
          type: string
          example: PNR modified by airline that contains corporate travel policy
        type:
          type: string
          readOnly: true
          example: TAW - Tickets to print
        description:
          description: Description of the event.
          type: string
          example: PNR modified by airline that contains corporate travel policy
        metadata:
          description: Metadata of the event.
          type: string
          example: Q:20
        taskMetadata:
          $ref: '#/components/schemas/TaskMetadata'
        createdAt:
          $ref: '#/components/schemas/DateTimeOffset'
    EventLocation:
      title: EventLocation
      description: Location for an event
      type: object
      properties:
        address:
          $ref: '#/components/schemas/PostalAddress'
        coordinates:
          $ref: '#/components/schemas/Latlng'
    EventMetadataWrapper:
      type: object
      title: EventMetadataWrapper
      properties:
        eventMetadata:
          $ref: '#/components/schemas/EventEntityMetadata'
    EventRsvpResponse:
      title: EventRsvpResponse
      type: object
      description: Event rsvp response
      properties:
        air:
          $ref: '#/components/schemas/AirRsvpResponse'
        hotel:
          $ref: '#/components/schemas/HotelRsvpResponse'
        car:
          $ref: '#/components/schemas/CarRsvpResponse'
        rail:
          $ref: '#/components/schemas/RailRsvpResponse'
    EventRsvpState:
      title: EventRsvpState
      description: Allowed event rsvp states for a user
      type: string
      enum:
        - ADDED
        - INVITED
        - INVITE_ACCEPTED
        - INVITE_DECLINED
        - REMOVED
    EventRunningStatus:
      title: EventRunningStatus
      description: Running status of an event
      type: string
      enum:
        - IN_PROGRESS
        - UPCOMING
        - COMPLETED
      example: UPCOMING
    EventStatus:
      title: EventStatus
      description: Status of an event
      type: string
      enum:
        - DRAFT
        - PUBLISH
        - CANCELLED
      example: DRAFT
    EventType:
      title: EventType
      description: Type of an event
      type: string
      enum:
        - GENERIC
        - PROGRAM
        - PROGRAM_SESSION
        - PROGRAM_TRIP
      example: GENERIC
    EventUserInfo:
      title: EventUserInfo
      description: User information for the event
      type: object
      required:
        - userId
        - name
      properties:
        userId:
          $ref: '#/components/schemas/UserId'
        email:
          type: string
          description: Business email of the user
          example: a@spotnana.com
          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'
    ExchangePolicy:
      type: object
      description: Information about the exchange policy.
      properties:
        description:
          type: string
          description: Text describing the exchange policy.
          example: Change allowed for free
        fee:
          $ref: '#/components/schemas/Money'
        assessmentType:
          $ref: '#/components/schemas/AssessmentType'
        isCat16:
          type: boolean
          description: Is source cat16
          example: true
        isConditional:
          type: boolean
          description: Is conditional
          example: true
    ExchangeTask:
      type: object
      title: ExchangeTask
      description: Exchange task details.
      required:
        - taskType
        - exchangedTickets
      properties:
        taskType:
          $ref: '#/components/schemas/InternalTaskType'
        exchangedTickets:
          type: array
          description: List of tickets.
          items:
            $ref: '#/components/schemas/ExchangeTicket'
        preBookAnswers:
          $ref: '#/components/schemas/PreBookAnswers'
        notes:
          type: string
          description: Reason/Notes for exchange.
          example: Time change for ticket
    ExchangeTicket:
      type: object
      title: ExchangeTicket
      description: Exchanged Ticket details.
      required:
        - originalTicketNumber
        - exchangedSegments
      properties:
        originalTicketNumber:
          type: string
          description: Original Ticket number.
          example: '123456'
        exchangedSegments:
          type: string
          description: Exchanged segment numbers within a ticket.
          example: 1,2
        waiverCode:
          type: string
          description: Waiver code.
          example: WaiverCode
        additionalFare:
          description: Additional fare details for exchange.
          $ref: '#/components/schemas/Money'
        airlinePenalty:
          description: Airline penalty details for exchange.
          $ref: '#/components/schemas/Money'
        additionalTaxes:
          description: Additional taxes for exchange.
          $ref: '#/components/schemas/Money'
    Expiry:
      title: Expiry
      type: object
      description: Contains the expiry of a Card.
      required:
        - expiryMonth
        - expiryYear
      properties:
        expiryMonth:
          type: integer
          format: int32
          minimum: 1
          maximum: 12
          description: Expiry month
          example: 1
        expiryYear:
          type: integer
          format: int32
          description: Expiry year
          minimum: 2000
          example: 2010
    ExpiryWrapper:
      type: object
      title: ExpiryWrapper
      properties:
        expiry:
          $ref: '#/components/schemas/Expiry'
    Expression:
      type: object
      title: Expression
      description: >
        Expression consisting of variables and constants which needs to be sent
        along with custom

        field response.
      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 

            can consist of a combination of variables and mathematical
            operations.
             Variable names must be same as VariableName Enum.
              To define mathematical operations, the operation name should follow the format
            `math.<math_op>(arg1, arg2)`. Both `arg1` and `arg2` can be
            variables or constants. 

            The supported math operations (math_op) include: `add, mul, div,
            sub, min,

            and max`. All keywords, such as `<math_op>, math, and var` must be
            written in lowercase.
          example: 'Result:  ${math.mul(LLF,5)}  ${ADD_COLLECT_AMOUNT}'
        variables:
          type: array
          description: Reference names of the variables present in the expression.
          deprecated: true
          x-sunset: '2026-07-01'
          items:
            $ref: '#/components/schemas/VariableName'
    FailureDetails:
      type: object
      title: FailureDetails
      description: Failure details
      properties:
        failureCode:
          type: string
          description: failure code
          enum:
            - FAILURE_CODE_UNKNOWN
            - PAYMENT_METHOD_MISSING
            - PAYMENT_GATEWAY_FAILURE
        failureMessage:
          type: string
          description: failure message
    FailureReason:
      type: object
      title: FailureReason
      description: Contains the failure reason in case of any Failed Transaction
      properties:
        reasonCode:
          type: string
          description: Reason Code associated with the Failure
          enum:
            - PAYMENT_METHOD_MISSING
            - PAYMENT_GATEWAY_FAILURE
          example: PAYMENT_METHOD_MISSING
    FareAmount:
      type: object
      title: FareAmount
      description: Fare amount including base fare and tax.
      required:
        - base
        - tax
      properties:
        base:
          description: Base fare amount.
          $ref: '#/components/schemas/Money'
        tax:
          description: Tax amount.
          $ref: '#/components/schemas/Money'
        taxBreakdown:
          description: Breakdown of tax amounts.
          $ref: '#/components/schemas/TaxBreakdown'
    FareComponentDetail:
      type: object
      title: FareComponentDetail
      description: Fare component details for this itinerary
      required:
        - fareBasisCode
        - flightIds
      properties:
        fareBasisCode:
          type: string
          description: Fare basis code for the booking
          example: QUAJZNB3
        tourCode:
          type: string
          description: Tour code applied on this fare component
          example: ABC12
        ticketDesignator:
          type: string
          description: Ticket designator applied on this fare component
          example: ABC
        baseFare:
          $ref: '#/components/schemas/Money'
          description: Base fare for this fare component
        flightIds:
          type: array
          minItems: 1
          items:
            description: Flights to which this fare component is applicable
            $ref: '#/components/schemas/FlightId'
        farePaxType:
          $ref: '#/components/schemas/PassengerType'
          description: >-
            The passengerType of the fare, this can be different from the
            passengerType of the user for which this fare is booked.
        corpAccountCode:
          type: string
          description: The account code which is used to get corporate negotiated price
          example: WAT01
    FarePref:
      type: object
      title: FarePref
      description: Fare preferences.
      required:
        - fareTypes
      properties:
        fareTypes:
          type: array
          items:
            type: string
            enum:
              - UNKNOWN_TYPE
              - CHANGEABLE
              - REFUNDABLE
            example: CHANGEABLE
    FareStatistics:
      type: object
      required:
        - statisticsItems
      properties:
        statisticsItems:
          type: array
          items:
            $ref: '#/components/schemas/StatisticsItem'
            description: minimum/median/maximum prices of itinerary in air search response
        cheapestFares:
          type: array
          items:
            $ref: '#/components/schemas/CheapestFareInfo'
            description: List of cheapest fares for the itinerary
    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'
    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
          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 

            segments.
          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
    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
    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'
    FlightRestrictions:
      type: string
      title: FlightRestrictions
      description: Restrictions like seat booking, loyalty etc.
      enum:
        - PRE_BOOKING_SEAT_NOT_ALLOWED
        - POST_BOOKING_SEAT_NOT_ALLOWED
        - SEAT_BOOKING_NOT_ALLOWED_DUE_TO_BRAND
        - SEAT_BOOKING_NOT_ALLOWED
        - SEAT_BOOKING_NOT_ALLOWED_OPEN_SEATING
        - SEAT_NOT_GUARANTEED_WARNING
        - SEAT_BOOKING_NOT_ALLOWED_DUE_TO_CODESHARE
        - SUPPRESS_SEAT_LOYALTY_PRICING_WARNING
      example: SEAT_BOOKING_NOT_ALLOWED_DUE_TO_BRAND
    FlightSeatStatus:
      type: string
      description: Status of assigned seat.
      enum:
        - CONFIRMED
        - PENDING
        - UNKNOWN
        - CANCELLED
      example: CONFIRMED
    FlightUpdates:
      type: object
      title: FlightUpdates
      description: Flight alerts like departure datetime change, gate change, etc.
      properties:
        previousDepartureDateTime:
          description: Departure date time before this alert
          $ref: '#/components/schemas/DateTimeLocal'
        previousArrivalDateTime:
          description: Arrival date time before this alert
          $ref: '#/components/schemas/DateTimeLocal'
        previousDepartureGate:
          description: Departure gate before this alert
          $ref: '#/components/schemas/Gate'
        previousArrivalGate:
          description: Arrival gate before this alert
          $ref: '#/components/schemas/Gate'
        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

        when the PNR returned is not the latest PNR available.
      properties:
        latestVersionDateTime:
          description: >
            Time when the PNR information was updated in Spotnana's systems for
            the latest PNR

            version available.
          $ref: '#/components/schemas/DateTimeOffset'
        returnedVersionDateTime:
          description: >
            Time when the PNR information was updated in Spotnana's systems for
            the PNR whose

            information is in this object.
          $ref: '#/components/schemas/DateTimeOffset'
    Gate:
      type: object
      title: Gate
      description: Flight boarding / arrival gate
      properties:
        gate:
          type: string
          description: Gate number
          example: 1A
        terminal:
          type: string
          description: Airport terminal
          example: '1'
    GatewayIdentifier:
      type: object
      properties:
        gatewayId:
          type: string
          description: Gateway Id for which the payment method should be verified.
        gatewayType:
          type: string
          description: Gateway Type for of the verification gateway.
          enum:
            - PAYMENT_GATEWAY_UNKNOWN
            - STRIPE
            - BREX
            - RAZORPAY
    GatewayInfo:
      type: object
      title: GatewayInfo
      description: Payment gateway information
      oneOf:
        - $ref: '#/components/schemas/StripeInfoWrapper'
    Gender:
      title: Gender
      type: string
      x-pii: SENSITIVE
      enum:
        - MALE
        - FEMALE
        - UNSPECIFIED
        - UNDISCLOSED
        - GENDER_REDACTED
      example: FEMALE
    Grade:
      type: object
      title: Grade
      description: Grade details.
      required:
        - id
        - name
      properties:
        employeeCount:
          type: integer
          format: int32
          description: Count of employees in the grade
          example: 75
        id:
          $ref: '#/components/schemas/GradeId'
        name:
          type: string
          example: Grade
    GradeId:
      type: object
      title: GradeId
      description: Grade id.
      required:
        - id
      properties:
        id:
          type: string
          example: 831ccbcb-1416-7fe2-e236-d324dfbe7424
    HoldInfo:
      type: object
      title: HoldInfo
      description: Hold Information about the booking.
      required:
        - holdDeadline
      properties:
        holdDeadline:
          $ref: '#/components/schemas/DateTimeOffset'
    Hotel:
      title: HotelPnr
      description: Hotel PNR information
      required:
        - checkInDateTime
        - checkOutDateTime
        - hotelInfo
        - numberOfRooms
        - payment
        - room
        - vendorConfirmationNumber
      properties:
        checkInDateTime:
          $ref: '#/components/schemas/DateTimeLocal'
          description: Check-in date and time.
        checkOutDateTime:
          $ref: '#/components/schemas/DateTimeLocal'
          description: Check-out date and time.
        hotelInfo:
          $ref: '#/components/schemas/HotelInfo'
          description: Hotel details.
        numberOfRooms:
          type: integer
          description: Number of rooms booked.
          format: int32
          example: 1
        payment:
          type: object
          title: HotelPayment
          description: Payment method.
          required:
            - paymentType
          properties:
            paymentType:
              type: string
              description: Payment type.
              enum:
                - UNKNOWN
                - PAY_AT_HOTEL
                - PREPAID
                - OTHER
              example: PREPAID
            description:
              type: string
              description: Payment method, if payment type is OTHER.
        pnrStatus:
          $ref: '#/components/schemas/PnrStatus'
          description: Pnr status.
        room:
          $ref: '#/components/schemas/Room'
          description: Room info.
        vendorConfirmationNumber:
          type: string
          description: Hotel confirmation number
          example: '2108528068'
        travelerInfos:
          type: array
          description: Information about travelers.
          items:
            $ref: '#/components/schemas/HotelTravelerInfo'
        sortingPriority:
          type: integer
          description: Sorting priority amongst other pnrs
          example: 0
        vendorReferenceId:
          type: string
          description: Reference provided by vendors
          example: AWKHGS
        vendorCancellationId:
          type: string
          description: Cancellation reference provided by vendors
          example: AWKHGS
        preferredType:
          type: array
          description: Hotel preference
          deprecated: true
          x-sunset: '2026-07-01'
          items:
            $ref: '#/components/schemas/PreferredType'
        preferences:
          type: array
          description: Hotel preference
          items:
            $ref: '#/components/schemas/Preference'
        occupancy:
          type: array
          description: Occupancy information
          items:
            $ref: '#/components/schemas/HotelOccupancy'
        sourceStatus:
          type: string
          description: Source status code of the pnr
        rebookReference:
          $ref: '#/components/schemas/RebookReference'
        hotelSpecialRequests:
          $ref: '#/components/schemas/HotelSpecialRequests'
          description: Hotel special requests.
        ancillaries:
          type: array
          description: User selected ancillaries for the hotel booking.
          items:
            $ref: '#/components/schemas/HotelAncillary'
    HotelAccessibleFeatureType:
      type: string
      title: Hotel Accessible Feature Type
      description: Types of accessible features available in the hotel.
      enum:
        - MOBILITY_ACCESSIBLE_ROOM_WITH_TUB
        - MOBILITY_ACCESSIBLE_ROOM_WITH_ROLL_IN_SHOWER
        - HEARING_ACCESSIBLE_ROOM
        - MOBILITY_ACCESSIBLE_ROOM_WITH_TUB_AND_ROLL_IN_SHOWER
        - MOBILITY_ACCESSIBLE_ROOM_WITH_TUB_AND_HEARING_ACCESSIBLE_ROOM
        - >-
          MOBILITY_ACCESSIBLE_ROOM_WITH_ROLL_IN_SHOWER_AND_HEARING_ACCESSIBLE_ROOM
        - MOBILITY_ACCESSIBLE_ROOM_WITH_TRANSFER_SHOWER
        - MOBILITY_ACCESSIBLE_ROOM_WITH_TUB_AND_TRANSFER_SHOWER
        - >-
          MOBILITY_ACCESSIBLE_ROOM_WITH_TRANSFER_SHOWER_AND_HEARING_ACCESSIBLE_ROOM
      example: MOBILITY_ACCESSIBLE_ROOM_WITH_TUB
    HotelAdditionalDetail:
      title: HotelAdditionalDetail
      type: object
      properties:
        additionalDetailType:
          $ref: '#/components/schemas/HotelAdditionalDetailType'
          description: Type of the Additional Detail for the room.
        text:
          type: string
    HotelAdditionalDetailType:
      title: HotelAdditionalDetailType
      type: string
      enum:
        - ADDITIONAL_DETAIL_TYPE_UNKNOWN
        - RATE_DESCRIPTION
        - PROPERTY_DESCRIPTION
        - PROPERTY_LOCATION
        - ROOM_INFORMATION
        - GUARANTEE_INFORMATION
        - DEPOSIT_INFORMATION
        - CANCELLATION_INFORMATION
        - CHECK_IN_CHECK_OUT_INFORMATION
        - EXTRA_CHARGE_INFORMATION
        - TAX_INFORMATION
        - SERVICE_CHARGE_INFORMATION
        - PACKAGE_INFORMATION
        - COMMISSION_INFORMATION
        - MISCELLANEOUS_INFORMATION
        - PROMOTIONAL_INFORMATION
        - INCLUSION_INFORMATION
        - AMENITY_INFORMATION
        - LATE_ARRIVAL_INFORMATION
        - LATE_DEPARTURE_INFORMATION
        - ADVANCED_BOOKING_INFORMATION
        - EXTRA_PERSON_INFORMATION
        - AREAS_SERVED
        - ONSITE_FACILITIES_INFORMATION
        - OFFSITE_FACILITIES_INFORMATION
        - ONSITE_SERVICES_INFORMATION
        - OFFSITE_SERVICES_INFORMATION
        - EXTENDED_STAY_INFORMATION
        - CORPORATE_BOOKING_INFORMATION
        - BOOKING_GUIDELINES
        - GOVERNMENT_BOOKING_POLICY
        - GROUP_BOOKING_INFORMATION
        - RATE_DISCLAIMER_INFORMATION
        - VISA_TRAVEL_REQUIREMENT_INFORMATION
        - SECURITY_INFORMATION
        - ONSITE_RECREATIONAL_ACTIVITIES_INFORMATION
        - OFFSITE_RECREATIONAL_ACTIVITIES_INFORMATION
        - GENERAL_MEETING_PLANNING_INFORMATION
        - GROUP_MEETING_PLANNING_INFORMATION
        - CONTRACT_NEGOTIATED_BOOKING_INFORMATION
        - TRAVEL_INDUSTRY_BOOKING_INFORMATION
        - MEETING_ROOM_DESCRIPTION
        - PET_POLICY_DESCRIPTION
        - MEAL_PLAN_DESCRIPTION
        - FAMILY_PLAN_DESCRIPTION
        - CHILDREN_INFORMATION
        - EARLY_CHECKOUT_DESCRIPTION
        - SPECIAL_OFFERS_DESCRIPTION
        - CATERING_DESCRIPTION
        - ROOM_DECOR_DESCRIPTION
        - OVERSOLD_POLICY_DESCRIPTION
        - LAST_ROOM_AVAILABILITY_DESCRIPTION
        - ROOM_TYPE_UPGRADE_DESCRIPTION
        - DRIVING_DIRECTIONS
        - DRIVING_DIRECTIONS_FROM_THE_NORTH
        - DRIVING_DIRECTIONS_FROM_THE_SOUTH
        - DRIVING_DIRECTIONS_FROM_THE_EAST
        - DRIVING_DIRECTIONS_FROM_THE_WEST
        - SURCHARGE_INFORMATION
        - MINIMUM_STAY_INFORMATION
        - MAXIMUM_STAY_INFORMATION
        - CHECK_IN_POLICY
        - CHECK_OUT_POLICY
        - EXPRESS_CHECK_IN_POLICY
        - EXPRESS_CHECK_OUT_POLICY
        - FACILITY_RESTRICTIONS
        - CUSTOMS_INFORMATION_FOR_MATERIAL
        - SEASONS
        - FOOD_AND_BEVERAGE_MINIMUMS_FOR_GROUPS
        - DEPOSIT_POLICY_FOR_MASTER_ACCOUNT
        - DEPOSIT_POLICY_FOR_RESERVATIONS
        - RESTAURANT_SERVICES
        - SPECIAL_EVENTS
        - CUISINE_DESCRIPTION
        - KEY_COLLECTION_INFO
        - IMPORTANT_INFO
    HotelAmenities:
      title: HotelAmenities
      type: object
      description: Type of hotel amenity
      properties:
        type:
          $ref: '#/components/schemas/HotelAmenityType'
        additionalInfo:
          type: string
          description: Amenity description
          example: Complimentary in-room coffee or tea
        complimentary:
          type: boolean
          description: Is Amenity complimentary
          example: true
    HotelAmenityType:
      title: HotelAmenityType
      type: string
      description: Type of hotel amenity.
      enum:
        - TWENTY_FOUR_HOUR_FRONT_DESK
        - TWENTY_FOUR_HOUR_ROOM_SERVICE
        - TWENTY_FOUR_HOUR_SECURITY
        - ADJOINING_ROOMS
        - AIR_CONDITIONING
        - AIRLINE_DESK
        - ATM_CASH_MACHINE
        - BABY_SITTING
        - BBQ_PICNIC_AREA
        - BILINGUAL_STAFF
        - BOOKSTORE
        - BOUTIQUES_STORES
        - BRAILED_ELEVATORS
        - BUSINESS_LIBRARY
        - CAR_RENTAL_DESK
        - CASINO
        - CHECK_CASHING_POLICY
        - CHECK_IN_KIOSK
        - COCKTAIL_LOUNGE
        - COFFEE_SHOP
        - COIN_OPERATED_LAUNDRY
        - CONCIERGE_DESK
        - CONCIERGE_FLOOR
        - CONFERENCE_FACILITIES
        - COURTYARD
        - CURRENCY_EXCHANGE
        - DESK_WITH_ELECTRICAL_OUTLET
        - DOCTOR_ON_CALL
        - DOOR_MAN
        - DRIVING_RANGE
        - DRUGSTORE_PHARMACY
        - DUTY_FREE_SHOP
        - ELEVATORS
        - EXECUTIVE_FLOOR
        - EXERCISE_GYM
        - EXPRESS_CHECK_IN
        - EXPRESS_CHECK_OUT
        - FAMILY_PLAN
        - FLORIST
        - FOLIOS
        - FREE_AIRPORT_SHUTTLE
        - FREE_PARKING
        - FREE_TRANSPORTATION
        - GAME_ROOM
        - GIFT_NEWS_STAND
        - HAIRDRESSER_BARBER
        - ACCESSIBLE_FACILITIES
        - HEALTH_CLUB
        - HEATED_POOL
        - HOUSEKEEPING_DAILY
        - HOUSEKEEPING_WEEKLY
        - ICE_MACHINE
        - INDOOR_PARKING
        - INDOOR_POOL
        - JACUZZI
        - JOGGING_TRACK
        - KENNELS
        - LAUNDRY_VALET_SERVICE
        - LIQUOR_STORE
        - LIVE_ENTERTAINMENT
        - MASSAGE_SERVICES
        - NIGHTCLUB
        - OFF_SITE_PARKING
        - ON_SITE_PARKING
        - OUTDOOR_PARKING
        - OUTDOOR_POOL
        - PACKAGE_PARCEL_SERVICES
        - PARKING
        - PHOTOCOPY_CENTER
        - PLAYGROUND
        - POOL
        - POOLSIDE_SNACK_BAR
        - PUBLIC_ADDRESS_SYSTEM
        - RAMP_ACCESS
        - RECREATIONAL_VEHICLE_PARKING
        - RESTAURANT
        - ROOM_SERVICE
        - SAFE_DEPOSIT_BOX
        - SAUNA
        - SECURITY
        - SHOE_SHINE_STAND
        - SHOPPING_MALL
        - SOLARIUM
        - SPA
        - SPORTS_BAR
        - STEAM_BATH
        - STORAGE_SPACE
        - SUNDRY_CONVENIENCE_STORE
        - TECHNICAL_CONCIERGE
        - THEATRE_DESK
        - TOUR_SIGHTSEEING_DESK
        - TRANSLATION_SERVICES
        - TRAVEL_AGENCY
        - TRUCK_PARKING
        - VALET_CLEANING
        - DRY_CLEANING
        - VALET_PARKING
        - VENDING_MACHINES
        - VIDEO_TAPES
        - WAKEUP_SERVICE
        - WHEELCHAIR_ACCESS
        - WHIRLPOOL
        - MULTILINGUAL_STAFF
        - WEDDING_SERVICES
        - BANQUET_FACILITIES
        - BELL_STAFF_PORTER
        - BEAUTY_SHOP_SALON
        - COMPLIMENTARY_SELF_SERVICE_LAUNDRY
        - DIRECT_DIAL_TELEPHONE
        - FEMALE_TRAVELER_ROOM_FLOOR
        - PHARMACY
        - STABLES
        - ONE_TWENTY_AC
        - ONE_TWENTY_DC
        - TWO_TWENTY_AC
        - ACCESSIBLE_PARKING
        - TWO_TWENTY_DC
        - BARBEQUE_GRILLS
        - WOMENS_CLOTHING
        - MENS_CLOTHING
        - CHILDRENS_CLOTHING
        - SHOPS_AND_COMMERCIAL_SERVICES
        - VIDEO_GAMES
        - SPORTS_BAR_OPEN_FOR_LUNCH
        - SPORTS_BAR_OPEN_FOR_DINNER
        - ROOM_SERVICE_FULL_MENU
        - ROOM_SERVICE_LIMITED_MENU
        - ROOM_SERVICE_LIMITED_HOURS
        - VALET_SAME_DAY_DRY_CLEANING
        - BODY_SCRUB
        - BODY_WRAP
        - PUBLIC_AREA_AIR_CONDITIONED
        - EFOLIO_AVAILABLE_TO_COMPANY
        - INDIVIDUAL_EFOLIO_AVAILABLE
        - VIDEO_REVIEW_BILLING
        - BUTLER_SERVICE
        - COMPLIMENTARY_IN_ROOM_COFFEE_OR_TEA
        - COMPLIMENTARY_BUFFET_BREAKFAST
        - COMPLIMENTARY_COCKTAILS
        - COMPLIMENTARY_COFFEE_IN_LOBBY
        - COMPLIMENTARY_CONTINENTAL_BREAKFAST
        - COMPLIMENTARY_FULL_AMERICAN_BREAKFAST
        - DINNER_DELIVERY_SERVICE_FROM_LOCAL_RESTAURANT
        - COMPLIMENTARY_NEWSPAPER_DELIVERED_TO_ROOM
        - COMPLIMENTARY_NEWSPAPER_IN_LOBBY
        - COMPLIMENTARY_SHOESHINE
        - EVENING_RECEPTION
        - FRONT_DESK
        - GROCERY_SHOPPING_SERVICE_AVAILABLE
        - HALAL_FOOD_AVAILABLE
        - KOSHER_FOOD_AVAILABLE
        - LIMOUSINE_SERVICE
        - MANAGERS_RECEPTION
        - MEDICAL_FACILITIES_SERVICE
        - TELEPHONE_JACK_ADAPTOR_AVAILABLE
        - ALL_INCLUSIVE_MEAL_PLAN
        - BUFFET_BREAKFAST
        - COMMUNAL_BAR_AREA
        - CONTINENTAL_BREAKFAST
        - FULL_MEAL_PLAN
        - FULL_AMERICAN_BREAKFAST
        - MEAL_PLAN_AVAILABLE
        - MODIFIED_AMERICAN_MEAL_PLAN
        - FOOD_AND_BEVERAGE_OUTLETS
        - LOUNGES_BARS
        - BARBER_SHOP
        - VIDEO_CHECKOUT
        - ONSITE_LAUNDRY
        - TWENTY_FOUR_HOUR_FOOD_AND_BEVERAGE_KIOSK
        - CONCIERGE_LOUNGE
        - PARKING_FEE_MANAGED_BY_HOTEL
        - TRANSPORTATION
        - BREAKFAST_SERVED_IN_RESTAURANT
        - LUNCH_SERVED_IN_RESTAURANT
        - DINNER_SERVED_IN_RESTAURANT
        - FULL_SERVICE_HOUSEKEEPING
        - LIMITED_SERVICE_HOUSEKEEPING
        - HIGH_SPEED_INTERNET_ACCESS_FOR_LAPTOP_IN_PUBLIC_AREAS
        - WIRELESS_INTERNET_CONNECTION_IN_PUBLIC_AREAS
        - ADDITIONAL_SERVICES_AMENITIES_FACILITIES_ON_PROPERTY
        - TRANSPORTATION_SERVICES_LOCAL_AREA
        - TRANSPORTATION_SERVICES_LOCAL_OFFICE
        - DVD_VIDEO_RENTAL
        - PARKING_LOT
        - PARKING_DECK
        - STREET_SIDE_PARKING
        - COCKTAIL_LOUNGE_WITH_ENTERTAINMENT
        - COCKTAIL_LOUNGE_WITH_LIGHT_FARE
        - MOTORCYCLE_PARKING
        - PHONE_SERVICES
        - BALLROOM
        - BUS_PARKING
        - CHILDRENS_PLAY_AREA
        - CHILDRENS_NURSERY
        - DISCO
        - EARLY_CHECK_IN
        - LOCKER_ROOM
        - NON_SMOKING_ROOMS_GENERIC
        - TRAIN_ACCESS
        - AEROBICS_INSTRUCTION
        - BAGGAGE_HOLD
        - BICYCLE_RENTALS
        - DIETICIAN
        - LATE_CHECK_OUT_AVAILABLE
        - PET_SITTING_SERVICES
        - PRAYER_MATS
        - SPORTS_TRAINER
        - TURNDOWN_SERVICE
        - DVDS_VIDEOS_CHILDREN
        - BANK
        - LOBBY_COFFEE_SERVICE
        - BANKING_SERVICES
        - STAIRWELLS
        - PET_AMENITIES_AVAILABLE
        - EXHIBITION_CONVENTION_FLOOR
        - LONG_TERM_PARKING
        - CHILDREN_NOT_ALLOWED
        - CHILDREN_WELCOME
        - COURTESY_CAR
        - HOTEL_DOES_NOT_PROVIDE_PORNOGRAPHIC_FILMS_TV
        - HOTSPOTS
        - FREE_HIGH_SPEED_INTERNET_CONNECTION
        - INTERNET_SERVICES
        - PETS_ALLOWED
        - GOURMET_HIGHLIGHTS
        - CATERING_SERVICES
        - COMPLIMENTARY_BREAKFAST
        - BUSINESS_CENTER
        - BUSINESS_SERVICES
        - SECURED_PARKING
        - RACQUETBALL
        - SNOW_SPORTS
        - TENNIS_COURT
        - WATER_SPORTS
        - CHILD_PROGRAMS
        - GOLF
        - HORSEBACK_RIDING
        - OCEANFRONT
        - BEACHFRONT
        - HAIR_DRYER
        - IRONING_BOARD
        - HEATED_GUEST_ROOMS
        - TOILET
        - PARLOR
        - VIDEO_GAME_PLAYER
        - THALASSOTHERAPY
        - PRIVATE_DINING_FOR_GROUPS
        - HEARING_IMPAIRED_SERVICES
        - CARRYOUT_BREAKFAST
        - DELUXE_CONTINENTAL_BREAKFAST
        - HOT_CONTINENTAL_BREAKFAST
        - HOT_BREAKFAST
        - PRIVATE_POOL
        - CONNECTING_ROOMS
        - DATA_PORT
        - EXTERIOR_CORRIDORS
        - GULF_VIEW
        - ACCESSIBLE_ROOMS
        - HIGH_SPEED_INTERNET_ACCESS
        - INTERIOR_CORRIDORS
        - HIGH_SPEED_WIRELESS
        - KITCHENETTE
        - PRIVATE_BATH_OR_SHOWER
        - FIRE_SAFETY_COMPLIANT
        - WELCOME_DRINK
        - BOARDING_PASS_PRINT_OUT_AVAILABLE
        - PRINTING_SERVICES_AVAILABLE
        - ALL_PUBLIC_AREAS_NON_SMOKING
        - MEETING_ROOMS
        - MOVIES_IN_ROOM
        - SECRETARIAL_SERVICE
        - SNOW_SKIING
        - WATER_SKIING
        - FAX_SERVICE
        - GREAT_ROOM
        - LOBBY
        - MULTIPLE_PHONE_LINES_BILLED_SEPARATELY
        - UMBRELLAS
        - GAS_STATION
        - GROCERY_STORE
        - TWENTY_FOUR_HOUR_COFFEE_SHOP
        - AIRPORT_SHUTTLE_SERVICE
        - LUGGAGE_SERVICE
        - PIANO_BAR
        - VIP_SECURITY
        - COMPLIMENTARY_WIRELESS_INTERNET
        - CONCIERGE_BREAKFAST
        - SAME_GENDER_FLOOR
        - CHILDREN_PROGRAMS
        - BUILDING_MEETS_LOCAL_STATE_AND_COUNTRY_BUILDING_CODES
        - INTERNET_BROWSER_ON_TV
        - NEWSPAPER
        - PARKING_CONTROLLED_ACCESS_GATES_TO_ENTER_PARKING_AREA
        - HOTEL_SAFE_DEPOSIT_BOX_NOT_ROOM_SAFE_BOX
        - STORAGE_SPACE_AVAILABLE_FEE
        - TYPE_OF_ENTRANCES_TO_GUEST_ROOMS
        - BEVERAGE_COCKTAIL
        - CELL_PHONE_RENTAL
        - COFFEE_TEA
        - EARLY_CHECK_IN_GUARANTEE
        - FOOD_AND_BEVERAGE_DISCOUNT
        - LATE_CHECK_OUT_GUARANTEE
        - ROOM_UPGRADE_CONFIRMED
        - ROOM_UPGRADE_ON_AVAILABILITY
        - SHUTTLE_TO_LOCAL_BUSINESSES
        - SHUTTLE_TO_LOCAL_ATTRACTIONS
        - SOCIAL_HOUR
        - VIDEO_BILLING
        - WELCOME_GIFT
        - HYPOALLERGENIC_ROOMS
        - ROOM_AIR_FILTRATION
        - SMOKE_FREE_PROPERTY
        - WATER_PURIFICATION_SYSTEM_IN_USE
        - POOLSIDE_SERVICE
        - CLOTHING_STORE
        - ELECTRIC_CAR_CHARGING_STATIONS
        - OFFICE_RENTAL
        - PIANO
        - INCOMING_FAX
        - OUTGOING_FAX
        - SEMI_PRIVATE_SPACE
        - LOADING_DOCK
        - BABY_KIT
        - CHILDRENS_BREAKFAST
        - CLOAKROOM_SERVICE
        - COFFEE_LOUNGE
        - EVENTS_TICKET_SERVICE
        - LATE_CHECK_IN
        - LIMITED_PARKING
        - OUTDOOR_SUMMER_BAR_CAFE
        - NO_PARKING_AVAILABLE
        - BEER_GARDEN
        - GARDEN_LOUNGE_BAR
        - SUMMER_TERRACE
        - WINTER_TERRACE
        - ROOF_TERRACE
        - BEACH_BAR
        - HELICOPTER_SERVICE
        - FERRY
        - TAPAS_BAR
        - CAFE_BAR
        - SNACK_BAR
        - GUESTROOM_WIRED_INTERNET
        - GUESTROOM_WIRELESS_INTERNET
        - FITNESS_CENTER
        - ALCOHOLIC_BEVERAGES
        - NON_ALCOHOLIC_BEVERAGES
        - HEALTH_AND_BEAUTY_SERVICES
        - LOCAL_CALLS
        - MINIBAR
        - REFRIGERATOR
        - IN_ROOM_SAFE
        - SMOKING_ROOMS_AVAILBLE
        - MOUNTAIN_VIEW
        - POOL_VIEW
        - BEACH_VIEW
        - OCEAN_VIEW
        - ROOMS_WITH_BALCONY
        - FAMILY_ROOM
        - CRIB_CHARGE
        - ROLLAWAY_ADULT
        - FREE_WIFI_IN_MEETING_ROOMS
        - ECO_FRIENDLY
        - EXTRA_PERSON
        - STAY_SAFE
        - ENHANCED_HYGIENE_CLEANLINESS_PROTOCOLS
      example: ECO_FRIENDLY
    HotelAncillary:
      type: object
      title: Hotel Ancillary
      description: >-
        Represents an individual ancillary service or add-on for a hotel
        booking.
      required:
        - ancillaryKey
        - category
        - displayName
        - dailyPrice
        - totalPrice
        - refundability
        - purchaseStatus
        - paymentType
      properties:
        ancillaryKey:
          type: string
          description: Unique identifier for the ancillary service.
        category:
          type: string
          enum:
            - ANCILLARY_UNKNOWN
            - EARLY_CHECKIN
            - LATE_CHECKOUT
            - WIFI
            - BREAKFAST
            - PARKING
            - PETS
            - MEAL_PLAN
            - OTHER
          description: Type of ancillary.
        displayName:
          type: string
          description: Display name of ancillary.
        description:
          type: string
          description: Detailed description of ancillary.
        dailyPrice:
          $ref: '#/components/schemas/Money'
          description: Per day price of ancillary.
        totalPrice:
          $ref: '#/components/schemas/Money'
          description: Total price for the entire stay.
        refundability:
          type: string
          enum:
            - REFUNDABILITY_UNKNOWN
            - FULLY_REFUNDABLE
            - PARTIALLY_REFUNDABLE
            - NON_REFUNDABLE
          description: Refundability information about the ancillary.
        purchaseStatus:
          type: string
          enum:
            - PURCHASE_STATUS_UNKNOWN
            - AVAILABLE
            - ALREADY_PURCHASED
            - INCLUDED_IN_RATE
          description: Purchase status of the ancillary.
        paymentType:
          type: string
          enum:
            - PAYMENT_TYPE_UNKNOWN
            - PREPAID
            - POSTPAID
          description: Payment type for the ancillary.
        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).
    HotelNightlyRate:
      title: HotelNightlyRate
      description: Contains nightly rate for the relevant hotel.
      properties:
        total:
          description: Nightly total rate.
          $ref: '#/components/schemas/Money'
        base:
          description: Nightly base rate.
          $ref: '#/components/schemas/Money'
        tax:
          description: Nightly tax rate.
          $ref: '#/components/schemas/Money'
    HotelOccupancy:
      type: object
      title: HotelOccupancy
      description: Occupancy information
      properties:
        numAdults:
          type: integer
          description: Number of adults in the hotel pnr
          example: 1
        numChildren:
          type: integer
          description: Number of children in the hotel pnr
          example: 1
        childAges:
          type: array
          items:
            type: integer
            description: Age of each child in the hotel pnr
            example: 10
        numInfants:
          type: integer
          description: Number of infants in the hotel pnr
          example: 1
    HotelPref:
      type: object
      title: HotelPref
      description: Travel preferences related to hotel.
      properties:
        hotelParentChains:
          type: array
          description: A list of hotel parent chains.
          items:
            $ref: '#/components/schemas/HotelChain'
        hotelBrands:
          type: array
          description: A list of hotel brands.
          items:
            $ref: '#/components/schemas/HotelBrand'
        hotelAmenityTypes:
          type: array
          description: A list of HotelAmenities.
          items:
            $ref: '#/components/schemas/HotelPrefAmenity'
        roomPreference:
          $ref: '#/components/schemas/RoomPreference'
        conditionalRates:
          type: array
          description: A list of conditional rates for rail.
          items:
            $ref: '#/components/schemas/ConditionalRate'
    HotelPrefAmenity:
      type: string
      description: Preferred hotel amenity.
      enum:
        - PARKING
        - FREE_PARKING
        - FREE_BREAKFAST
        - POOL
        - WIFI
        - FITNESS_CENTER
        - FAMILY_FRIENDLY
        - RECEPTION
        - SPA
        - RESTAURANT
        - BAR
        - TRANSPORTATION
        - PET_FRIENDLY
        - BUSINESS_CENTER
        - AIR_CONDITIONING
        - BEACH_ACCESS
        - LAUNDRY_SERVICES
        - ROOM_SERVICE
        - ACCESSIBLE
    HotelRateAssuranceMetadata:
      title: HotelRateAssuranceMetadata
      type: object
      description: Savings information from the rate assurance rebooking
      properties:
        selfReportedSavings:
          $ref: '#/components/schemas/SimpleMoney'
        actualSavings:
          $ref: '#/components/schemas/SimpleMoney'
    HotelRateType:
      type: string
      title: HotelRate Type
      enum:
        - PUBLISHED
        - CORPORATE
        - SPOTNANA
        - REGULAR
        - AAA
        - AARP
        - SENIOR_CITIZEN
        - GOVERNMENT
        - MILITARY
        - MEMBERSHIP
        - BEST_AVAILABLE_RATE
        - TMC
    HotelRoomAmenity:
      type: object
      title: HotelRoomAmenity
      description: Hotel Room amenities
      properties:
        additionalInfo:
          type: string
          description: Extra information about the room amenity
        complimentary:
          type: boolean
          description: Is amenity complimentary
          example: true
        type:
          type: string
          description: Room amenity type
          enum:
            - UNKNOWN
            - ADJOINING_ROOMS
            - AIR_CONDITIONING
            - ALARM_CLOCK
            - ALL_NEWS_CHANNEL
            - AM_FM_RADIO
            - BABY_LISTENING_DEVICE
            - BALCONY_LANAI_TERRACE
            - BARBEQUE_GRILLS
            - BATH_TUB_WITH_SPRAY_JETS
            - BATHROBE
            - BATHROOM_AMENITIES
            - BATHROOM_TELEPHONE
            - BATHTUB
            - BATHTUB_ONLY
            - BATHTUB_SHOWER_COMBINATION
            - BIDET
            - BOTTLED_WATER
            - CABLE_TELEVISION
            - COFFEE_TEA_MAKER
            - COLOR_TELEVISION
            - COMPUTER
            - CONNECTING_ROOMS
            - CONVERTERS_VOLTAGE_ADAPTORS
            - COPIER
            - CORDLESS_PHONE
            - CRIBS
            - DATA_PORT
            - DESK
            - DESK_WITH_LAMP
            - DINING_GUIDE
            - DIRECT_DIAL_PHONE_NUMBER
            - DISHWASHER
            - DOUBLE_BEDS
            - DUAL_VOLTAGE_OUTLET
            - ELECTRICAL_CURRENT_VOLTAGE
            - ERGONOMIC_CHAIR
            - EXTENDED_PHONE_CORD
            - FAX_MACHINE
            - FIRE_ALARM
            - FIRE_ALARM_WITH_LIGHT
            - FIREPLACE
            - FREE_TOLL_FREE_CALLS
            - FREE_CALLS
            - FREE_CREDIT_CARD_ACCESS_CALLS
            - FREE_LOCAL_CALLS
            - FREE_MOVIES_VIDEO
            - FULL_KITCHEN
            - GRAB_BARS_IN_BATHROOM
            - GRECIAN_TUB
            - HAIRDRYER
            - HIGH_SPEED_INTERNET_CONNECTION
            - INTERACTIVE_WEB_TV
            - INTERNATIONAL_DIRECT_DIALING
            - INTERNET_ACCESS
            - IRON
            - IRONING_BOARD
            - WHIRPOOL
            - KING_BED
            - KITCHEN
            - KITCHEN_SUPPLIES
            - KITCHENETTE
            - KNOCK_LIGHT
            - LAPTOP
            - LARGE_DESK
            - LARGE_WORK_AREA
            - LAUNDRY_BASKET_CLOTHES_HAMPER
            - LOFT
            - MICROWAVE
            - MINIBAR
            - MODEM
            - MODEM_JACK
            - MULTILINE_PHONE
            - NEWSPAPER
            - NONSMOKING
            - NOTEPADS
            - OFFICE_SUPPLIES
            - OVEN
            - PAY_PER_VIEW_MOVIES_ON_TV
            - PENS
            - PHONE_IN_BATHROOM
            - PLATES_AND_BOWLS
            - POTS_AND_PANS
            - PRAYER_MATS
            - PRINTER
            - PRIVATE_BATHROOM
            - QUEEN_BED
            - RECLINER
            - REFRIGERATOR
            - REFRIGERATOR_WITH_ICE_MAKER
            - REMOTE_CONTROL_TELEVISION
            - ROLLAWAY_BED
            - SAFE
            - SCANNER
            - SEPARATE_CLOSET
            - SEPARATE_MODEM_LINE_AVAILABLE
            - SHOE_POLISHER
            - SHOWER_ONLY
            - SILVERWARE_UTENSILS
            - SITTING_AREA
            - SMOKE_DETECTORS
            - SMOKING
            - SOFA_BED
            - SPEAKER_PHONE
            - STEREO
            - STOVE
            - TAPE_RECORDER
            - TELEPHONE
            - TELEPHONE_FOR_HEARING_IMPAIRED
            - TELEPHONES_WITH_MESSAGE_LIGHT
            - TOASTER_OVEN
            - TROUSER_PANT_PRESS
            - TURN_DOWN_SERVICE
            - TWIN_BED
            - VAULTED_CEILINGS
            - VCR_MOVIES
            - VCR_PLAYER
            - VIDEO_GAMES_AMENITY
            - VOICE_MAIL
            - WAKEUP_CALLS
            - WATER_CLOSET
            - WATER_PURIFICATION_SYSTEM
            - WET_BAR
            - WIRELESS_INTERNET_CONNECTION
            - WIRELESS_KEYBOARD
            - ADAPTOR_AVAILABLE_FOR_TELEPHONE_PC_USE
            - AIR_CONDITIONING_INDIVIDUALLY_CONTROLLED_IN_ROOM
            - BATHTUB_ANDWHIRLPOOL_SEPARATE
            - TELEPHONE_WITH_DATA_PORTS
            - CD_PLAYER
            - COMPLIMENTARY_LOCAL_CALLS_TIME_LIMIT
            - EXTRA_PERSON_CHARGE_FOR_ROLLAWAY_USE
            - DOWN_FEATHER_PILLOWS
            - DESK_WITH_ELECTRICAL_OUTLET
            - ESPN_AVAILABLE
            - FOAM_PILLOWS
            - HBO_AVAILABLE
            - HIGH_CEILINGS
            - MARBLE_BATHROOM
            - LIST_OF_MOVIE_CHANNELS_AVAILABLE
            - PETS_ALLOWED
            - OVERSIZED_BATHTUB
            - SHOWER
            - SINK_INROOM
            - SOUNDPROOFED_ROOM
            - STORAGE_SPACE
            - TABLES_AND_CHAIRS
            - TWOLINE_PHONE
            - WALKIN_CLOSET
            - WASHER_DRYER
            - WEIGHT_SCALE
            - WELCOME_GIFT
            - SPARE_ELECTRICAL_OUTLET_AVAILABLE_AT_DESK
            - NONREFUNDABLE_CHARGE_FOR_PETS
            - REFUNDABLE_DEPOSIT_FOR_PETS
            - SEPARATE_TUB_AND_SHOWER
            - ENTRANCE_TYPE_TO_GUEST_ROOM
            - CEILING_FAN
            - CNN_AVAILABLE
            - ELECTRICAL_ADAPTORS_AVAILABLE
            - BUFFET_BREAKFAST
            - ACCESSIBLE_ROOM
            - CLOSETS_IN_ROOM
            - DVD_PLAYER
            - MINIREFRIGERATOR
            - SEPARATE_LINE_BILLING_FOR_MULTILINE_PHONE
            - SELFCONTROLLED_HEATING_COOLING_SYSTEM
            - TOASTER
            - ANALOG_DATA_PORT
            - COLLECT_CALLS
            - INTERNATIONAL_CALLS
            - CARRIER_ACCESS
            - INTERSTATE_CALLS
            - INTRASTATE_CALLS
            - LOCAL_CALLS
            - LONG_DISTANCE_CALLS
            - OPERATORASSISTED_CALLS
            - CREDIT_CARD_ACCESS_CALLS
            - CALLING_CARD_CALLS
            - TOLL_FREE_CALLS
            - UNIVERSAL_AC_DC_ADAPTORS
            - BATHTUB_SEAT
            - CANOPY_POSTER_BED
            - CUPS_GLASSWARE
            - ENTERTAINMENT_CENTER
            - FAMILY_OVERSIZED_ROOM
            - HYPOALLERGENIC_BED
            - HYPOALLERGENIC_PILLOWS
            - LAMP
            - MEAL_INCLUDED_BREAKFAST
            - MEAL_INCLUDED_CONTINENTAL_BREAKFAST
            - MEAL_INCLUDED_DINNER
            - MEAL_INCLUDED_LUNCH
            - SHARED_BATHROOM
            - TELEPHONE_TDD_TEXTPHONE
            - WATER_BED
            - EXTRA_ADULT_CHARGE
            - EXTRA_CHILD_CHARGE
            - EXTRA_CHILD_CHARGE_FOR_ROLLAWAY_USE
            - MEAL_INCLUDED_FULL_AMERICAN_BREAKFAST
            - FUTON
            - MURPHY_BED
            - TATAMI_MATS
            - SINGLE_BED
            - ANNEX_ROOM
            - FREE_NEWSPAPER
            - HONEYMOON_SUITES
            - COMPLIMENTARY_HIGH_SPEED_INTERNET_IN_ROOM
            - MAID_SERVICE
            - PC_HOOKUP_IN_ROOM
            - SATELLITE_TELEVISION
            - VIP_ROOMS
            - CELL_PHONE_RECHARGER
            - DVR_PLAYER
            - IPOD_DOCKING_STATION
            - MEDIA_CENTER
            - PLUG_AND_PLAY_PANEL
            - SATELLITE_RADIO
            - VIDEO_ON_DEMAND
            - EXTERIOR_CORRIDORS
            - GULF_VIEW
            - ACCESSIBLE_ROOM_AMENITY
            - INTERIOR_CORRIDORS
            - MOUNTAIN_VIEW
            - OCEAN_VIEW
            - HIGH_SPEED_INTERNET_ACCESS_FEE
            - HIGH_SPEED_WIRELESS
            - PREMIUM_MOVIE_CHANNELS
            - SLIPPERS
            - FIRST_NIGHTERS_KIT
            - CHAIR_PROVIDED_WITH_DESK
            - PILLOW_TOP_MATTRESS
            - FEATHER_BED
            - DUVET
            - LUXURY_LINEN_TYPE
            - INTERNATIONAL_CHANNELS
            - PANTRY
            - DISHCLEANING_SUPPLIES
            - DOUBLE_VANITY
            - LIGHTED_MAKEUP_MIRROR
            - UPGRADED_BATHROOM_AMENITIES
            - VCR_PLAYER_AVAILABLE_AT_FRONT_DESK
            - INSTANT_HOT_WATER
            - OUTDOOR_SPACE
            - HINOKI_TUB
            - PRIVATE_POOL
            - HIGH_DEFINITION_HD_FLAT_PANEL_TELEVISION_32_INCHES_OR_GREATER
            - ROOM_WINDOWS_OPEN
            - BEDDING_TYPE_UNKNOWN_OR_UNSPECIFIED
            - FULL_BED
            - ROUND_BED
            - TV
            - CHILD_ROLLAWAY
            - DVD_PLAYER_AVAILABLE_AT_FRONT_DESK
            - VIDEO_GAME_PLAYER
            - VIDEO_GAME_PLAYER_AVAILABLE_AT_FRONT_DESK
            - DINING_ROOM_SEATS
            - FULL_SIZE_MIRROR
            - MOBILE_CELLULAR_PHONES
            - MOVIES
            - MULTIPLE_CLOSETS
            - PLATES_GLASSWARE
            - SAFE_LARGE_ENOUGH_TO_ACCOMMODATE_A_LAPTOP
            - BED_LINEN_THREAD_COUNT
            - BLACKOUT_CURTAIN
            - BLURAY_PLAYER
            - DEVICE_WITH_MP3
            - NO_ADULT_CHANNELS_OR_ADULT_CHANNEL_LOCK
            - NONALLERGENIC_ROOM
            - PILLOW_TYPE
            - SEATING_AREA_WITH_SOFA_CHAIR
            - SEPARATE_TOILET_AREA
            - WEB_ENABLED
            - WIDESCREEN_TV
            - OTHER_DATA_CONNECTION
            - PHONELINE_BILLED_SEPARATELY
            - SEPARATE_TUB_OR_SHOWER
            - VIDEO_GAMES
            - ROOF_VENTILATOR
            - CHILDRENS_PLAYPEN
            - PLUNGE_POOL
            - DVD_MOVIES
            - AIR_FILTRATION
          example: WEB_ENABLED
    HotelRoomMeal:
      type: object
      title: HotelRoomMeal
      description: Meal details for the room.
      required:
        - mealPlan
      properties:
        mealsIncluded:
          type: array
          items:
            $ref: '#/components/schemas/HotelRoomMealsIncluded'
        mealPlan:
          $ref: '#/components/schemas/HotelRoomMealType'
          description: Meal type added with the room booked.
    HotelRoomMealType:
      type: string
      description: Type of meal plan
      enum:
        - UNKNOWN
        - ALL_INCLUSIVE
        - AMERICAN
        - BED_AND_BREAKFAST
        - BUFFET_BREAKFAST
        - CARIBBEAN_BREAKFAST
        - CONTINENTAL_BREAKFAST
        - ENGLISH_BREAKFAST
        - EUROPEAN_PLAN
        - FAMILY_PLAN
        - FULL_BOARD
        - FULL_BREAKFAST
        - HALF_BOARD_MODIFIED_AMERICAN_PLAN
        - AS_BROCHURED
        - ROOM_ONLY
        - SELF_CATERING
        - BERMUDA
        - DINNER_BED_AND_BREAKFAST_PLAN
        - FAMILY_AMERICAN
        - BREAKFAST_MEAL_PLAN
        - MODIFIED
        - LUNCH_MEAL_PLAN
        - DINNER_MEAL_PLAN
        - BREAKFAST_AND_LUNCH
      example: ENGLISH_BREAKFAST
    HotelRoomMealsIncluded:
      type: string
      description: Meals included, (Breakfast/Lunch/Dinner)
      enum:
        - BREAKFAST
        - LUNCH
        - DINNER
      example: BREAKFAST
    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, 

        known traveler number, redress number and national document.
      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
    InternalTaskType:
      title: InternalTaskType
      description: Type of task
      type: string
      enum:
        - APPROVAL_DECLINED
        - APPROVAL_TIMEOUT
        - HARD_APPROVAL_INITIATED
        - PNR_VOID_FAILURE
        - UNHANDLED_APPROVAL_PENDING
        - UNHANDLED_APPROVAL_ITINERARY_CHANGE
        - UNHANDLED_APPROVAL_VOID_TOO_CLOSE
        - UNHANDLED_APPROVAL_APPROVER_INVALID
        - NEW_SEAT1A_BOOKING
        - SEAT1A_REMINDER
        - PNR_CANCELLATION_REQUIRED
        - PNR_CANCELLATION_FAILURE
        - UNUSED_CREDIT
        - EXCHANGE_FAILURE
        - AGENT_CREATED_TASK
        - TRAVELER_LASTNAME_MISSPELLED
        - VENDOR_CONFIRMATION_MISSING
        - DUPLICATE_TICKETS
        - QC_CHECK_FAILURE
        - PNR_NOT_TICKETED
        - PNR_NOT_FINALIZED
        - QC_CHECK_ERROR
        - DUPLICATE_BOOKING
        - EXCHANGED_SEAT1A_BOOKING
        - COMMISSION_PROCESSING_ERROR
        - PRE_TICKETING_CHECK_FAILURE
        - TICKETING_CHECK_FAILURE
        - POST_TICKETING_CHECK_FAILURE
        - PNR_IN_HOUSE_TICKETING_UNABLE_TO_ISSUE_TICKET
        - FLIGHT_LAYOVER_CHECK
        - RED_EYE_FLIGHT
        - FLIGHT_METROPOLITAN_CHECK
        - FRAUD_COUNTRY_DETECTED
        - FRAUD_AIRPORT_DETECTED
        - FARE_THRESHOLD_LIMIT_EXCEEDED
        - HOTEL_METROPOLITAN_CHECK
        - TIME_CONTINUITY_CHECK
        - IN_HOUSE_UNUSED_CREDIT_CREATION_FAILURE
        - SCHEDULE_CHANGE_MANUAL_REVIEW
        - SCHEDULE_CHANGE_MANUAL_REVIEW_TRAVEL_SOON
        - SCHEDULE_CHANGE_AUTO_ACCEPT_FAILED
        - COMMISSION_NOT_PRESENT_IN_EXCHANGE_PNR
        - VALIDATING_CARRIER_ERROR
        - PAYMENT_CARD_NOT_ACCEPTED
        - FRAUD_CITY_IN_PNR
        - MISSING_SECURE_FLIGHT_INFO
        - FRAUD_AIRPORT_IN_PNR
        - DATE_OF_BIRTH_MISSING
        - IRD_FARE_THRESHOLD_LIMIT_EXCEEDED
        - BLOCKED_AIRLINES_IN_PNR
        - IRD_REVIEW_MULTI_SEGMENT
        - FOP_RULE_CHECK
        - TEST_REMARK_REQUEST
        - PNR_QUEUE_PLACEMENT_ERROR
        - PNR_SYNC_FAILURE
        - MCO_RESIDUAL
        - PAYMENT_FAILED
        - CAR_METROPOLITAN_CHECK
        - CAR_TIME_CONTINUITY_CHECK
        - SSR_OSI_VALIDATION_CHECK
        - MCO_REDEMPTION_QC_CHECK
        - UNUSED_CREDIT_NAME_CHANGE_REDEMPTION_QC_CHECK
        - GDS_EXCHANGE_CHECK
        - HX_STATUS
        - HX_AUTOMATION
        - FARE_THRESHOLD_ON_FLOW_CHECK
        - BSP_EXCHANGE_EMD_QC_CHECK
        - HOTEL_CANCELLATION_QC_CHECK
        - IN_HOUSE_TICKETING_UNABLE_TO_ISSUE_TICKET_PAYMENT_FAILED
        - HX_MANUAL_REVIEW
        - VOUCHER_ACTIVATION_FAILED
        - CONTACT_INFO_UPDATE_FAILED
        - UNCONFIRMED_SEGMENT_MANUAL_REVIEW
        - IN_HOUSE_TICKETING_UNABLE_TO_ISSUE_INVALID_PLATING_CARRIER
        - IN_HOUSE_TICKETING_UNABLE_TO_ISSUE_ANCILLARY_BOOKING_ERROR
        - >-
          IN_HOUSE_TICKETING_UNABLE_TO_ISSUE_ANCILLARY_BOOKING_ERROR_DUE_TO_INTERLINE_CARRIERS
        - SCHEDULE_CHANGE_TRAVELER_ACTION_PENDING
        - RATE_CODE_UPDATE_FAILED
        - IN_HOUSE_TICKETING_UNABLE_TO_ISSUE_TICKET_UNAUTHORIZED_CREDIT_CARD
        - IN_HOUSE_TICKETING_UNABLE_TO_ISSUE_TICKET_CREDIT_CARD_DECLINED
        - IN_HOUSE_TICKETING_UNABLE_TO_ISSUE_TICKET_MISC_PAYMENT_ERRORS
        - ACCOUNTING_LINE_PROCESSING_ERROR
        - IN_HOUSE_TICKETING_UNABLE_TO_MODIFY_TICKET_PQ_PQR
        - RESIDUAL_EMD_REFUND_REQUIRED
      x-enum-varnames:
        - APPROVAL_DECLINED
        - APPROVAL_TIMEOUT
        - HARD_APPROVAL_INITIATED
        - PNR_VOID_FAILURE
        - UNHANDLED_APPROVAL_PENDING
        - UNHANDLED_APPROVAL_ITINERARY_CHANGE
        - UNHANDLED_APPROVAL_VOID_TOO_CLOSE
        - UNHANDLED_APPROVAL_APPROVER_INVALID
        - NEW_SEAT1A_BOOKING
        - SEAT1A_REMINDER
        - PNR_CANCELLATION_REQUIRED
        - PNR_CANCELLATION_FAILURE
        - UNUSED_CREDIT
        - EXCHANGE_FAILURE
        - AGENT_CREATED_TASK
        - TRAVELER_LASTNAME_MISSPELLED
        - VENDOR_CONFIRMATION_MISSING
        - DUPLICATE_TICKETS
        - QC_CHECK_FAILURE
        - PNR_NOT_TICKETED
        - PNR_NOT_FINALIZED
        - QC_CHECK_ERROR
        - DUPLICATE_BOOKING
        - EXCHANGED_SEAT1A_BOOKING
        - COMMISSION_PROCESSING_ERROR
        - PRE_TICKETING_CHECK_FAILURE
        - TICKETING_CHECK_FAILURE
        - POST_TICKETING_CHECK_FAILURE
        - PNR_IN_HOUSE_TICKETING_UNABLE_TO_ISSUE_TICKET
        - FLIGHT_LAYOVER_CHECK
        - RED_EYE_FLIGHT
        - FLIGHT_METROPOLITAN_CHECK
        - FRAUD_COUNTRY_DETECTED
        - FRAUD_AIRPORT_DETECTED
        - FARE_THRESHOLD_LIMIT_EXCEEDED
        - HOTEL_METROPOLITAN_CHECK
        - TIME_CONTINUITY_CHECK
        - IN_HOUSE_UNUSED_CREDIT_CREATION_FAILURE
        - SCHEDULE_CHANGE_MANUAL_REVIEW
        - SCHEDULE_CHANGE_MANUAL_REVIEW_TRAVEL_SOON
        - SCHEDULE_CHANGE_AUTO_ACCEPT_FAILED
        - COMMISSION_NOT_PRESENT_IN_EXCHANGE_PNR
        - VALIDATING_CARRIER_ERROR
        - PAYMENT_CARD_NOT_ACCEPTED
        - FRAUD_CITY_IN_PNR
        - MISSING_SECURE_FLIGHT_INFO
        - FRAUD_AIRPORT_IN_PNR
        - DATE_OF_BIRTH_MISSING
        - IRD_FARE_THRESHOLD_LIMIT_EXCEEDED
        - BLOCKED_AIRLINES_IN_PNR
        - IRD_REVIEW_MULTI_SEGMENT
        - FOP_RULE_CHECK
        - TEST_REMARK_REQUEST
        - PNR_QUEUE_PLACEMENT_ERROR
        - PNR_SYNC_FAILURE
        - MCO_RESIDUAL
        - PAYMENT_FAILED
        - CAR_METROPOLITAN_CHECK
        - CAR_TIME_CONTINUITY_CHECK
        - SSR_OSI_VALIDATION_CHECK
        - MCO_REDEMPTION_QC_CHECK
        - UNUSED_CREDIT_NAME_CHANGE_REDEMPTION_QC_CHECK
        - GDS_EXCHANGE_CHECK
        - HX_STATUS
        - HX_AUTOMATION
        - FARE_THRESHOLD_ON_FLOW_CHECK
        - BSP_EXCHANGE_EMD_QC_CHECK
        - HOTEL_CANCELLATION_QC_CHECK
        - IN_HOUSE_TICKETING_UNABLE_TO_ISSUE_TICKET_PAYMENT_FAILED
        - HX_MANUAL_REVIEW
        - VOUCHER_ACTIVATION_FAILED
        - CONTACT_INFO_UPDATE_FAILED
        - UNCONFIRMED_SEGMENT_MANUAL_REVIEW
        - IN_HOUSE_TICKETING_UNABLE_TO_ISSUE_INVALID_PLATING_CARRIER
        - IN_HOUSE_TICKETING_UNABLE_TO_ISSUE_ANCILLARY_BOOKING_ERROR
        - >-
          IN_HOUSE_TICKETING_UNABLE_TO_ISSUE_ANCILLARY_BOOKING_ERROR_DUE_TO_INTERLINE_CARRIERS
        - SCHEDULE_CHANGE_TRAVELER_ACTION_PENDING
        - RATE_CODE_UPDATE_FAILED
        - IN_HOUSE_TICKETING_UNABLE_TO_ISSUE_TICKET_UNAUTHORIZED_CREDIT_CARD
        - IN_HOUSE_TICKETING_UNABLE_TO_ISSUE_TICKET_CREDIT_CARD_DECLINED
        - IN_HOUSE_TICKETING_UNABLE_TO_ISSUE_TICKET_MISC_PAYMENT_ERRORS
        - ACCOUNTING_LINE_PROCESSING_ERROR
        - IN_HOUSE_TICKETING_UNABLE_TO_MODIFY_TICKET_PQ_PQR
        - RESIDUAL_EMD_REFUND_REQUIRED
      example: NEW_SEAT1A_BOOKING
    InviteEmailConfig:
      title: InviteEmailConfig
      description: Configuration for event invite/reminder emails
      type: object
      properties:
        emailExcludeCoordinatorInfo:
          type: boolean
          description: >-
            Whether to exclude coordinator information in emails sent to
            travelers.
          default: false
          example: true
    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.
    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)
    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

            trips page
          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'
    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'
    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
    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'
    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
    MaskAmenity:
      type: object
      title: MaskAmenity
      description: Properties associated with the mask amenity.
      properties:
        displayText:
          type: string
          description: The basic text displayed for mask amenity.
          example: Face covering required
        maskDescription:
          type: string
          description: A full description of the mask amenity.
          example: >-
            All passengers are required to wear a face covering throughout their
            journey
        maskAttrDescription:
          type: string
          example: 'yes'
    MaskAmenityWrapper:
      type: object
      title: MaskAmenityWrapper
      properties:
        maskAmenity:
          $ref: '#/components/schemas/MaskAmenity'
    McoIssuanceEligibility:
      title: McoIssuanceEligibility
      type: string
      description: >-
        Type of residue for cases where the ticket is exchanged to a lower
        amount
      enum:
        - ELIGIBLE
        - NOT_ELIGIBLE
        - MAYBE_ELIGIBLE
    MealPref:
      type: object
      title: MealPref
      description: Meal preferences.
      properties:
        exclMealPrefs:
          type: array
          items:
            $ref: '#/components/schemas/MealType'
        inclMealPrefs:
          type: array
          items:
            $ref: '#/components/schemas/MealType'
        specialMealDescription:
          type: string
          example: Veg only meal
    MealType:
      type: string
      title: MealType
      description: Type of the meal
      enum:
        - UNKNOWN_MEAL
        - AVML
        - BBML
        - BLML
        - CHML
        - DBML
        - FPML
        - GFML
        - HFML
        - HNML
        - KSML
        - LCML
        - LFML
        - LPML
        - LSML
        - MOML
        - NLML
        - NSML
        - ORML
        - PFML
        - RVML
        - SFML
        - SPML
        - VGML
        - VJML
        - VLML
        - VOML
      example: VGML
    MembershipInfo:
      type: object
      description: User's loyalty program membership details.
      properties:
        membershipInfos:
          type: array
          items:
            $ref: '#/components/schemas/LoyaltyInfo'
        isLoyaltyBlocked:
          type: boolean
          description: >-
            Whether user is blocked to use loyalty programs. This is a read only
            field.
          example: false
    MiscInfo:
      title: MiscInfo
      description: Misc info
      required:
        - description
        - endDateTime
        - rate
        - startDateTime
        - vendorConfirmationNumber
      properties:
        description:
          type: string
          description: Description of the miscellaneous segment.
          example: Any text info
        endDateTime:
          $ref: '#/components/schemas/DateTimeLocal'
          description: End date and time.
        pnrStatus:
          $ref: '#/components/schemas/PnrStatus'
          description: Pnr status.
        rate:
          $ref: '#/components/schemas/Cost'
          description: Miscellaneous segment rate.
        startDateTime:
          $ref: '#/components/schemas/DateTimeLocal'
          description: Start date and time.
        vendorConfirmationNumber:
          type: string
          description: Miscellaneous segment confirmation number.
          example: '2108528068'
        sortingPriority:
          type: integer
          format: int32
          description: Sorting priority of this pnr
          example: 10
        sourceStatus:
          type: string
          description: Source status code of the pnr
    MiscItem:
      type: object
      title: MiscItem
      description: This describes the Miscellaneous Item related to a particular itemGroup.
      required:
        - itemType
      properties:
        itemType:
          type: string
        description:
          type: string
        startDateTime:
          description: Start date time of the booking.
          $ref: '#/components/schemas/DateTimeLocal'
        endDateTime:
          description: End date time of the booking.
          $ref: '#/components/schemas/DateTimeLocal'
    Money:
      type: object
      title: Money
      description: >
        Money object containing details such as the amount, the currency code,
        and the converted amount.
      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).

            For example, if the call requests that money be sent in a specified
            currency (because the frontend requested

            the backend to send money in the user's preferred currency).
          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'
    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.
    NonBillableReason:
      type: object
      title: NonBillableReason
      description: Reason for non-billable agent contact.
      required:
        - reasonCode
      properties:
        reasonCode:
          $ref: '#/components/schemas/NonBillableReasonCode'
          description: Reason code for non-billable agent contact.
          example: MINOR_REQUEST
        notes:
          type: string
          description: Notes for non-billable agent contact.
          example: Waived off
    NonBillableReasonCode:
      type: string
      title: NonBillableReasonCode
      description: Reason code for non-billable agent contact.
      enum:
        - PRODUCT_ISSUE
        - ALREADY_CHARGED
        - CUSTOMER_GOODWILL
        - MINOR_REQUEST
        - NON_BILLABLE_REASON_OTHER
    NotificationEmailPreference:
      type: object
      title: NotificationEmailPreference
      description: Email preference for notification type.
      properties:
        enabled:
          type: boolean
          description: Whether the email preference is enabled or not.
          default: true
        ccEmails:
          type: array
          description: List of cc emails for the email preference.
          items:
            type: string
            format: email
    NotificationPreferencePerType:
      type: object
      title: NotificationPreferencePerType
      description: Notification preference for a notification type.
      properties:
        notificationType:
          $ref: '#/components/schemas/NotificationType'
        emailPreference:
          $ref: '#/components/schemas/NotificationEmailPreference'
    NotificationPreferences:
      type: object
      title: NotificationPreferences
      description: Notification preferences of a user for different notification types.
      properties:
        preferences:
          type: array
          items:
            $ref: '#/components/schemas/NotificationPreferencePerType'
    NotificationType:
      type: string
      enum:
        - FLIGHT_NOTIFICATION
        - BOOKING_NOTIFICATION
    NumStopsPref:
      type: object
      title: NumStopsPref
      description: Preferred number of stops.
      required:
        - numOfStops
      properties:
        numOfStops:
          type: integer
          format: int64
          example: 34
    Office:
      type: object
      title: Office
      description: Office details.
      required:
        - id
        - name
      properties:
        address:
          $ref: '#/components/schemas/PostalAddress'
        id:
          $ref: '#/components/schemas/OfficeId'
        name:
          type: string
          example: Office
        latlng:
          $ref: '#/components/schemas/Latlng'
        taxId:
          type: string
          example: '133232'
    OfficeId:
      type: object
      title: OfficeId
      description: The unique ID of the office.
      required:
        - id
      properties:
        id:
          type: string
          description: The value of the unique ID for the office.
          example: 531ccbce-8413-4fe9-b233-a324dfbe7421
    OfficeIdListWrapper:
      type: object
      title: OfficeIdListWrapper
      properties:
        officeIdList:
          type: array
          description: A list of office IDs.
          items:
            $ref: '#/components/schemas/OfficeId'
    OfficeIdWrapper:
      type: object
      title: OfficeIdWrapper
      properties:
        officeId:
          $ref: '#/components/schemas/OfficeId'
    OperationSummary:
      type: object
      description: Operation summary for webhook payload
      properties:
        ticketsIssued:
          type: array
          items:
            type: string
          description: The tickets issued
        ticketsVoided:
          type: array
          items:
            type: string
          description: The tickets voided
        ticketsRefunded:
          type: array
          items:
            type: string
          description: The tickets refunded
    Option:
      type: object
      title: Option
      description: Answer option for a question
      required:
        - displayCode
      properties:
        displayCode:
          type: string
          description: The code which is sent in answer response.
        displayValue:
          type: string
          description: The text to be displayed to the user beside this option.
    OptionInfo:
      type: object
      title: OptionInfo
      description: Options related information for the question.
      required:
        - source
      properties:
        source:
          $ref: '#/components/schemas/OptionSource'
          default: MANUAL
        sourceMetadata:
          $ref: '#/components/schemas/OptionSourceMetadata'
        totalNumOptions:
          type: integer
          description: Total number of options
        options:
          type: array
          description: >
            Available options for the question. This will contain only max 10
            options if only 

            summary is requested.
          items:
            $ref: '#/components/schemas/Option'
    OptionSource:
      type: string
      enum:
        - MANUAL
        - COMPANY_CONFIG
      description: Option source
      example: MANUAL
    OptionSourceMetadata:
      type: object
      title: OptionSourceMetadata
      description: Metadata information for the option source.
      oneOf:
        - $ref: '#/components/schemas/CompanyConfigSourceWrapper'
    OrganizationAgencyId:
      type: object
      title: OrganizationAgencyId
      description: Agency id for the organization.
      deprecated: true
      x-sunset: '2026-07-01'
      required:
        - id
      properties:
        id:
          type: string
    OrganizationBasicInfo:
      type: object
      title: OrganizationBasicInfo
      description: Basic information about the organization
      required:
        - orgName
      properties:
        orgId:
          type: string
          example: 4974a66b-7493-4f41-908c-58ba81093947
        orgName:
          type: string
          example: Spotnana
        emailDomains:
          type: array
          description: List of the email domains
          items:
            type: string
            description: Email domain
    OrganizationId:
      type: object
      title: OrganizationId
      description: Organization id for traveler.
      required:
        - id
      properties:
        id:
          type: string
    OriginalTicketDetails:
      type: object
      title: OriginalTicketDetails
      description: Original ticket details in case of an exchange ticket.
      required:
        - ticketNumber
      properties:
        ticketNumber:
          type: string
          description: Ticket number of the original ticket.
          example: '1234567890'
        amount:
          $ref: '#/components/schemas/FareAmount'
          description: Face value of the original ticket.
        taxBreakdown:
          $ref: '#/components/schemas/PnrTaxBreakdown'
          description: Tax breakdown of the original ticket.
        conjunctionTicketSuffix:
          type: string
          description: Conjunction ticket suffix.
          example: A
        cogsAmount:
          $ref: '#/components/schemas/FareAmount'
          description: The cost amount of original ticket
        cogsRefund:
          $ref: '#/components/schemas/FareAmount'
          description: COGS refund in original ticket as part of this exchange
        ctcRefund:
          $ref: '#/components/schemas/FareAmount'
          description: CTC refund in original ticket as part of this exchange
        fop:
          description: Form of payment
          $ref: '#/components/schemas/FormOfPayment'
    OtherAncillaryFare:
      type: object
      title: OtherAncillaryFare
      description: Other ancillary fare info
      required:
        - type
        - totalFare
      properties:
        type:
          $ref: '#/components/schemas/AncillaryType'
        totalFare:
          $ref: '#/components/schemas/FareAmount'
          description: Total fare for this ancillary
    OtherFeeInfo:
      type: object
      title: OtherFeeInfo
      description: Other Fee Info
      required:
        - bookingFeeType
        - otherFeeType
      properties:
        bookingFeeType:
          type: string
          description: Type of the booking fee
          example: OTHER_FEE
        calculatedAmount:
          $ref: '#/components/schemas/Money'
        chargeProcessorInfo:
          $ref: '#/components/schemas/ChargeProcessorInfo'
        otherFeeType:
          $ref: '#/components/schemas/OtherFeeType'
        feeName:
          type: string
          description: Name of the fee to be charged.
          example: TMC Standard Fee
    OtherFeeType:
      type: string
      title: OtherFeeType
      description: Other fee type
      enum:
        - MERCHANT_FEE
      example: MERCHANT_FEE
    OtherServiceInformationDetail:
      title: OtherServiceInformationDetail
      description: Other Service Information (OSI) details.
      properties:
        customText:
          type: string
          description: The special instruction is given in the form of text.
          example: Wheelchair access
        flightIndexes:
          type: array
          description: >-
            Index of flight mapping with the OSI, starts with 0. One OSI belong
            to one airline, so all the segments of an airline will have the same
            OSI.
          items:
            $ref: '#/components/schemas/FlightAndLegIndex'
    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
    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'
    PayloadMetadata:
      type: object
      description: Metadata about the webhook payload processing
      properties:
        piiMaskingStatus:
          type: string
          description: >
            PII masking status for the payload. APPLIED if PII fields were
            masked, PARTIAL if masking encountered an error and some fields may
            be unmasked. Absent when no masking was requested.
          enum:
            - APPLIED
            - PARTIAL
    Payment:
      title: Payment
      description: >
        This will contain the total fare of goods along with other charges like
        service fee. The price

        break down of goods should be added in PNR details, like airPnr
      type: object
      required:
        - travelerIndices
        - paymentType
      properties:
        travelerIndices:
          type: array
          description: The list of traveler indices on which this payment applies.
          items:
            type: integer
            format: int32
          minItems: 1
          example:
            - 0
            - 1
        userIds:
          type: array
          description: The list of traveler user IDs on which this payment applies.
          items:
            $ref: '#/components/schemas/UserId'
        amount:
          description: Total amount
          $ref: '#/components/schemas/FareAmount'
        fop:
          $ref: '#/components/schemas/FormOfPayment'
        paymentReference:
          type: string
          description: Reference number for original payment made for this service
          example: HAH2618716871
        paymentType:
          type: string
          description: Service for which this payment is made
          enum:
            - UNKNOWN
            - FLIGHTS
            - SERVICE_FEE
            - MISCELLANEOUS
            - HOTELS
            - CARS
            - RAILS
            - LIMO
            - MISC
          example: FLIGHTS
        paymentThirdParty:
          type: string
          description: Third party who is processing the payment
          enum:
            - UNKNOWN_PARTY
            - STRIPE
            - TFPAY
            - TRAINLINE
            - BREX
            - OUTSIDE_OBT
            - RAZORPAY
          example: STRIPE
        paymentId:
          type: string
          description: The payment id for this transaction
        paymentGateway:
          type: string
          description: Third party payment gateway used to process the payment
          enum:
            - PAYMENT_GATEWAY_UNKNOWN
            - STRIPE
            - BREX
          example: STRIPE
        isRefunded:
          type: boolean
          description: Whether the payment is refunded to the customer
          example: false
        selectedPaymentSource:
          $ref: '#/components/schemas/SelectedPaymentSource'
        networkTransactionId:
          type: string
          description: >-
            Network transaction id provided by the card network. Applicable only
            for cards.
          example: '721107212171711'
        tmcGatewayInfo:
          $ref: '#/components/schemas/TmcGatewayInfo'
    PaymentData:
      type: object
      title: PaymentData
      description: Payment related data for the given transaction
      properties:
        isRefunded:
          type: boolean
          description: If the relevant amount was refunded.
          example: true
        amount:
          description: Amount relating to this payment method
          $ref: '#/components/schemas/Money'
        fop:
          description: fop used for this payment amount
          $ref: '#/components/schemas/FormOfPayment'
        isGuarantee:
          type: boolean
          description: If the booking can be reserved now and paid later on site.
          example: true
        transactionStatus:
          description: Status of the service fee transaction.
          $ref: '#/components/schemas/TransactionStatus'
        balanceDue:
          description: Balance amount due for this payment method.
          $ref: '#/components/schemas/Money'
    PaymentInfo:
      type: object
      title: PaymentInfo
      description: Payment information.
      required:
        - card
      properties:
        applicableTo:
          type: array
          items:
            type: string
            enum:
              - UNKNOWN_APPLICABLE_TO
              - AIR
              - HOTEL
              - RAIL
              - CAR
              - SERVICE_FEE
            example: HOTEL
        card:
          $ref: '#/components/schemas/Card'
        accessType:
          $ref: '#/components/schemas/CreditCardAccessType'
        access:
          $ref: '#/components/schemas/CreditCardAccess'
    PaymentMetadata:
      title: PaymentMetadata
      description: Payment metadata related to form of payment
      type: object
      properties:
        customPaymentMethodMetadata:
          type: object
          description: Metadata related to custom payment method
          properties:
            brexBudgetMetadata:
              type: object
              description: Metadata for Brex Budget
              properties:
                budgetName:
                  type: string
                  description: Name of the budget
                  example: Travel budget
                paidByPersonalCard:
                  type: boolean
                  description: Whether it was paid by budget card or personal card
                  example: false
            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
    PaymentSourceType:
      type: string
      description: Type of Payment Source
      enum:
        - CARD
        - VIRTUAL_CARD
        - REWARDS_PROGRAM
        - DELAYED_INVOICING
        - CUSTOM_PAYMENT_METHOD
        - VENDOR_PROGRAM_PAYMENT
        - UNUSED_CREDIT
        - CASH
    PaymentStatus:
      type: string
      title: PaymentStatus
      description: Payment status.
      enum:
        - SUCCESS
        - DELAYED_INVOICE
        - MANUAL
        - NO_CHARGE
        - WAIVED_OFF
    PaymentTransaction:
      type: object
      title: PaymentTransaction
      description: Payment Transaction
      properties:
        gatewayIdentifier:
          description: Gateway Identifier
          $ref: '#/components/schemas/GatewayIdentifier'
        paymentReference:
          type: string
          description: payment reference
        networkTransactionId:
          type: string
          description: Network Transaction Id
        gatewayInfo:
          $ref: '#/components/schemas/GatewayInfo'
        failureReason:
          $ref: '#/components/schemas/FailureReason'
    PaymentTransactionInfo:
      title: PaymentTransactionInfo
      type: object
      description: Payment transaction information
      properties:
        paymentReference:
          type: string
          description: Payment transaction reference
          example: pi_2PAlaAIE$aaaaAaA0bLqk9AI
        networkTransactionId:
          type: string
          description: >-
            Network transaction id provided by the card network. Applicable only
            for cards.
          example: '721107212171711'
        gatewayInfo:
          $ref: '#/components/schemas/GatewayInfo'
        failureReason:
          $ref: '#/components/schemas/FailureReason'
        gatewayId:
          type: string
          description: GatewayId for related gatewayInfo.
          example: demo-us:1
    PercentageWrapper:
      type: object
      title: PercentageWrapper
      properties:
        percentage:
          type: number
          format: double
    Persona:
      type: string
      title: Persona
      description: Persona of the user
      enum:
        - UNKNOWN_PERSONA
        - EMPLOYEE
        - GUEST
        - PERSONAL
        - RELATIVE
        - ADHOC
      example: EMPLOYEE
    PersonaListWrapper:
      type: object
      title: PersonaListWrapper
      properties:
        personaList:
          type: array
          items:
            $ref: '#/components/schemas/Persona'
    PersonaWrapper:
      type: object
      title: PersonaWrapper
      properties:
        persona:
          $ref: '#/components/schemas/Persona'
    PhoneNumber:
      type: object
      title: PhoneNumber
      description: Properly formatted phone number.
      properties:
        countryCode:
          type: integer
          format: int32
          description: two digit country code
          example: 91
        countryCodeSource:
          type: string
          enum:
            - UNSPECIFIED
            - FROM_NUMBER_WITH_PLUS_SIGN
            - FROM_NUMBER_WITH_IDD
            - FROM_NUMBER_WITHOUT_PLUS_SIGN
            - FROM_DEFAULT_COUNTRY
          example: FROM_NUMBER_WITH_PLUS_SIGN
        extension:
          description: phone number extension
          type: string
          example: '222'
        isoCountryCode:
          description: ISO alpha-2 code
          type: string
          example: IN
        italianLeadingZero:
          type: boolean
          default: false
          example: true
        nationalNumber:
          type: integer
          format: int64
          example: 8150
        numberOfLeadingZeros:
          type: integer
          format: int32
          default: 0
          example: 1
        preferredDomesticCarrierCode:
          type: string
          example: '7'
        rawInput:
          type: string
          example: '77777'
        type:
          type: string
          enum:
            - UNKNOWN_TYPE
            - MOBILE
            - LANDLINE
          example: MOBILE
    PnrApproval:
      type: object
      x-ignore-naming-case: true
      properties:
        event_type:
          type: string
          description: PNR_APPROVAL
          example: PNR_APPROVAL
        operationSummary:
          $ref: '#/components/schemas/OperationSummary'
        operation:
          $ref: '#/components/schemas/PnrApprovalOperationType'
        payload:
          $ref: '#/components/schemas/PnrApprovalEventPayload'
        timestamp:
          type: string
          description: Timestamp when the event was published
        audience:
          $ref: '#/components/schemas/WebhookAudience'
        payloadMetadata:
          $ref: '#/components/schemas/PayloadMetadata'
    PnrApprovalEventPayload:
      type: object
      properties:
        pnrId:
          type: string
          description: PNR ID for the approval event
        tripId:
          type: string
          description: Trip ID for the approval event
        approvalId:
          type: string
          description: Approval ID containing approval related info.
        appliedApprovalType:
          $ref: '#/components/schemas/ApprovalType'
          description: The approval type that is applied.
        deadline:
          $ref: '#/components/schemas/DateTimeLocalWithZone'
          description: Deadline to execute the approval action.
        approvers:
          type: array
          description: List of approvers for the approval event.
          items:
            $ref: '#/components/schemas/ApproverWebhookPayload'
    PnrApprovalOperationType:
      description: The approval status for the PNR
      type: string
      enum:
        - APPROVAL_PENDING
        - APPROVED
        - DENIED
        - TIMED_OUT
        - TIMED_OUT_REMINDER
        - APPROVAL_NOT_REQUIRED
        - SOFT_APPROVAL_TIMEOUT
      example: APPROVAL_PENDING
      x-enumDescriptions:
        APPROVAL_PENDING: A PNR’s approval status has been changed to `APPROVAL_PENDING`.
        APPROVED: A PNR has been approved.
        DENIED: The approver has denied a PNR booking.
        TIMED_OUT: >-
          A PNR with hard approval has timed out since none of the approvers
          have taken action. In this scenario, the itinerary will be canceled.
        TIMED_OUT_REMINDER: >-
          A PNR with hard approval has been created, and a reminder notification
          must be sent to the approver.
        APPROVAL_NOT_REQUIRED: >-
          The PNR no longer requires approval (e.g., the traveler has canceled
          the booking before the approver could take action).
        SOFT_APPROVAL_TIMEOUT: >
          A PNR with soft approval has timed out since none of the approvers
          have taken any action.

          In this scenario, the itinerary will be booked for the traveler.
    PnrBookingStatus:
      type: string
      description: User facing status for this booking
      enum:
        - PENDING
        - CONFIRMED
        - ACTIVE
        - COMPLETED
        - CANCELLED
        - REFUNDED
        - VOIDED
        - PROCESSING
        - UNCONFIRMED
        - AIRLINE_CONTROL
        - PAYMENT_DECLINED
        - SCHEDULE_CHANGE
        - UNKNOWN
        - HOLD
        - APPROVAL_REQUESTED
        - APPROVAL_DENIED
        - CANCELLATION_IN_PROGRESS
        - INOPERATIVE_STATUS
        - FLIGHT_UNCONFIRMED_STATUS
      example: CONFIRMED
    PnrCreationDetails:
      title: PnrCreationDetails
      type: object
      description: Information about pnr creation
      properties:
        requestedByDetails:
          $ref: '#/components/schemas/RequestedByDetails'
    PnrData:
      title: PnrData
      type: object
      description: >
        Pnr data with all information about a single booking containing one of
        Air, Hotel,

        Car, Rail, Limo or Miscellaneous PNR.
      properties:
        version:
          type: integer
          format: int32
          description: >
            Current PNR version. This field is used for handling conflicts in
            case of concurrent 

            updates. This should be sent unmodified in update request.
          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, 

            Service 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.
          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

            contact TMC support.
          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'
    PnrMetadata:
      title: PnrMetadata
      description: Metadata when document is associated to pnr entity.
      type: object
      oneOf:
        - $ref: '#/components/schemas/FlightMetadataWrapper'
        - $ref: '#/components/schemas/LegMetadataWrapper'
    PnrMetadataWrapper:
      type: object
      title: PnrMetadataWrapper
      required:
        - travelType
      properties:
        pnrMetadata:
          $ref: '#/components/schemas/PnrMetadata'
        invoiceMetadata:
          type: object
          title: InvoiceMetadata
          description: Metadata associated with an invoice document.
          required:
            - invoiceNumber
          properties:
            invoiceNumber:
              type: string
              example: SPOT-0001
            invoiceType:
              type: string
              example: FARE_INVOICE
              enum:
                - SERVICE_FEE_INVOICE
                - FARE_INVOICE
                - GENERIC_INVOICE
        travelType:
          $ref: '#/components/schemas/TravelType'
    PnrPolicyId:
      title: PnrPolicyId
      description: Pnr Policy id
      type: object
      required:
        - id
        - version
      properties:
        id:
          type: string
          description: Policy id
        version:
          type: string
          description: version of the policy
        policyName:
          type: string
          description: Name of the policy applied.
        approvalType:
          type: string
          enum:
            - HARD_APPROVAL
            - SOFT_APPROVAL
            - PASSIVE_APPROVAL
          example: SOFT_APPROVAL
        policyType:
          type: string
          enum:
            - GLOBAL
            - DEFAULT
            - GROUP
          example: GLOBAL
    PnrPolicyInfo:
      title: PnrPolicyInfo
      description: Policy Info applicable for the associated itinerary
      type: object
      properties:
        policies:
          type: array
          description: List of policies applied to the itinerary.
          items:
            $ref: '#/components/schemas/PnrPolicyId'
        ruleResultInfos:
          type: array
          items:
            $ref: '#/components/schemas/PolicyRuleResultInfo'
    PnrStatus:
      title: PnrStatus
      type: string
      enum:
        - UNKNOWN
        - INITIATED
        - CANCELLED
        - CONFIRMED
        - GROUP_BOOKING_ON_REQUEST
        - WAITLISTED
        - PENDING
        - AIRLINE_UPGRADE
        - WAITLIST_CONFIRMED
        - BOOKING_DENIED_CONTACT_SUPPORT
        - NO_SHOW
        - CONTACT_SUPPORT
        - STATUS_CHANGED_CONTACT_SUPPORT
        - SCHEDULE_CHANGE
        - SEGMENT_REQUEST
        - SCHEDULE_CHANGE_WAITLISTED_BOOKING
        - REQUEST_PENDING
        - WAITLISTED_NOT_CONFIRMED
        - SCHEDULE_CHANGE_NOT_CONFIRMED
        - SCHEDULE_CHANGE_PENDING_STATUS
        - MIS_CONNECTION
        - REQUESTED
        - TICKETED
        - VOIDED
        - CANCELLED_BY_VENDOR
        - CANCELLATION_IN_PROGRESS
        - REINSTATED
        - BOOKING_ON_HOLD
        - AIRLINE_CONTROL
        - MODIFIED
        - PAYMENT_DECLINED
        - INOPERATIVE
        - UNCONFIRMED
      description: Status of PNR
      example: CONFIRMED
      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.
    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
    PnrTripDetailOperationType:
      description: Pnr and trip details operation types
      type: string
      enum:
        - BOOKING_CREATED
        - BOOKING_OTHER_UPDATE
        - TRIP_UPDATED
        - BOOKING_UPDATED
        - BOOKING_CANCELED_BY_TRAVELER
        - BOOKING_CANCELED_BY_VENDOR
        - BOOKING_REBOOKED
        - BOOKING_TICKETED
        - TICKET_VOIDED
        - TICKET_REFUNDED
        - FLIGHT_SCHEDULE_CHANGE_PENDING
        - FLIGHT_SCHEDULE_CHANGE_CLOSED
        - FLIGHT_CABIN_CHANGED
        - FLIGHT_SEAT_CANCELLED
        - FLIGHT_SEAT_CONFIRMED
        - FLIGHT_SEAT_CHANGED
        - PAYMENT_DECLINED
        - FLIGHT_CANCELLED
        - SPLIT_PNR_CREATED
        - REFUND
        - EXCHANGE
        - FLIGHT_CHANGED
        - INVOICE_GENERATED
      example: BOOKING_CREATED
      x-enumDescriptions:
        BOOKING_CREATED: >-
          The latest PNR status has been changed to `CONFIRMED` status (i.e.,
          the booking has been confirmed by the supplier).
        BOOKING_OTHER_UPDATE: >-
          If none of the other change types apply to the PNR update, the update
          will be attributed to this change type.
        TRIP_UPDATED: >-
          Trip information (e.g., trip ID, trip status, trip name, etc)
          associated with a PNR has been updated.
        BOOKING_UPDATED: >-
          An update has been made to a rail, hotel, car, limo, or a
          miscellaneous PNR. This operation doesn't support air PNR.
        BOOKING_CANCELED_BY_TRAVELER: >
          The status of the latest car or hotel PNR has been changed to
          `CANCELLED` or `VOIDED` by the traveler.

          Canceling via Shell PNRs will not trigger this operation.
        BOOKING_CANCELED_BY_VENDOR: >
          The status of the latest car or hotel PNR has been changed to
          `CANCELLED` or `VOIDED` by the vendor.

          Canceling via Shell PNRs will not trigger this operation.
        BOOKING_REBOOKED: >
          A car or a hotel PNR has been rebooked and its status is `CONFIRMED`. 

          To identify a rebooked PNR, compare the vendor confirmation numbers on
          the latest PNR version and its previous version. 

          If the values are different, then the PNR has been rebooked.
        BOOKING_TICKETED: >
          One or more ticket statuses for the latest air PNR have been changed
          to `ISSUED`. 

          View the `operationSummary.ticketsIssued` array in the webhook request
          schema to identify the list of new tickets issued.
        TICKET_VOIDED: >
          One or more ticket statuses for the latest air PNR have been changed
          to `VOIDED`. 

          View the `operationSummary.ticketsVoided` array in the webhook request
          schema to identify the voided tickets.
        TICKET_REFUNDED: >
          One or more ticket statuses for the latest air PNR have been changed
          to `REFUNDED` or `EXCHANGED`. 

          View the `operationSummary.ticketsRefunded` array in the webhook
          request schema to identify the refunded tickets.
        FLIGHT_SCHEDULE_CHANGE_PENDING: >
          The status of at least one of the flights in the air PNR has been
          updated to `SCHEDULE_CHANGE`. 

          This indicates that a schedule change has been initiated by the
          airline but hasn’t been confirmed yet.

          For Sabre, this operation is invoked when the latest PNR has a flight
          status of `SC`, `TK`, `TN`, or `TL`.
        FLIGHT_SCHEDULE_CHANGE_CLOSED: >
          A schedule change for a flight has been confirmed or canceled.

          For Sabre, this operation is triggered when a flight's schedule
          change, indicated by status codes `SC`, `TK`, `TL`, or `TN` 

          in the previous PNR version, has been `CONFIRMED` in the latest PNR
          version.
        FLIGHT_CABIN_CHANGED: >-
          The cabin type of a flight in the latest PNR version has either been
          upgraded or downgraded from the previously selected type.
        FLIGHT_SEAT_CANCELLED: >
          The status for a flight seat in the latest PNR has been changed to
          `CANCELLED`.

          The flight seat status of the previous PNR version should contain the
          values `CONFIRMED` or `PENDING`, 

          indicating that a seat selection had been made or attempted.
        FLIGHT_SEAT_CONFIRMED: >-
          The flight seat status of the latest PNR has been changed to
          `CONFIRMED` from a previous `UNCONFIRMED` state.
        FLIGHT_SEAT_CHANGED: A confirmed flight seat number of the latest PNR has been changed.
        PAYMENT_DECLINED: >
          The payment for an air itinerary has failed (e.g., due to card
          decline, network problems, etc).

          The traveler or agent can manually retry the payment. The ticket is
          issued after a successful payment retry.
        FLIGHT_CANCELLED: The flight segment in the latest PNR has been canceled.
        SPLIT_PNR_CREATED: >-
          A PNR has been split into multiple child PNRs. This occurs when a PNR
          is booked for multiple passengers.
        REFUND: >-
          The status of the latest rail PNR version has been changed to
          `CANCELLED` or `VOIDED`.
        EXCHANGE: >
          A rail PNR has been exchanged (e.g., to change passenger details, to
          select a different travel card for the rail journey, etc.).
        FLIGHT_CHANGED: >-
          When a flight is changed as part of exchange, but no new ticket is
          issued. In this case the original ticket is revalidated for new
          flights.
        INVOICE_GENERATED: >-
          An invoice has been generated for the PNR either external or spotnana
          internal.
    PnrV3:
      type: object
      x-ignore-naming-case: true
      properties:
        event_type:
          type: string
          description: PNR_V3
          example: PNR_V3
        operationSummary:
          $ref: '#/components/schemas/OperationSummary'
        operation:
          $ref: '#/components/schemas/PnrTripDetailOperationType'
        payload:
          $ref: '#/components/schemas/PnrData_BasicTripInfoHidden'
        timestamp:
          type: string
          description: Timestamp when the event was published
        audience:
          $ref: '#/components/schemas/WebhookAudience'
        payloadMetadata:
          $ref: '#/components/schemas/PayloadMetadata'
    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
    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
          $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 

            calculated.
          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'
    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, 

            this value would be 1. If it's manager and their manager, this would
            ge 2 and so on.
        positionTitles:
          type: array
          description: >
            What position in the cost center or department. For eg, any business
            class upgrade 

            might require VP approval.
          items:
            type: string
        userOrgIds:
          type: array
          description: >
            The specific users from whom to take approval. For eg, say for a
            company, all approvals

            go through Adam.
          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, 

            it is sufficient.
        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.

            Highest administrative subdivision which is used for postal

            addresses of a country or region.

            For example, this can be a state, a province, an oblast, or a
            prefecture.

            Specifically, for Spain this is the province and not the autonomous

            community (e.g. "Barcelona" and not "Catalonia").

            Many countries don't use an administrative area in postal addresses.
            E.g.

            in Switzerland this should be left unpopulated.
          example: CA
        administrativeAreaName:
          type: string
          description: >
            Name of administrative area. This is full name corresponding to
            administrativeArea. 

            Like Delhi for DL area code. For some places, code and name maybe
            same as well like Tokyo.
          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 

            language of the input form or is expected to match one of the
            languages used in the 

            address' country/region, or their transliterated equivalents.

            This can affect formatting in certain countries, but is not critical
            to the correctness 

            of the data and will never affect any validation or other
            non-formatting related operations.

            Examples: "zh-Hant", "ja", "ja-Latn", "en".
          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

            in most regions. Where it is used, the value is either a string like

            "CEDEX", optionally followed by a number (e.g. "CEDEX 7"), or just a
            number

            alone, representing the "sector code" (Jamaica), "delivery area
            indicator"

            (Malawi) or "post office indicator" (e.g. Côte d'Ivoire).
          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.

        USER_DEFINED_QUESTION the default question type for all pre checkout
        questions which have been created from UI.

        OOP_REASON_CODE is kept separate so that existing OOP flow doesn't
        break.
      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.

        PURPOSE_OF_TRIP required to ask purpose of the trip user is going to.
        For example: meeting, training, interview.
      example: PURPOSE_OF_TRIP
    Preference:
      title: Preference
      type: object
      required:
        - preferredType
      properties:
        preferredType:
          $ref: '#/components/schemas/PreferredType'
        blockedReason:
          type: string
          description: Reason for blocking the leg, hotel or car.
        label:
          type: string
          description: The label assigned to a specific tier of preference.
    PreferredAirport:
      type: object
      title: PreferredAirport
      description: Airport preferred by traveler.
      required:
        - airportCode
        - label
      properties:
        airportName:
          type: string
          description: Airport name.
          example: San Francisco International Airport
        airportCode:
          type: string
          description: IATA airport code.
          example: SFO
        label:
          $ref: '#/components/schemas/PreferredLocationLabel'
    PreferredLocationLabel:
      type: string
      title: PreferredLocationLabel
      description: The label of preferred airport or rail station.
      enum:
        - HOME
        - WORK
        - OTHER
      example: HOME
    PreferredPronoun:
      title: PreferredPronoun
      type: string
      enum:
        - SHE_HER_HERS
        - HE_HIM_HIS
        - THEY_THEM_THEIRS
      example: SHE_HER_HERS
    PreferredRailStation:
      type: object
      title: PreferredRailStation
      description: Rail station preferred by traveler.
      required:
        - stationCode
        - label
      properties:
        stationName:
          type: string
          description: Rail station name.
          example: Chicago Union Station
        stationCode:
          type: string
          description: Rail station code.
          example: CHI
        cityName:
          type: string
          description: Name of city where the rail station is located.
          example: Chicago
        countryCode:
          type: string
          description: Alpha-2 country code where the rail station is located.
        label:
          $ref: '#/components/schemas/PreferredLocationLabel'
    PreferredType:
      title: PreferredType
      type: string
      description: Preference type.
      enum:
        - NOT_PREFERRED
        - COMPANY_PREFERRED
        - SPOTTERS_CHOICE
        - COMPANY_BLOCKED
        - TMC_PREFERRED
    PrimaryServiceProviderTmc:
      type: object
      title: PrimaryServiceProviderTmc
      description: Primary service provider TMC info
      required:
        - tmcId
      properties:
        tmcId:
          $ref: '#/components/schemas/CompanyId'
          description: Id of the service provider TMC.
    Priority:
      type: string
      description: Priority of the task
      enum:
        - URGENT
        - HIGH
        - MEDIUM
        - LOW
        - IGNORE
        - NA
      example: MEDIUM
    ProductType:
      description: Type of product being invoiced
      type: string
      enum:
        - PNR
        - SERVICE_FEE
      example: PNR
    ProfileOwner:
      type: object
      title: ProfileOwner
      description: Basic information about the owner of the ad-hoc user.
      required:
        - userId
      properties:
        userId:
          $ref: '#/components/schemas/UserId'
    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'
    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.

        RADIO_BUTTON will have multiple options, user can select only one.

        CHECKBOX questions contain the possible set of options, from which the
        user can choose multiple options.

        CHECKBOX_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.
      example: CHECKBOX
    QuestionType:
      type: object
      title: QuestionType
      description: Question type.
      properties:
        preSearchQuestionType:
          $ref: '#/components/schemas/PreSearchQuestionType'
        preCheckoutQuestionType:
          $ref: '#/components/schemas/PreCheckoutQuestionType'
    Rail:
      title: Rail
      description: Rail PNR information
      required:
        - legInfos
        - outwardJourney
        - rate
        - ticketDetails
        - type
        - vendorConfirmationNumber
      properties:
        inwardJourney:
          $ref: '#/components/schemas/RailPnrJourneyInfo'
          description: Inward Journey.
        legInfos:
          type: array
          description: List of legs covered in the booking.
          items:
            $ref: '#/components/schemas/RailPnrLegInfo'
        outwardJourney:
          $ref: '#/components/schemas/RailPnrJourneyInfo'
          description: Outward Journey.
        rate:
          $ref: '#/components/schemas/Cost'
          description: Rate information of the journey.
        rateMetadata:
          $ref: '#/components/schemas/RateMetadata'
          description: Price Metadata.
        passengerInfos:
          type: array
          description: List of passenger information.
          items:
            $ref: '#/components/schemas/RailPnrPassengerInfo'
        paymentMode:
          type: string
          enum:
            - PRE_PAID
            - PAID_AT_STATION
          example: PRE_PAID
        sections:
          type: array
          description: List of sections covered in the booking.
          items:
            $ref: '#/components/schemas/RailPnrSectionInfo'
        tickets:
          type: array
          description: List of rail tickets.
          items:
            $ref: '#/components/schemas/RailPnrTicket'
        ticketDetails:
          type: array
          items:
            $ref: '#/components/schemas/RailPnrTicketDetail'
        type:
          $ref: '#/components/schemas/RailSearchType'
          description: Journey type.
        vendorConfirmationNumber:
          type: string
          description: Rail confirmation number
          example: ABQTEJ
          deprecated: true
          x-sunset: '2026-07-01'
        itineraryId:
          type: string
          description: Itinerary ID
          example: abcde
        ancillaries:
          type: array
          description: Details of the selected ancillaries for the booking.
          items:
            $ref: '#/components/schemas/RailAncillary'
        termsAndConditions:
          $ref: '#/components/schemas/TermsAndConditions'
        exchangeInfo:
          description: Exchange information for rail booking.
          $ref: '#/components/schemas/RailPnrExchangeInfo'
          readOnly: true
        previousItinerary:
          description: Previous itinerary information for rail booking.
          $ref: '#/components/schemas/RailPnrPreviousItinerary'
          readOnly: true
        relatedRateInfos:
          type: array
          description: List of rate information for the related orders.
          readOnly: true
          items:
            $ref: '#/components/schemas/RailPnrRelatedRateInfo'
        relatedRefundRateInfos:
          type: array
          description: List of refund rate information for the related refunds.
          readOnly: true
          items:
            $ref: '#/components/schemas/RailPnrRelatedRefundRateInfo'
    RailAmenityType:
      type: string
      description: Rail amenity type
      enum:
        - WIFI
        - LUGGAGE_INCLUDED
        - ELECTRICAL_SOCKET
        - CAFE
        - SEAT_DISPLAY
        - NEWSPAPER
        - MEAL
        - QUIET_CAR
        - SEAT_SELECTION
        - LOCAL_TRANSPORT
        - LOUNGE
        - LEATHER_SEATS
        - BICYCLE
        - PET
        - FIRST_CLASS_COMFORT
        - BUSINESS_PREMIER
        - PERSONALIZED_SERVICE
        - BOARDING
        - WHEELCHAIR_ACCESS
        - NURSERY_SPACE
        - TABLE_SEAT
        - LARGE_SEAT
        - EXTRA_LEGROOM
        - AIR_CONDITIONING
        - READING_LIGHT
      x-ignoreBreakingChanges:
        - RailAmenityType->TABLE_SEAT
        - RailAmenityType->LARGE_SEAT
        - RailAmenityType->EXTRA_LEGROOM
        - RailAmenityType->AIR_CONDITIONING
        - RailAmenityType->READING_LIGHT
      example: WIFI
    RailAncillary:
      type: object
      title: RailAncillary
      description: Ancillaries for rail.
      required:
        - type
      properties:
        travelCard:
          description: Details of the travel cards.
          $ref: '#/components/schemas/RailTravelCard'
        type:
          description: Type of the ancillary
          type: string
          enum:
            - TRAVEL_CARD
          example: TRAVEL_CARD
    RailAppliedPromotion:
      type: object
      title: RailAppliedPromotion
      description: Applied promotion for rail.
      required:
        - name
      properties:
        type:
          type: string
          description: Type of the promotion
          enum:
            - GROUP_SAVE
          example: GROUP_SAVE
        name:
          type: string
          description: Name of the promotion
          example: GroupSave
        description:
          type: string
          description: Description of the promotion
          example: GroupSave discount allows any group of 3 - 9 passengers
        conditions:
          type: array
          description: Conditions of the promotion
          items:
            type: string
            example: >-
              Passengers must travel together at all times for the tickets to be
              valid
    RailBookingGuideline:
      title: RailBookingGuideline
      description: Rail related guidelines
      type: object
      properties:
        arrivalBookingWindow:
          description: Booking window for rail-in-event.
          $ref: '#/components/schemas/EventBookingWindow'
        departureBookingWindow:
          description: Booking window for rail-out-event.
          $ref: '#/components/schemas/EventBookingWindow'
    RailBookingGuidelineWrapper:
      type: object
      title: RailBookingGuidelineWrapper
      description: Wrapper for RailBookingGuideline
      properties:
        railBookingGuideLine:
          $ref: '#/components/schemas/RailBookingGuideline'
    RailCard:
      type: object
      title: RailCard
      description: Rail card
      required:
        - name
        - spotnanaCode
        - vendor
      properties:
        cardNumber:
          type: string
          description: Number of card
        expiryDate:
          description: Expiry date of the Rail Card.
          $ref: '#/components/schemas/DateModel'
        name:
          type: string
          description: Name of the Rail Card.
          example: Veterans Railcard
        spotnanaCode:
          description: Unique Spotnana code/identifier for Rail Card.
          type: string
          example: VET
        vendor:
          type: string
          description: Vendor Name.
          example: ATOC
    RailCo2EmissionDetails:
      type: object
      title: RailCo2EmissionDetails
      description: CO2 emission info for rail
      required:
        - co2EmissionKilograms
      properties:
        co2EmissionKilograms:
          type: number
          format: double
          description: >-
            CO2 emission for the outward/inward leg in kilograms for a single
            passenger.
          example: 10
        isApproximate:
          type: boolean
          description: Indicates whether the emissions value is approximate or not.
          example: true
    RailDeliveryOption:
      description: Delivery options available.
      type: string
      enum:
        - ELECTRONIC_TICKET
        - KIOSK
      example: ELECTRONIC_TICKET
    RailExchangeType:
      description: Exchange type
      type: string
      enum:
        - AMEND_RESERVATION
        - PAY_THE_DIFFERENCE
        - REBOOK_AND_REFUND
      example: AMEND_RESERVATION
    RailFareComposition:
      type: string
      description: Rail Fare Composition
      enum:
        - THROUGH
        - DIRECT_SPLIT
        - INTERCHANGE_SPLIT
      example: DIRECT_SPLIT
    RailFareDetail:
      type: object
      title: RailFareDetail
      description: Details about this fare.
      required:
        - description
        - name
      properties:
        description:
          type: string
          description: Description about this fare.
          example: >-
            Your journey must be on the date, or the day after the date,
            specified on the ticket.
        name:
          type: string
          description: Name of the Attribute.
          example: VALIDITY
    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'
    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'
    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.

            For ELECTRONIC_TICKET, it contains the path where the actual content
            of the ticket is.
        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'
    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.

            For others, it contains the path where the actual content of the
            ticket is.
          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
    Relation:
      deprecated: true
      x-sunset: '2026-07-01'
      type: string
      enum:
        - SPOUSE
        - CHILD
        - FRIEND
        - PARENT
        - OTHER
      example: SPOUSE
    RelativeOf:
      type: object
      description: Link to primary traveler
      properties:
        userRef:
          $ref: '#/components/schemas/Reference'
        relation:
          $ref: '#/components/schemas/Relation'
    RequestedByDetails:
      title: RequestedByDetails
      type: object
      description: Information about the requester of the trip.
      required:
        - pnrRequestedBy
      properties:
        pnrRequestedBy:
          type: string
          description: Name of the requester
          example: Peter
          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
    ResolutionType:
      type: string
      enum:
        - MANUAL
        - AI
      example: MANUAL
    RestrictedKeywordsWithReason:
      type: object
      properties:
        keyword:
          type: string
          description: Restricted keyword
          example: Test Keyword
        reason:
          type: string
          description: Reason for restriction
          example: Test Reason
    Room:
      type: object
      title: Room
      description: Room info
      required:
        - bedCount
        - bedType
        - cancellationPolicy
        - rateInfo
      properties:
        bedCount:
          type: integer
          description: Number of rooms.
          format: int32
          example: 1
        bedType:
          $ref: '#/components/schemas/BedType'
          description: Bed type.
        cancellationPolicy:
          $ref: '#/components/schemas/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
    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
    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'
    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,
            New York, NY 10006
        taxId:
          description: Tax number for the seller, for ex GSTN in India
          type: string
          example: TXG239023092
          deprecated: true
          x-sunset: '2026-07-01'
        idInfo:
          type: array
          description: The seller ID information.
          items:
            $ref: '#/components/schemas/IdInfo'
    ServiceCharge1:
      type: object
      x-ignore-naming-case: true
      properties:
        event_type:
          type: string
          description: SERVICE_CHARGE
          example: SERVICE_CHARGE
        operationSummary:
          $ref: '#/components/schemas/OperationSummary'
        operation:
          $ref: '#/components/schemas/ServiceChargeOperationType'
        payload:
          $ref: '#/components/schemas/ServiceChargeRecord'
        timestamp:
          type: string
          description: Timestamp when the event was published
        audience:
          $ref: '#/components/schemas/WebhookAudience'
        payloadMetadata:
          $ref: '#/components/schemas/PayloadMetadata'
    ServiceCharge2:
      type: object
      title: ServiceCharge
      description: Service charge.
      required:
        - amount
        - taxes
        - totalAmount
      properties:
        amount:
          $ref: '#/components/schemas/Money'
          description: Service charge amount.
        taxes:
          type: array
          description: Applicable taxes.
          items:
            $ref: '#/components/schemas/TaxAmount'
        totalAmount:
          $ref: '#/components/schemas/Money'
          description: Total amount (including taxes).
        allowedFoP:
          type: array
          deprecated: true
          x-sunset: '2026-07-01'
          description: List of allowed payment methods for this charge.
          items:
            $ref: '#/components/schemas/PaymentMethod'
        feeInfo:
          $ref: '#/components/schemas/FeeInfo'
        waiveOffInfo:
          $ref: '#/components/schemas/AppliedWaiveOffInfo'
    ServiceChargeEntity:
      type: object
      title: ServiceChargeEntity
      description: Entity for service charge.
      required:
        - entityType
        - entityId
      properties:
        entityType:
          $ref: '#/components/schemas/ServiceChargeEntityType'
          description: Entity type for service charge.
          example: TRIP
        entityId:
          type: string
          description: Entity ID for service charge e.g, trip ID for entityType=TRIP.
          example: '1234567890'
    ServiceChargeEntityType:
      type: string
      title: ServiceChargeEntityType
      description: Entity type for service charge.
      enum:
        - TRIP
        - USER
    ServiceChargeOperationType:
      description: Service charge operation types
      type: string
      enum:
        - SERVICE_FEE
      example: SERVICE_FEE
      x-enumDescriptions:
        SERVICE_FEE: A service fee has been charged for the latest PNR.
    ServiceChargeRecord:
      type: object
      title: ServiceChargeRecord
      description: Service charge record.
      required:
        - entity
        - serviceChargeType
        - serviceType
        - charge
        - transactionTime
        - paymentStatus
      properties:
        entity:
          $ref: '#/components/schemas/ServiceChargeEntity'
          description: Entity for service charge.
        tripId:
          type: string
          description: Trip ID (if applicable).
          example: '1234567890'
          deprecated: true
          x-sunset: '2026-07-01'
        serviceChargeType:
          $ref: '#/components/schemas/ServiceChargeType'
          description: Type of service charge.
          example: TMC_CHARGE
        serviceType:
          $ref: '#/components/schemas/ServiceType'
          description: Type of service.
          example: AGENT_CONTACT
        agentContact:
          $ref: '#/components/schemas/AgentContact'
          description: Agent contact details if serviceType is AGENT_CONTACT.
        chargeId:
          type: string
          description: Charge Id to uniquely identify service charge.
          example: e2c04834-92eb-4b62-9faa-eb73a70051d3
        charge:
          $ref: '#/components/schemas/ServiceCharge2'
          description: Service charge.
        transactionTime:
          $ref: '#/components/schemas/DateTimeOffset'
          description: Transaction date and time.
        paymentStatus:
          $ref: '#/components/schemas/PaymentStatus'
          description: Payment status.
        userOrgId:
          $ref: '#/components/schemas/UserOrgId'
          description: User org details.
        legalEntityId:
          $ref: '#/components/schemas/LegalEntityId'
          description: The ID of the legal entity.
        bookingDetails:
          $ref: '#/components/schemas/BookingDetails'
          description: Booking details.
        fop:
          $ref: '#/components/schemas/FormOfPayment'
          description: Form of payment for the service charge.
        paymentTransaction:
          $ref: '#/components/schemas/PaymentTransaction'
          description: Payment transaction details.
        failureDetails:
          $ref: '#/components/schemas/FailureDetails'
          description: Failure details.
    ServiceChargeType:
      type: string
      title: ServiceChargeType
      description: >
        Type of service charge. TMC_CHARGE: Service charge for a service charged
        by the TMC.
      enum:
        - TMC_CHARGE
    ServiceFee:
      title: ServiceFee
      description: Service Fee on the booking
      type: object
      required:
        - fare
        - ticketNumber
        - status
      properties:
        fare:
          $ref: '#/components/schemas/FareAmount'
          description: Amount charged for the service fee
        taxes:
          type: array
          description: List of applicable taxes
          items:
            $ref: '#/components/schemas/TaxAmount'
        ticketNumber:
          type: string
          description: Ticket Number
        status:
          type: string
          description: Status for the associated ticket
          enum:
            - ISSUED
            - VOIDED
            - PENDING
            - DELAYED_INVOICE
            - FAILED
            - NO_CHARGE
            - UNKNOWN
            - WAIVED_OFF
          example: ISSUED
        fop:
          $ref: '#/components/schemas/FormOfPayment'
          description: Form of payment for the above amount
        visibleToTraveler:
          type: boolean
          description: Show/hide service fee to traveler
          example: true
        paymentTransactionInfo:
          $ref: '#/components/schemas/PaymentTransactionInfo'
        tags:
          type: array
          description: >-
            List of key-value pairs for storing some tags related to
            service-fee.
          items:
            $ref: '#/components/schemas/KeyValue'
        feeInfo:
          $ref: '#/components/schemas/FeeInfo'
        waiveOffInfo:
          $ref: '#/components/schemas/AppliedWaiveOffInfo'
        chargeId:
          type: string
          description: Unique identifier for the charge associated with this service fee.
    ServiceFeeTransactionType:
      type: string
      title: ServiceFeeTransactionType
      description: Transaction type for service fee
      enum:
        - TRANSACTION_TYPE_BOOKING
        - TRANSACTION_TYPE_MODIFICATION
        - TRANSACTION_TYPE_CANCELLATION
        - TRANSACTION_TYPE_AGENT_CONTACT
      x-ignoreBreakingChanges:
        - ServiceFeeTransactionType->TRANSACTION_TYPE_AGENT_CONTACT
    ServiceType:
      type: string
      title: ServiceType
      description: >
        Type of service for service charge. ITINERARY_BOOKING: Service charge
        for travel booking. AGENT_CONTACT: Service charge for agent contact.
      enum:
        - ITINERARY_BOOKING
        - AGENT_CONTACT
    ShellPnrInfo:
      title: ShellPnrInfo
      type: object
      description: Information about shell pnr
      properties:
        shellPnrCreateReasonType:
          type: string
          description: Reason for creating the shell pnr
          example: CONTENT_NOT_AVAILABLE
        createShellPnrReason:
          type: string
          description: >
            If the reason for creating the shell pnr is chosen as OTHER or
            CONTENT_NOT_AVAILABLE, 

            we expect the agent to explain the reason using this free text
          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 

        mapped into Spotnana PNR protos.
      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

        mapped into Spotnana PNR protos.
      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 

            the trips page.
          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

        mapped into Spotnana PNR protos.
      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

            on the trips page.
          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

            on the trips page.
          example: 0
    SimpleLimoPnrInfo:
      type: object
      description: >
        Limo specific basic information related to PNRs that were not
        successfully

        mapped into Spotnana PNR protos.
      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 

            the trips page.
          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 

        protos. This basic information can be used to power a basic card for a
        traveler.
      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

            on the trips page.
          example: 0
    SimpleRailPnrInfo:
      type: object
      description: >
        Rail specific basic information related to PNRs that were not
        successfully

        mapped into Spotnana PNR protos.
      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

            contain details of the path where pdf/apple pk pass is stored. For
            collection ticket, 

            it will contain the reference number of the ticket.
          items:
            $ref: '#/components/schemas/RailTicketAsset'
    SimpleRailStationInfo:
      type: object
      description: The information related to the rail station.
      required:
        - name
        - code
      properties:
        name:
          type: string
          description: Name of the station.
        code:
          type: string
          description: Unique code of the station.
    SimpleSectionInfo:
      type: object
      description: The List of sections covered in the itinerary.
      required:
        - vendorConfirmationId
        - legs
      properties:
        vendorConfirmationId:
          type: string
          description: The confirmation ID in the vendor system.
        legs:
          type: array
          description: The information related to the legs in a section.
          items:
            $ref: '#/components/schemas/SimpleRailLegInfo'
    SizeInfo:
      type: object
      description: Information about the baggage size.
      properties:
        length:
          description: The weight limit of a baggage option.
          type: number
          example: 32
        unit:
          description: The unit of measurement for the bag size.
          type: string
          enum:
            - CENTIMETER
            - METER
    SourceInfo:
      title: SourceInfo
      description: Information about the source of booking
      type: object
      required:
        - bookingSource
      properties:
        sourcePnrId:
          type: string
          description: The source PNR ID
          example: AEDAVF
        bookingSource:
          type: string
          description: The source of booking
          example: United.com
        thirdParty:
          type: string
          description: The known third party source of the booking.
          example: United.com
          readOnly: true
        bookingDateTime:
          description: Booking date time of the PNR
          $ref: '#/components/schemas/DateTimeOffset'
        posDescriptor:
          type: string
          description: Point of sale descriptor for this pnr from source
          example: LA5K
        iataNumber:
          type: string
          description: IATA number associated with this pnr
          example: '426666'
    SpecialServiceRequestInfoDetail:
      type: object
      title: SpecialServiceRequestInfo
      description: Special Service Request (SSR) Info.
      properties:
        code:
          type: string
          description: 4 letter Special Service Request code.
        customText:
          type: string
          description: Free text string for special request.
        flightIndex:
          type: integer
          description: >-
            Index of flight mapping with the special service request, starts
            with 0.
        legIndex:
          type: integer
          description: >-
            Index of leg mapping with the special service request, starts with
            0.
        status:
          type: string
          description: Status of the Special Service Request.
          enum:
            - SPECIAL_SERVICE_REQUEST_STATUS_UNKNOWN
            - CONFIRMED
            - REQUESTED
            - UNABLE_TO_CONFIRM
            - DENIED
    SplitPayment:
      type: object
      title: SplitPayment
      description: Split payment details for claiming reimbursements.
      properties:
        inPolicyAmount:
          $ref: '#/components/schemas/Money'
          description: Amount approved by Company to be reimbursed.
        isAmountReimbursable:
          type: boolean
          description: If the in policy amount is reimbursable or not.
        personalFopChargeableAmount:
          $ref: '#/components/schemas/Money'
          description: Amount that is to be paid by traveler itself.
    StatisticsItem:
      type: object
      required:
        - statisticType
        - totalFare
      properties:
        statisticType:
          type: string
          enum:
            - MINIMUM
            - MEDIAN
            - MAXIMUM
        totalFare:
          $ref: '#/components/schemas/FareAmount'
    Status:
      type: string
      description: Status of the task.
      enum:
        - ACTIVE
        - COMPLETED
        - ON_HOLD
        - SCHEDULED
        - OPEN
        - UNKNOWN
      default: ACTIVE
    StealthMode:
      type: object
      title: StealthMode
      description: Stealth mode configuration with type and label.
      required:
        - stealthType
        - label
      properties:
        stealthType:
          $ref: '#/components/schemas/StealthType'
        label:
          type: string
          description: Customer specific label for the stealth mode.
    StealthType:
      type: string
      description: Stealth type.
      enum:
        - STEALTH_TYPE_1
        - STEALTH_TYPE_2
        - STEALTH_TYPE_3
      example: STEALTH_TYPE_1
      x-ignoreBreakingChanges:
        - StealthType->STEALTH_TYPE_4
        - StealthType->STEALTH_TYPE_5
        - StealthType->STEALTH_TYPE_6
    StringListWrapper:
      type: object
      title: StringListWrapper
      properties:
        sList:
          type: array
          items:
            type: string
    StringWrapper:
      type: object
      title: StringWrapper
      properties:
        s:
          type: string
    StripeInfo:
      title: StripeInfo
      type: object
      description: Stripe payment gateway information
      properties:
        accountId:
          type: string
          description: Stripe account id
          example: acct_1OAbc3AB5abcdDdA
        accountDisplayName:
          type: string
          description: Stripe account display name as seen on the stripe dashboard
          example: Abc Travel
        platformAccountGatewayId:
          type: string
          description: >-
            Gateway-id of platform account when this gateway is a connected
            account
          example: connect-platform:#
          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
    TaskMetadata:
      type: object
      required:
        - taskType
      properties:
        taskType:
          $ref: '#/components/schemas/InternalTaskType'
      discriminator:
        propertyName: taskType
        mapping:
          GDS_EXCHANGE_CHECK: '#/components/schemas/ExchangeTask'
      oneOf:
        - $ref: '#/components/schemas/ExchangeTask'
    TaskOrigin:
      type: string
      description: Origin of task.
      enum:
        - SUPPLIER
        - SEAT1A
        - BOOKING_ENGINE
        - MANUAL
        - MID_OFFICE
        - UNUSED_TICKET_TRACKING
      x-enum-varnames:
        - SUPPLIER
        - SEAT1A
        - BOOKING_ENGINE
        - MANUAL
        - MID_OFFICE
        - UNUSED_TICKET_TRACKING
      example: SUPPLIER
    Tax:
      type: object
      title: Tax
      description: Tax details
      required:
        - amount
      properties:
        amount:
          $ref: '#/components/schemas/Money'
          description: Tax amount
        taxCode:
          type: string
          description: Tax code
          example: VAT
        percentage:
          type: number
          format: double
          description: Tax amount to total amount
          example: 9
    TaxAmount:
      type: object
      title: Tax
      description: Tax
      required:
        - amount
        - taxCode
        - description
      properties:
        amount:
          $ref: '#/components/schemas/Money'
        taxCode:
          type: string
          description: Tax code
          example: VAT
        description:
          type: string
          description: Tax code
        percentage:
          type: number
          format: double
          description: Amount
          example: 10
    TaxBreakdown:
      type: array
      items:
        $ref: '#/components/schemas/Tax'
    TaxDefinitionCharge:
      type: object
      title: TaxDefinitionCharge
      description: Tax definition charge for transaction fare detail.
      properties:
        taxShortName:
          type: string
          description: Short name of the tax (e.g., "Other fees").
          example: Other fees
        taxCode:
          type: string
          description: Tax code identifier.
          example: XF
        amount:
          $ref: '#/components/schemas/Money'
          description: Tax amount.
        sortPriority:
          type: integer
          format: int32
          description: Sort priority for display ordering within taxes.
          example: 1
    TemperatureAmenity:
      type: object
      title: TemperatureAmenity
      description: Temperature Amenity properties
      properties:
        displayText:
          type: string
          example: No pre-flight temperature check
        temperatureDescription:
          type: string
          example: A temperature check is not required before boarding
        temperatureAttrDescription:
          type: string
          example: 'no'
    TemperatureAmenityWrapper:
      type: object
      title: TemperatureAmenityWrapper
      properties:
        temperatureAmenity:
          $ref: '#/components/schemas/TemperatureAmenity'
    TermsAndConditions:
      type: object
      title: TermsAndConditions
      description: Terms and conditions.
      properties:
        conditions:
          type: array
          description: List of conditions
          items:
            $ref: '#/components/schemas/Condition'
    ThirdPartyHotelCode:
      title: ThirdPartyHotelCode
      type: object
      required:
        - hotelCode
        - hotelCodeType
      properties:
        hotelCode:
          type: string
          description: Third party hotel code.
        hotelCodeType:
          type: string
          description: Type of the third party.
          enum:
            - SABRE_CSL
            - SABRE_TN
            - EXPEDIA_RAPID
            - MARRIOTT
            - GIATA
            - BCD
    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

            > **Note:** If the value of `pnrs.data.sourceInfo.bookingSource` is
            `TRAVEL_FUSION` then the `exchangePolicy` field will be empty.
          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

            > **Note:** If the value of `pnrs.data.sourceInfo.bookingSource` is
            `TRAVEL_FUSION` then the `refundPolicy` field will be empty.
          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

            in case of corporate / private fare bookings.
          $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'
    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'
    Tier:
      type: string
      title: Tier
      description: >
        Tier of User.

        Note: In default UI, BASIC is displayed as Standard, and SEAT1A is
        displayed as VIP.

        Display names for other tiers are driven by the company tier
        configuration.
      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
    TravelArrangerBasicInfo:
      type: object
      title: TravelArrangerBasicInfo
      description: Traveler arranger information.
      required:
        - userId
      properties:
        name:
          $ref: '#/components/schemas/Name'
        email:
          type: string
          format: email
          example: example@email.com
        phoneNumbers:
          type: array
          items:
            $ref: '#/components/schemas/PhoneNumber'
        userId:
          $ref: '#/components/schemas/UserId'
        status:
          $ref: '#/components/schemas/TravelerArrangerStatus'
    TravelClassHierarchy:
      type: string
      description: >
        Rail Travel classes in hierarchy numbering higher to keep scope for
        future additions in 

        between.
      enum:
        - UNKNOWN
        - STANDARD
        - COACH
        - STANDARD_PREMIUM
        - BUSINESS
        - BUSINESS_PREMIUM
        - FIRST
        - SLEEPER
      example: STANDARD
    TravelClassHierarchyWrapper:
      type: object
      title: TravelClassHierarchyWrapper
      properties:
        railTravelClass:
          $ref: '#/components/schemas/TravelClassHierarchy'
    TravelPref:
      type: object
      title: TravelPref
      description: Travel preferences.
      properties:
        airPref:
          $ref: '#/components/schemas/AirPref'
        preferredCurrency:
          type: string
          example: USD
        railCards:
          type: array
          items:
            $ref: '#/components/schemas/RailCard'
        railPref:
          $ref: '#/components/schemas/RailPref'
        carPref:
          $ref: '#/components/schemas/CarPref'
        hotelPref:
          $ref: '#/components/schemas/HotelPref'
    TravelPreferences:
      type: object
      description: User's travel preferences
      properties:
        preferences:
          $ref: '#/components/schemas/TravelPref'
    TravelRegionType:
      type: string
      title: TravelRegionType
      description: Travel region Type
      enum:
        - DOMESTIC
        - INTERNATIONAL
      example: DOMESTIC
    TravelType:
      type: string
      title: TravelType
      description: Travel Type
      enum:
        - AIR
        - HOTEL
        - CAR
        - RAIL
        - LIMO
        - MISC
        - ALL
      example: AIR
    Traveler:
      type: object
      title: Traveler
      description: Traveler details.
      deprecated: true
      x-sunset: '2026-07-01'
      properties:
        travelerPersonalInfo:
          $ref: '#/components/schemas/TravelerPersonalInfo'
        user:
          $ref: '#/components/schemas/User'
        userBusinessInfo:
          $ref: '#/components/schemas/UserBusinessInfo'
        userOrgId:
          $ref: '#/components/schemas/UserOrgId'
        persona:
          $ref: '#/components/schemas/Persona'
        isActive:
          type: boolean
          description: A boolean flag to show if traveler is active.
          example: true
        tier:
          $ref: '#/components/schemas/Tier'
        adhocUserInfo:
          $ref: '#/components/schemas/AdhocUserInfo'
        externalId:
          type: string
          description: External id of this user.
    TravelerArrangerStatus:
      type: string
      title: TravelerArrangerStatus
      description: Status of the traveler-arranger assignment.
      enum:
        - PENDING
        - ACCEPTED
        - DENIED
      example: PENDING
    TravelerBusinessInfo:
      type: object
      title: TravelerBusinessInfo
      description: Business information of the traveler
      properties:
        legalEntity:
          $ref: '#/components/schemas/TravelerLegalEntity'
        companyId:
          $ref: '#/components/schemas/CompanyId'
          deprecated: true
          x-sunset: '2026-07-01'
        companyInfo:
          $ref: '#/components/schemas/TravelerCompanyInfo'
        workerType:
          $ref: '#/components/schemas/WorkerType'
        employeeId:
          type: string
          description: Employee id of the user
          example: '1234'
        companySpecifiedAttributes:
          type: array
          items:
            $ref: '#/components/schemas/CompanySpecifiedAttribute'
        userCostCenter:
          $ref: '#/components/schemas/CostCenter'
        grade:
          $ref: '#/components/schemas/Grade'
        office:
          $ref: '#/components/schemas/Office'
        department:
          $ref: '#/components/schemas/DepartmentV2'
        accountingCode:
          type: string
          description: Code used for accounting.
          example: '123'
    TravelerCompanyInfo:
      type: object
      title: TravelerCompanyInfo
      description: Company information of the traveler
      properties:
        id:
          $ref: '#/components/schemas/CompanyId'
        name:
          type: string
          description: Name of the company
          example: Spotnana
        externalId:
          type: string
          description: External Id of the company
          example: abcd
    TravelerEventSummary:
      title: TravelerEventSummary
      type: object
      description: Event summary for a traveler
      required:
        - id
      properties:
        id:
          type: string
          description: Event ID
          example: '12345'
        type:
          description: Event Type
          $ref: '#/components/schemas/EventType'
        name:
          type: string
          description: Name of the event
          example: My event
        description:
          type: string
          description: Description of the event
          example: This is an event description
        startDateTime:
          $ref: '#/components/schemas/DateTimeLocal'
        endDateTime:
          $ref: '#/components/schemas/DateTimeLocal'
        location:
          $ref: '#/components/schemas/EventLocation'
        contacts:
          type: array
          description: Event contacts for the traveler
          items:
            $ref: '#/components/schemas/UserId'
          deprecated: true
          x-sunset: '2026-07-01'
        documents:
          type: array
          description: List of documents associated with this event for the traveler
          items:
            $ref: '#/components/schemas/Document'
        bookingGuidelines:
          description: Booking details allowed for the event for the traveler
          type: array
          items:
            $ref: '#/components/schemas/EventBookingGuideline'
        allowedBookingTypes:
          type: array
          description: Allowed booking types for the event for the traveler
          items:
            $ref: '#/components/schemas/EventAllowedBookingType'
        eventUserRsvp:
          $ref: '#/components/schemas/EventUserRsvp'
        contactInfoList:
          type: array
          description: Event contacts for the traveler
          items:
            $ref: '#/components/schemas/EventUserInfo'
        companyId:
          $ref: '#/components/schemas/EntityId'
        runningStatus:
          $ref: '#/components/schemas/EventRunningStatus'
        status:
          $ref: '#/components/schemas/EventStatus'
        isRemovedParticipant:
          type: boolean
          description: Whether the traveler is part of the event.
        inviteEmailConfig:
          $ref: '#/components/schemas/InviteEmailConfig'
        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

        the adhoc travelers.
      type: object
      oneOf:
        - $ref: '#/components/schemas/UserIdWrapper'
        - $ref: '#/components/schemas/AdhocTravelerInfoWrapper'
    TravelerLegalEntity:
      type: object
      title: TravelerLegalEntity
      description: Legal entity of the traveler
      properties:
        id:
          type: string
          description: Legal entity ID
        name:
          type: string
          description: Name of the legal entity
          example: Spotnana India
        ein:
          type: string
          description: EIN of the traveler
        externalId:
          type: string
          description: External Id of the legal entity
          example: abcd
        companySpecifiedAttributes:
          type: array
          items:
            $ref: '#/components/schemas/CompanySpecifiedAttributeLegalEntity'
        countryCode:
          type: string
          description: 2-letter ISO country code of the legal entity
          example: IN
        billingCurrency:
          type: string
          description: Billing currency for the legal entity.
          example: USD
        registeredName:
          type: string
          description: >
            The official name of this legal entity as registered with local tax
            authorities.
          example: Spotnana India Private Limited
        registeredEmail:
          type: string
          description: >
            The primary email (or alias) used for the "Registered name" of this
            legal entity.

            Used for official communications, including regulatory, compliance,
            and invoicing

            purposes.
          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'
    TravelerV2:
      type: object
      x-ignore-naming-case: true
      properties:
        event_type:
          type: string
          description: TRAVELER_V2
          example: TRAVELER_V2
        operationSummary:
          type: object
          $ref: '#/components/schemas/OperationSummary'
        operation:
          $ref: '#/components/schemas/TravelerV2OperationType'
        payload:
          $ref: '#/components/schemas/UserProfileWithRelatedEntities'
        timestamp:
          type: string
          description: Timestamp when the event was published
        audience:
          $ref: '#/components/schemas/WebhookAudience'
        payloadMetadata:
          $ref: '#/components/schemas/PayloadMetadata'
    TravelerV2OperationType:
      description: Traveler Update operation types
      type: string
      enum:
        - CREATE
        - UPDATE
        - DELETE
        - PURGE
      example: DELETE
      x-enumDescriptions:
        CREATE: A new traveler profile has been created.
        UPDATE: A traveler profile has been updated.
        DELETE: >-
          A traveler profile has been deactivated. A deactivated profile can be
          reactivated later.
        PURGE: >-
          A traveler’s profile has been permanently deleted. A purged traveler
          profile cannot be recovered.
    TripAdditionalInfo:
      title: TripAdditionalInfo
      description: Additional information about the trip
      type: object
      properties:
        vpayBillBack:
          type: string
          description: >-
            Vpay bill back indicator. Can be one of N(none), C(only car), H(only
            hotel), B(both) depending on whether there is an active hotel or car
            pnr using virtual card.
          example: B
    TripCommunicationPreferences:
      title: TripCommunicationPreferences
      description: Communication preferences for the trip
      type: object
      properties:
        tripEmailPreferences:
          $ref: '#/components/schemas/TripEmailPreferences'
    TripContact:
      title: TripContact
      description: Contacts for the trip
      type: object
      required:
        - label
        - name
      properties:
        label:
          type: string
          description: Label for the contact
          example: Coordinator
        name:
          type: string
          description: Name of the contact
          example: Himani Jain
          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
    TripDetailsV3:
      type: object
      x-ignore-naming-case: true
      properties:
        event_type:
          type: string
          description: TRIP_DETAILS_V3
          example: TRIP_DETAILS_V3
        operationSummary:
          $ref: '#/components/schemas/OperationSummary'
        operation:
          $ref: '#/components/schemas/PnrTripDetailOperationType'
        payload:
          $ref: '#/components/schemas/TripV3DetailsResponse'
        timestamp:
          type: string
          description: Timestamp when the event was published
        audience:
          $ref: '#/components/schemas/WebhookAudience'
        payloadMetadata:
          $ref: '#/components/schemas/PayloadMetadata'
    TripDisabledInfo:
      title: TripDisabledInfo
      description: >-
        Information regarding whether the trip is disabled and if so, the reason
        why.
      type: object
      properties:
        disabledReason:
          $ref: '#/components/schemas/DisabledReason'
        isDisabled:
          type: boolean
          description: Indicates whether the trip is disabled or not.
          example: false
    TripEmailPreferences:
      title: TripEmailPreferences
      description: Email preferences for the trip
      type: object
      properties:
        bucketEmailPreferences:
          $ref: '#/components/schemas/BucketEmailPreferences'
    TripEventMetadata:
      title: TripEventMetadata
      description: Metadata associated with an event trip.
      type: object
      required:
        - eventId
      properties:
        eventId:
          type: string
          description: The event id.
          example: '123456789'
        rootEventId:
          type: string
          description: The root event id.
          example: '123456789'
        eventType:
          $ref: '#/components/schemas/EventType'
        associatedEventIds:
          type: array
          description: The associated event ids.
          items:
            type: string
            example: '123456789'
    TripFeeInfo:
      title: Trip Fee Info
      type: object
      description: Trip Fee Info
      required:
        - bookingFeeType
      properties:
        bookingFeeType:
          type: string
          example: TRIP_FEE
        calculatedAmount:
          $ref: '#/components/schemas/Money'
        chargeProcessorInfo:
          $ref: '#/components/schemas/ChargeProcessorInfo'
    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'
    TripPaymentInfo:
      title: TripPaymentInfo
      description: >-
        Payment info for a given trip. Fares of pending manual form and pending
        shell pnrs are not considered.
      type: object
      required:
        - totalFare
      properties:
        totalFare:
          $ref: '#/components/schemas/Money'
          description: >-
            It is net cost of the trip in form of money. It also includes
            service fee if visibleToTraveler is true. It does not include
            refunded amount if some bookings were cancelled and includes only
            net amount of trip. It does not include amount paid through flight
            credits.
        totalFareAmount:
          $ref: '#/components/schemas/FareAmount'
          description: >-
            It is Total cost of trip in form of FareAmount with base and tax. It
            does not include service fee.
        serviceFeeFareAmount:
          description: The service fees fare amount of this trip.
          $ref: '#/components/schemas/FareAmount'
    TripUsageMetadata:
      title: TripUsageMetadata
      description: Usage metadata associated with the trip entity.
      type: object
      required:
        - tripUsageType
      properties:
        tripUsageType:
          description: The trip usage type for the trip entity.
          $ref: '#/components/schemas/TripUsageType'
        eventMetadata:
          description: Metadata associated with the event if trip usage type is event.
          $ref: '#/components/schemas/TripEventMetadata'
    TripUsageType:
      title: TripUsageType
      description: Trip usage type.
      type: string
      enum:
        - STANDARD
        - EVENT
    TripV3DetailsResponse:
      title: TripDetailsResponse
      description: Trip Details Response for a given trip Id
      type: object
      required:
        - basicTripInfo
        - pnrs
      properties:
        basicTripInfo:
          $ref: '#/components/schemas/BasicTripInfo'
        pnrs:
          type: array
          items:
            $ref: '#/components/schemas/PnrDetailsResponseWithId'
        pendingShellPnrs:
          type: array
          items:
            $ref: '#/components/schemas/PnrDetailsResponseWithId'
        pendingManualFormPnrs:
          type: array
          items:
            $ref: '#/components/schemas/PnrDetailsResponseWithId'
        tripStatus:
          deprecated: true
          x-sunset: '2026-07-01'
          $ref: '#/components/schemas/PnrBookingStatus'
        tripBookingStatus:
          $ref: '#/components/schemas/UserFacingStatus'
        eventSummary:
          hidden: true
          $ref: '#/components/schemas/TravelerEventSummary'
        simplePnrs:
          type: array
          items:
            $ref: '#/components/schemas/SimplePnr'
        additionalInfo:
          $ref: '#/components/schemas/TripAdditionalInfo'
        tripPaymentInfo:
          $ref: '#/components/schemas/TripPaymentInfo'
    UAPassPlusMetadataExternal:
      type: object
      title: UAPassPlusMetadata
      description: Details for UAPassPlus Metadata.
      properties:
        uatpInfo:
          type: object
          title: uatpInfo
          description: UATP card information for UAPassPlus
    UAPassPlusMetadataWrapperExternal:
      type: object
      title: UAPassPlusMetadataResponseWrapper
      description: Wrapper for UAPassPlus response metadata
      required:
        - uaPassPlusMetadata
      properties:
        uaPassPlusMetadata:
          $ref: '#/components/schemas/UAPassPlusMetadataExternal'
    UnusedCreditExchangeInfo:
      type: object
      title: ExchangeInfo
      description: Exchange information for unused credits.
      properties:
        previousTicket:
          type: string
          description: Previous ticket number in case of exchanges.
    UnusedCreditFop:
      type: object
      title: UnusedCreditFop
      description: Form of payment information associated with an unused credit.
      properties:
        paymentMethod:
          $ref: '#/components/schemas/PaymentMethod'
          description: Payment method used for the original booking.
        paymentSourceType:
          $ref: '#/components/schemas/PaymentSourceType'
          description: Type of payment source used.
        card:
          $ref: '#/components/schemas/Card'
          description: Card information if the payment source type is a card.
    UnusedCreditFopCardAccessType:
      type: string
      description: The card access type of the FOP associated with the unused credit.
      enum:
        - CARD_ACCESS_CENTRAL
        - CARD_ACCESS_PERSONAL
        - CARD_ACCESS_CORPORATE
    UnusedCreditInfo:
      type: object
      title: UnusedCreditInfo
      description: Information regarding an unused credit.
      properties:
        sourcePnr:
          type: string
          description: >-
            PNR number corresponding to third party through which booking was
            made.
          example: MC5ONS
        spotnanaPnr:
          type: string
          description: Spotnana pnr ID.
          example: '2345678'
        ticketNumber:
          type: string
          description: >-
            Ticket number for the ticket that was converted into an unused
            credit.
          example: '5267779139217'
        airlineCode:
          type: string
          description: >-
            2 letter airline code of the airline associated with this unused
            credit.
          example: AA
        airlineInfo:
          description: Airline info with airline name and code
          $ref: '#/components/schemas/AirlineInfo'
        totalFare:
          description: Total airfare associated with the original ticket.
          $ref: '#/components/schemas/Money'
        issueDate:
          description: Issue date for the unused credit.
          $ref: '#/components/schemas/DateTimeOffset'
        expiryDate:
          description: Expiry date for the unused credit.
          $ref: '#/components/schemas/DateTimeOffset'
        usedDate:
          description: Date on which the unused credit was used.
          $ref: '#/components/schemas/DateTimeOffset'
        departureDate:
          description: >-
            Date for the departure of the first flight associated with the
            unused credit.
          $ref: '#/components/schemas/DateTimeOffset'
        segmentsAvailable:
          type: string
          description: Whether all segments are unused or some have already been used.
          enum:
            - UNKNOWN
            - ALL_OPEN
            - PARTIAL
            - OTHER
        passengerName:
          description: Name of the passenger associated with the credit.
          $ref: '#/components/schemas/Name'
        departureCountry:
          type: string
          description: >-
            3 letter country code of the departure country associated with the
            original ticket.
          example: USA
        arrivalCountry:
          type: string
          description: >-
            3 letter country code of the arrival country associated with the
            original ticket.
          example: USA
        ticketType:
          type: string
          description: Type of credit.
          enum:
            - TICKET_TYPE_UNKNOWN
            - ETICKET
            - MCO
            - NON_GDS
        pcc:
          type: string
          description: PCC the credit was issued on.
        status:
          $ref: '#/components/schemas/CreditStatus'
        source:
          $ref: '#/components/schemas/ThirdPartySource'
          default: SABRE
          description: Source of unused credit e.g. Sabre, NDC etc.
        tripId:
          type: string
          description: Trip ID that contains the unused credit
          example: '1234567'
        redeemVia:
          type: string
          description: >
            Credit redemption method. 

            If the value contains `CONTACT_AGENT`, then the agent must book the
            ticket and redeem the credits on behalf of the traveler.
          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
    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'
    UserProfile:
      type: object
      description: Traveler details.
      properties:
        id:
          type: string
          format: uuid
          example: b93dc51f-12dd-46c7-b7d6-1cb12cd3f5b3
        personalInfo:
          $ref: '#/components/schemas/UserPersonalInfo'
        businessInfo:
          $ref: '#/components/schemas/BusinessInfo'
        persona:
          $ref: '#/components/schemas/Persona'
        isActive:
          type: boolean
          description: Indicates if traveler is active.
          example: true
        tier:
          $ref: '#/components/schemas/Tier'
        stealthType:
          deprecated: true
          x-sunset: '2026-02-01'
          $ref: '#/components/schemas/StealthType'
        stealthMode:
          $ref: '#/components/schemas/StealthMode'
        relativeOf:
          deprecated: true
          x-sunset: '2026-07-01'
          $ref: '#/components/schemas/RelativeOf'
        travelPreferences:
          $ref: '#/components/schemas/TravelPreferences'
        membershipInfo:
          $ref: '#/components/schemas/MembershipInfo'
        notificationPreferences:
          $ref: '#/components/schemas/NotificationPreferences'
        travelArrangers:
          $ref: '#/components/schemas/UserTravelArrangers'
        adhocUserInfo:
          $ref: '#/components/schemas/AdhocUserInfo'
        externalId:
          type: string
          description: The partner-assigned user identifier.
        contractingTmcRef:
          $ref: '#/components/schemas/Reference'
          description: Contracting TMC for the user.
        bookingTmcRef:
          $ref: '#/components/schemas/Reference'
          description: Booking TMC for the user.
    UserProfileWithRelatedEntities:
      allOf:
        - $ref: '#/components/schemas/UserProfile'
      type: object
      title: UserProfileWithRelatedEntities
      description: Traveler details enriched with related entities like payment info
      required:
        - id
      properties:
        paymentInfos:
          type: array
          description: List of payment info
          items:
            $ref: '#/components/schemas/PaymentInfo'
    UserTitle:
      title: UserTitle
      type: string
      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
    UserTravelArrangers:
      type: object
      title: UserTravelArrangers
      description: Travel arrangers for a user.
      required:
        - travelArrangers
      properties:
        travelArrangers:
          type: array
          items:
            $ref: '#/components/schemas/TravelArrangerBasicInfo'
    VaccineAmenity:
      type: object
      title: VaccineAmenity
      description: Vaccine Amenity properties
      properties:
        displayText:
          type: string
          example: Vaccination facility available
        vaccineDescription:
          type: string
          description: chek
        vaccineAttrDescription:
          type: string
    VaccineAmenityWrapper:
      type: object
      title: VaccineAmenityWrapper
      properties:
        vaccineAmenity:
          $ref: '#/components/schemas/VaccineAmenity'
    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.
    VendorProgramPaymentMetadata2:
      type: object
      title: VendorProgramPaymentMetadata
      description: Metadata related to vendor program payment method
      oneOf:
        - $ref: '#/components/schemas/DirectBillingWrapper2'
        - $ref: '#/components/schemas/UAPassPlusMetadataWrapperExternal'
    VirtualCardInfo:
      type: object
      title: VirtualCardInfo
      description: >-
        Virtual card information like maximum deployment amount, valid date
        range.
      properties:
        amount:
          description: >-
            Virtual card deployment amount. This amount will drive the maximum
            authorisation value permitted on the virtual card.
          $ref: '#/components/schemas/Money'
        dateRange:
          description: Date range within which the virtual card can be charged.
          $ref: '#/components/schemas/DateRange'
    VirtualCardPaymentMetadata:
      title: VirtualCardPaymentMetadata
      type: object
      description: Metadata for Virtual Card.
      required:
        - vendorInfo
      properties:
        vendorInfo:
          $ref: '#/components/schemas/VirtualCardVendorInfo'
        cardInfo:
          $ref: '#/components/schemas/VirtualCardInfo'
        paymentInstructionId:
          type: string
          description: >-
            Payment instruction id set during addition of virtual card payment
            source
          example: 1eb8b778-f0a6-4037-865c-4580982fa36e
        shouldReveal:
          type: boolean
          description: >-
            Identifier for when to reveal virtual cards as they are revealed to
            travellers only 24hrs before check-in.
          example: false
    VirtualCardVendor:
      type: string
      description: Type of Virtual card vendor
      enum:
        - CONFERMA
      example: CONFERMA
    VirtualCardVendorInfo:
      type: object
      title: VirtualCardVendorInfo
      description: >-
        Virtual card related information like vendor, cardId, card-pool id of
        vendor etc.
      required:
        - vendorCardId
        - virtualCardVendorCardPoolId
      properties:
        vendor:
          $ref: '#/components/schemas/VirtualCardVendor'
        vendorCardId:
          type: string
          description: Virtual card id.
          example: '68793680'
        virtualCardVendorCardPoolId:
          type: string
          description: Card pool id of virtual card vendor.
          example: '51907'
        confermaInfo:
          $ref: '#/components/schemas/ConfermaInfo'
    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
    WebhookAudience:
      type: object
      description: Audience for whom this webhook payload is intended
      properties:
        organizationId:
          type: string
          description: Organization ID
        contractingTmcId:
          type: string
          description: Contracting TMC ID
        bookingTmcId:
          type: string
          description: Booking TMC ID
    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'
    PnrData_BasicTripInfoHidden:
      title: PnrData
      type: object
      description: >
        Pnr data with all information about a single booking containing one of
        Air, Hotel,

        Car, Rail, Limo or Miscellaneous PNR.
      properties:
        version:
          type: integer
          format: int32
          description: >
            Current PNR version. This field is used for handling conflicts in
            case of concurrent 

            updates. This should be sent unmodified in update request.
          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, 

            Service 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.
          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

            contact TMC support.
          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:
          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
            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:
              title: TripMetadata
              description: Metadata for the trip
              type: object
              properties:
                preferredCurrency:
                  type: string
                  description: The currency to be used for the trip.
                  example: USD
            stealthType:
              deprecated: true
              x-sunset: '2027-01-01'
              $ref: '#/components/schemas/StealthType'
x-webhooks:
  AGENT_TASK_DETAILS:
    post:
      responses:
        '200':
          description: OK
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AgentTaskDetails'
  TRAVELER_V2:
    post:
      responses:
        '200':
          description: OK
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TravelerV2'
  PNR_APPROVAL:
    post:
      responses:
        '200':
          description: OK
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PnrApproval'
  SERVICE_CHARGE:
    post:
      responses:
        '200':
          description: OK
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ServiceCharge1'
  PNR_V3:
    post:
      responses:
        '200':
          description: OK
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PnrV3'
  TRIP_DETAILS_V3:
    post:
      responses:
        '200':
          description: OK
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TripDetailsV3'
