openapi: 3.1.0
info:
  title: Event API
  version: v2
servers:
  - url: https://api-ext-sboxmeta.partners.spotnana.com
    description: Sandbox URL
security:
  - Bearer: []
components:
  securitySchemes:
    Bearer:
      type: http
      scheme: bearer
  responses:
    BadRequest:
      description: Bad request
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    Forbidden:
      description: Forbidden
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    NotFound:
      description: The specified resource was not found.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    Unauthorized:
      description: Unauthorized
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
  schemas:
    AccessType:
      type: string
      description: Access Type of the Payment Source being created.
      enum:
        - CENTRALISED
        - PERSONAL
        - APPLICATION
        - TMC
        - ITINERARY
        - EVENT
        - EVENT_TEMPLATE
      example: CENTRALISED
      x-ignoreBreakingChanges:
        - AccessType->EVENT_TEMPLATE
    AccessTypeAttributes:
      type: object
      title: AccessTypeAttributes
      description: Attributes applicable to the payment source for specific Access Type.
      properties:
        travelTypeFilter:
          $ref: '#/components/schemas/TravelTypeFilter'
    AddTravelersToEventRequest:
      title: AddTravelersToEventRequest
      description: Add travelers to an event request
      type: object
      properties:
        type:
          $ref: '#/components/schemas/EventType'
        userIds:
          type: array
          items:
            $ref: '#/components/schemas/UserId'
    AddTravelersToEventResponse:
      title: AddTravelersToEventResponse
      description: Add travelers to an event response
      type: object
      properties:
        addedUserIds:
          type: array
          items:
            $ref: '#/components/schemas/UserId'
    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'
    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
    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'
    AirBookingStatusFilter:
      type: object
      title: AirBookingStatusFilter
      description: Air Booking Status Filter
      required:
        - type
        - bookingStatus
      properties:
        type:
          type: string
          description: Type of filter
        bookingStatus:
          type: array
          description: Air Booking status
          items:
            $ref: '#/components/schemas/BookingStatusType'
    AirItinerary:
      type: object
      title: AirItinerary
      properties:
        airItineraryId:
          $ref: '#/components/schemas/AirItineraryId'
    AirItineraryId:
      type: object
      title: AirItineraryId
      description: Air itinerary id
      properties:
        ancillaryResponseId:
          type: string
          description: Ancillary response id
        seatMapResponseId:
          type: string
          description: Seat map response id
        initiateBookingResponseId:
          type: string
          description: Initiate Booking Response id.
    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'
    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
    Airline:
      title: Airline
      description: Airline Details
      type: object
      required:
        - carrierCode
        - airlineName
      properties:
        carrierCode:
          type: string
          description: Unique code for the Airline
          example: AA
        airlineName:
          type: string
          description: Full Name of the Airline
          example: American Airlines
        isPresentInPreferredVendors:
          type: boolean
          description: >-
            Whether the airline is present in preferred vendor list. This is an
            optional field which gets populated only in the preferred vendor
            autocomplete API.
          example: true
    AirlineInfo:
      title: AirlineInfo
      type: object
      required:
        - airlineCode
        - airlineName
      properties:
        airlineCode:
          type: string
          description: IATA code for airline.
          example: AA
        airlineName:
          type: string
          description: Airline name
          example: American Airlines
    AirlinePref:
      type: object
      title: AirlinePref
      description: Airline preferences.
      properties:
        airlines:
          type: array
          items:
            type: string
            example: Indigo
        flightType:
          type: string
          enum:
            - UNKNOWN_FLIGHT_TYPE
            - DOMESTIC
            - INTERNATIONAL
            - ALL
          example: DOMESTIC
    AirlineProgram:
      type: object
      title: AirlineProgram
      description: Descriptor for Airline program details.
      required:
        - airlineInfo
        - airlineProgramMetadata
      properties:
        airlineInfo:
          type: array
          description: Eligible airlines' information list.
          items:
            $ref: '#/components/schemas/Airline'
        airlineProgramMetadata:
          description: Airline program payment specific metadata.
          $ref: '#/components/schemas/AirlineProgramMetadata'
    AirlineProgramMetadata:
      type: object
      title: AirlineProgramMetadata
      oneOf:
        - $ref: '#/components/schemas/UATPMetadataWrapper'
        - $ref: '#/components/schemas/UAPassPlusMetadataWrapper'
        - $ref: '#/components/schemas/DinersTacMetadataWrapper'
      x-ignoreBreakingChanges:
        - AirlineProgramMetadata->DinersTacMetadataWrapper
    AirlineProgramWrapper:
      type: object
      title: AirlineProgramWrapper
      description: Wrapper for AirlineProgram
      properties:
        airlineProgram:
          $ref: '#/components/schemas/AirlineProgram'
    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'
    AllowTravelersPolicy:
      title: AllowTravelersPolicy
      description: Apply travelers policy when it is less restrictive.
      type: string
      enum:
        - ALLOWED
        - NOT_ALLOWED
    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
    AllowedPaymentConfig:
      type: array
      description: Allowed payment configuration for the event template
      items:
        $ref: '#/components/schemas/PaymentConfigForTravelType'
    AmadeusCheckout:
      type: object
      title: AmadeusCheckout
      required:
        - splitPaymentAllowed
      description: Metadata for Amadeus Checkout payment source.
      properties:
        paymentPageId:
          type: string
          example: aslkdjalwjd
          description: Payment page Id.
        splitPaymentAllowed:
          type: boolean
          example: true
          default: false
          description: >-
            True if split payment is allowed in Amadeus Checkout, false
            otherwise
        splitOptionsByCardCompany:
          type: array
          items:
            $ref: '#/components/schemas/SplitOptionByCardCompany'
    AmadeusCheckoutWrapper:
      type: object
      title: AmadeusCheckoutWrapper
      description: Wrapper for Amadeus Checkout payment source.
      required:
        - amadeusCheckout
      properties:
        amadeusCheckout:
          $ref: '#/components/schemas/AmadeusCheckout'
    AsyncJobDetailRequest:
      title: AsyncJobDetailRequest
      type: object
      required:
        - companyId
      properties:
        companyId:
          description: Company Id for which job was created.
          type: string
          example: c5977a9b-095a-40be-a1bb-b9d3c894e4a5
        filters:
          description: Filter to fetch the job details.
          $ref: '#/components/schemas/AsyncJobFilter'
    AsyncJobDetailResponse:
      title: AsyncJobDetailResponse
      type: object
      description: Response object which contain the async job detail.
      properties:
        jobId:
          type: string
          format: uuid
          description: Job Id for the async event job.
          example: f7b3b3b3-7b3b-4b3b-8b3b-3b3b3b3b3b3b
        referenceId:
          type: string
          description: Reference Id associated with the job.
          example: '8859676988'
        type:
          description: Job type.
          $ref: '#/components/schemas/EventJobType'
        status:
          description: Job status.
          $ref: '#/components/schemas/EventJobStatus'
        totalItems:
          type: integer
          description: Total number of items which are being processed by the job.
          example: 42
        successCount:
          type: integer
          description: Success item count.
          example: 41
        failureCount:
          type: integer
          description: Failure item count.
          example: 1
        jobItems:
          type: array
          description: Failed item array.
          items:
            $ref: '#/components/schemas/JobItem'
        createdAt:
          description: Created date time for an job.
          $ref: '#/components/schemas/DateTimeOffset'
        completedAt:
          description: Updated date time for an job.
          $ref: '#/components/schemas/DateTimeOffset'
    AsyncJobFilter:
      type: object
      title: AsyncJobFilter
      oneOf:
        - $ref: '#/components/schemas/JobIdFilter'
        - $ref: '#/components/schemas/ReferenceIdFilter'
      discriminator:
        propertyName: filterType
        mapping:
          JOB_ID_FILTER: '#/components/schemas/JobIdFilter'
          REFERENCE_ID_FILTER: '#/components/schemas/ReferenceIdFilter'
    BookingStatusType:
      title: BookingStatusType
      description: Booking status of the travel.
      type: string
      enum:
        - BOOKED
        - NOT_BOOKED
        - OPTED_OUT
      example: BOOKED
    BrexBudget:
      type: object
      title: BrexBudget
      description: Metadata for Brex Budget payment source.
      properties:
        budgetName:
          type: string
          example: Travel Budget
          description: Budget name.
        cardNumber:
          type: string
          example: '1234567812345678123'
          description: Card number of the budget.
        budgetRemainingBalanceFormatted:
          type: string
          example: $90,000.00
          description: Remaining balance of the budget formatted with currency.
    BrexBudgetWrapper:
      type: object
      title: BrexBudgetWrapper
      description: Wrapper for BrexBudget
      required:
        - brexBudget
      properties:
        brexBudget:
          $ref: '#/components/schemas/BrexBudget'
    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
    BulkCancelEventRequest:
      title: BulkCancelEventRequest
      type: object
      description: Request payload for bulk event cancellation.
      required:
        - cancelEventRequests
      properties:
        cancelAsync:
          type: boolean
          description: >-
            Flag to indicate if the cancellation should be processed
            asynchronously.
          default: false
          example: false
        cancelEventRequests:
          type: array
          description: List of events to be cancelled.
          items:
            $ref: '#/components/schemas/CancelEventRequest'
          minItems: 1
          maxItems: 100
    BulkCancelEventResponse:
      title: BulkCancelEventResponse
      type: object
      description: Response payload for the bulk event cancellation.
      required:
        - cancelEventResponses
      properties:
        cancelEventResponses:
          type: array
          description: List of events cancellation response.
          items:
            $ref: '#/components/schemas/CancelEventResponse'
    BulkDeleteEventRequest:
      title: BulkDeleteEventRequest
      type: object
      description: Request payload for bulk event deletion.
      required:
        - deleteEventList
      properties:
        deleteEventList:
          type: array
          description: List of events to be deleted.
          items:
            $ref: '#/components/schemas/DeleteEventRequest'
          minItems: 1
          maxItems: 100
    BulkDeleteEventResponse:
      title: BulkDeleteEventResponse
      type: object
      description: Response payload for the bulk event deletion.
      required:
        - deleteEventResponses
      properties:
        deleteEventResponses:
          type: array
          description: List of events delete response.
          items:
            $ref: '#/components/schemas/DeleteEventResponse'
    BulkPublishEventRequest:
      title: BulkPublishEventRequest
      type: object
      description: Request payload for bulk event publishing.
      required:
        - publishEventList
      properties:
        publishEventList:
          type: array
          description: List of events to be published.
          items:
            $ref: '#/components/schemas/PublishEventRequest'
          minItems: 1
          maxItems: 100
    BulkPublishResponse:
      title: BulkPublishResponse
      type: object
      description: Response payload for the bulk event publishing.
      required:
        - publishEventResponses
      properties:
        publishEventResponses:
          type: array
          description: List of events publish response.
          items:
            $ref: '#/components/schemas/PublishEventResponse'
    BulkUpdateEventsRequest:
      title: BulkUpdateEventsRequest
      description: Bulk update events info request object
      type: object
      properties:
        eventsToUpdate:
          type: array
          description: A list of events with the required updates
          items:
            $ref: '#/components/schemas/UpdateEventRequestItem'
          minItems: 1
          maxItems: 100
        updateAsync:
          type: boolean
          description: Whether to update the events asynchronously or not.
          default: false
          example: true
    BulkUpdateEventsResponse:
      title: BulkUpdateEventsResponse
      description: Bulk update events info response
      type: object
      required:
        - updateEventsResponse
      properties:
        updateEventsResponse:
          type: array
          description: List of events update response.
          items:
            $ref: '#/components/schemas/UpdateEventResponse'
    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
    CancelEventRequest:
      title: CancelEventRequest
      type: object
      description: Event details for cancellation.
      required:
        - eventId
        - type
      properties:
        eventId:
          type: string
          description: Unique identifier for the event.
          example: '56789012'
        type:
          $ref: '#/components/schemas/EventType'
    CancelEventResponse:
      title: CancelEventResponse
      type: object
      description: Event cancellation response details.
      required:
        - eventId
        - status
      properties:
        eventId:
          type: string
          description: Unique identifier for the event.
          example: '56789012'
        status:
          $ref: '#/components/schemas/OperationStatus'
        message:
          type: string
          description: Details about success or failure reason.
          example: Cancelled successfully
    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
    CarBookingStatusFilter:
      type: object
      title: CarBookingStatusFilter
      description: Car Booking Status Filter
      required:
        - type
        - bookingStatus
      properties:
        type:
          type: string
          description: Type of filter
        bookingStatus:
          type: array
          description: Car Booking status
          items:
            $ref: '#/components/schemas/BookingStatusType'
    CarItinerary:
      type: object
      title: CarItinerary
      properties:
        carItineraryId:
          $ref: '#/components/schemas/CarItineraryId'
    CarItineraryId:
      type: object
      title: CarItineraryId
      description: Car itinerary id
      required:
        - searchId
        - carId
      properties:
        searchId:
          type: string
          description: Search id
        carId:
          type: string
          description: Selected car option
    CarPaymentSourceMetadata:
      type: object
      title: CarPaymentSourceMetadata
      required:
        - travelType
      properties:
        travelType:
          type: string
          description: Travel Type for the metadata. For cars it's CAR.
        vendors:
          description: Vendors for which the payment source is applicable.
          type: array
          items:
            $ref: '#/components/schemas/CarVendorBasic'
    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'
    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
    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
    CarVendorBasic:
      type: object
      title: CarVendorBasic
      description: Car Vendor Basic Information
      required:
        - code
      properties:
        code:
          type: string
          description: Vendor code
          example: ZE
        name:
          type: string
          description: Vendor name
          example: HERTZ
    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
    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
    CardDescriptor:
      type: object
      title: CardMetadata
      description: Descriptor for card payment source.
      required:
        - card
      properties:
        card:
          $ref: '#/components/schemas/Card'
        isCentrallyBilled:
          type: boolean
          description: Whether card is centrally billed or not.
          default: false
        isLodgeCard:
          type: boolean
          description: Whether card is a lodge card or not.
          default: false
    CardDescriptorWrapper:
      type: object
      title: CardDescriptorWrapper
      description: Wrapper for CardDescriptor
      properties:
        cardDescriptor:
          $ref: '#/components/schemas/CardDescriptor'
    CardExpiry:
      title: CardExpiry
      type: object
      description: Contains the expiry of a Card.
      oneOf:
        - $ref: '#/components/schemas/TokenizedExpiryWrapper'
        - $ref: '#/components/schemas/ExpiryWrapper'
    CashDescriptor:
      type: object
      title: CashDescriptor
      description: Descriptor for Cash.
      required:
        - label
      properties:
        label:
          type: string
          description: Label for Cash payment.
          example: Cash Payment for Amex TLS
    CashDescriptorWrapper:
      type: object
      title: CashDescriptorWrapper
      description: Wrapper for Cash Payment Source.
      properties:
        cashDescriptor:
          $ref: '#/components/schemas/CashDescriptor'
    ChildEventCounts:
      title: ChildEventCounts
      description: >-
        Count of child PROGRAM_TRIP events for a PROGRAM_SESSION, broken down by
        status.
      type: object
      properties:
        total:
          type: integer
          description: Total number of child events.
          example: 10
        draft:
          type: integer
          description: Number of child events in draft status.
          example: 2
        upcoming:
          type: integer
          description: Number of upcoming child events.
          example: 5
        completed:
          type: integer
          description: Number of completed child events.
          example: 2
        cancelled:
          type: integer
          description: Number of cancelled child events.
          example: 1
    CoachPref:
      type: string
      description: The preference of coach.
      enum:
        - SMOKING
        - NON_SMOKING
        - PETS_ALLOWED
        - RESTAURANT
        - QUIET
      example: NON_SMOKING
    CompanyFilter:
      type: object
      title: CompanyFilter
      description: CompanyFilter details
      properties:
        companyIds:
          type: array
          description: Company id List
          deprecated: true
          x-sunset: '2026-07-01'
          items:
            $ref: '#/components/schemas/CompanyId'
        companyId:
          description: Company id
          $ref: '#/components/schemas/CompanyId'
    CompanyFilterWrapper:
      type: object
      title: CompanyFilterWrapper
      description: Wrapper for CompanyFilter
      properties:
        companyFilter:
          $ref: '#/components/schemas/CompanyFilter'
    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
    CompanyRoleInfo:
      type: object
      title: CompanyRoleInfo
      required:
        - companyRef
        - roleType
      properties:
        companyRef:
          $ref: '#/components/schemas/Reference'
        tmcRef:
          readOnly: true
          $ref: '#/components/schemas/Reference'
        roleType:
          type: string
          description: Role type for which company reference metadata is specified.
    CompanySpecifiedAttribute:
      type: object
      description: Company specified user arbitrary attribute.
      required:
        - fixedColumnName
        - value
      properties:
        fixedColumnName:
          type: string
          example: contingentType
        value:
          type: string
          example: FSTV
    CompanySpecifiedAttributeOverride:
      title: CompanySpecifiedAttributeOverride
      type: object
      description: Company specified attribute override for the event
      required:
        - behavior
        - attribute
      properties:
        behavior:
          $ref: '#/components/schemas/OverrideBehavior'
        attribute:
          $ref: '#/components/schemas/CompanySpecifiedUserAttribute'
    CompanySpecifiedUserAttribute:
      type: object
      description: Company specified user arbitrary attribute.
      required:
        - fixedColumnName
      properties:
        fixedColumnName:
          type: string
          example: contingentType
        value:
          type: string
          example: FSTV
    ConditionalRate:
      type: string
      title: ConditionalRate
      description: Conditional rate.
      enum:
        - MILITARY
        - AAA
        - GOVERNMENT
      example: AAA
    ConfermaMetadata:
      type: object
      title: Conferma
      description: conferma card descriptor.
      required:
        - cardPoolClientId
      properties:
        cardPoolClientId:
          type: string
          description: card pool client Id.
          example: test-id
        cardLabel:
          type: string
          description: Name/Label for visual identification of the card.
          example: cardCompany
        company:
          $ref: '#/components/schemas/CardCompany'
        paymentInstructionIds:
          type: array
          description: List of payment instruction ids
          deprecated: true
          x-sunset: '2026-07-01'
          items:
            $ref: '#/components/schemas/PaymentInstructionId'
        paymentInstruction:
          $ref: '#/components/schemas/PaymentInstructionConfig'
    ConfermaMetadataWrapper:
      type: object
      title: ConfermaMetadataWrapper
      description: Wrapper for ConfermaMetadata
      required:
        - confermaMetadata
      properties:
        confermaMetadata:
          $ref: '#/components/schemas/ConfermaMetadata'
    CostCenterFilter:
      type: object
      title: CostCenterFilter
      description: CostCenterFilter details.
      required:
        - costCenterIds
        - companyId
      properties:
        companyId:
          description: company id
          $ref: '#/components/schemas/CompanyId'
        costCenterIds:
          type: array
          description: List of cost center ids
          items:
            $ref: '#/components/schemas/CostCenterId'
    CostCenterFilterWrapper:
      type: object
      title: CostCenterFilterWrapper
      description: Wrapper for CostCenterFilter
      properties:
        costCenterFilter:
          $ref: '#/components/schemas/CostCenterFilter'
    CostCenterId:
      type: object
      title: Cost center id.
      required:
        - id
      properties:
        id:
          type: string
          example: 731ccbca-0415-6fe1-d235-c324dfbe7423
    CostCenterOverride:
      title: CostCenterOverride
      type: object
      description: Cost center override for the event
      required:
        - behavior
      properties:
        behavior:
          $ref: '#/components/schemas/OverrideBehavior'
        costCenterRef:
          $ref: '#/components/schemas/Reference'
    CountryFilter:
      type: object
      title: CountryFilter
      description: CountryFilter details.
      required:
        - companyId
        - countryCodes
      properties:
        countryCodes:
          type: array
          description: country Codes List
          items:
            description: ISO 2-letter country code
            type: string
            example: IN
        companyId:
          description: The company Id for the filter.
          $ref: '#/components/schemas/CompanyId'
    CountryFilterWrapper:
      type: object
      title: CountryFilterWrapper
      description: Wrapper for CountryFilter
      properties:
        countryFilter:
          $ref: '#/components/schemas/CountryFilter'
    CreateEventRequest:
      title: CreateEventRequest
      description: Create Event request object
      type: object
      required:
        - name
        - location
      x-ignoreBreakingChanges:
        - EventApi.yaml->CreateEventRequest->eventcustomFieldV3Responses
        - CreateEventRequest->eventCustomFieldV3Responses
        - EventApi.yaml->CustomFieldV3Response
      properties:
        name:
          type: string
          description: Name of the event
        description:
          type: string
          description: Description of the event
        documents:
          type: array
          description: Documents attached for an event
          items:
            $ref: '#/components/schemas/Document'
        startDateTime:
          $ref: '#/components/schemas/DateTimeLocal'
        endDateTime:
          $ref: '#/components/schemas/DateTimeLocal'
        location:
          $ref: '#/components/schemas/EventLocation'
        contacts:
          type: array
          description: Contacts for the event
          items:
            $ref: '#/components/schemas/UserId'
        bookingGuidelines:
          type: array
          description: A list of booking guideline for the event.
          items:
            $ref: '#/components/schemas/EventBookingGuideline'
        allowedBookingTypes:
          type: array
          description: Allowed booking types for the event group
          items:
            $ref: '#/components/schemas/EventAllowedBookingType'
        externalId:
          type: string
          description: External Id for the event
          example: qwert123
        eventCustomFieldResponses:
          deprecated: true
          x-sunset: '2026-07-01'
          type: array
          description: List of custom field responses for the event.
          items:
            $ref: '#/components/schemas/CustomFieldResponse'
        eventCustomFieldV3Responses:
          type: array
          description: List of custom field responses for an event.
          items:
            $ref: '#/components/schemas/CustomFieldPrefilledResponse'
        parentEventId:
          type: string
          description: Optional parent event's id.
          example: '56789012'
        companyId:
          description: Company id
          $ref: '#/components/schemas/CompanyId'
        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'
        referenceUsers:
          type: array
          description: Event group reference user ids
          items:
            $ref: '#/components/schemas/UserId'
        travelerTypes:
          type: array
          description: Allowed traveler types for the event
          items:
            $ref: '#/components/schemas/Persona'
        policyId:
          type: string
          format: uuid
          description: Policy associated with the event.
          example: f7b3b3b3-7b3b-4b3b-8b3b-3b3b3b3b3b3b
        travellers:
          type: array
          description: Travellers associated with the event
          items:
            $ref: '#/components/schemas/UserId'
          minItems: 0
          maxItems: 1000
        type:
          $ref: '#/components/schemas/EventType'
        allowTravelersPolicy:
          $ref: '#/components/schemas/AllowTravelersPolicy'
        emailPreferences:
          $ref: '#/components/schemas/BucketEmailPreferences'
        internalNotes:
          type: string
          description: Internal notes of the event
          example: Use travelers default as payment method.
        allowTravelersToRsvp:
          $ref: '#/components/schemas/AllowTravelersToRsvp'
        tripOverrides:
          $ref: '#/components/schemas/TripOverrides'
        tripContacts:
          type: array
          description: >-
            Trip contacts for the event. These are passed through to created
            trips.
          items:
            $ref: '#/components/schemas/TripContact'
        inheritedCustomFieldIds:
          type: array
          description: List of custom field IDs that were inherited from parent
          items:
            type: string
            format: uuid
            example: f7b3b3b3-7b3b-4b3b-8b3b-3b3b3b3b3b3b
        inviteEmailConfig:
          $ref: '#/components/schemas/InviteEmailConfig'
        useHiddenTemplate:
          type: boolean
          description: >-
            When true, the backend resolves the active hidden template for the
            company and uses it as the parent event. Mutually exclusive with
            parentEventId.
          default: false
        newTraveler:
          description: >
            Optional new traveler to create before event creation. The backend
            creates the traveler and adds the userId to the travellers list. If
            the traveler already exists, the request fails — use the travellers
            field with the existing userId.
          $ref: '#/components/schemas/UserCreateRequest'
    CreateEventResponse:
      title: CreateEventResponse
      description: Response for create event
      type: object
      required:
        - id
      properties:
        id:
          type: string
          description: Id of the created event
        userId:
          description: Id of the newly created user, if a new traveler was created
          $ref: '#/components/schemas/UserId'
    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
    CustomFieldId:
      type: object
      title: CustomFieldId
      description: The custom field type and the id associated with it.
      required:
        - type
        - externalId
      properties:
        type:
          $ref: '#/components/schemas/CustomFieldType'
        externalId:
          type: string
          description: Meeting id or budget id based on custom field type.
    CustomFieldPrefilledResponse:
      type: object
      title: CustomFieldPrefilledResponse
      description: Custom field prefilled 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
        readOnly:
          type: boolean
          description: Indicates whether the user can change the pre-selected options.
          default: false
          example: true
        hidden:
          type: boolean
          description: Whether this code will be hidden to the user.
          example: true
          default: false
        selectedOptions:
          type: array
          description: The list of options that are selected by user or auto populated.
          items:
            $ref: '#/components/schemas/CustomFieldSelectedOption'
    CustomFieldResponse:
      title: CustomFieldResponse
      type: object
      deprecated: true
      x-sunset: '2026-07-01'
      description: Custom field responses as selected by the event coordinator.
      required:
        - customFieldId
        - travelerAccess
      properties:
        customFieldId:
          type: string
          format: uuid
          description: The unique identifier for the custom field.
          example: f49d00fe-1eda-4304-ba79-a980f565281d
        responseItems:
          type: array
          description: Responses selected by the event coordinator.
          items:
            $ref: '#/components/schemas/CustomFieldResponseItem'
        travelerAccess:
          description: Traveler access for the given custom field.
          $ref: '#/components/schemas/CustomFieldTravelerAccess'
    CustomFieldResponseItem:
      type: object
      title: CustomFieldResponseItem
      description: The response selected for the given custom field.
      required:
        - response
      properties:
        response:
          type: string
          description: >-
            The response of the custom field. It can be a text input from the
            user or a custom field code if the input is from a radio button or
            checkbox.
          example: Leisure travel
        additionalInput:
          type: string
          description: >-
            This contains additional input to the above response. It will only
            be used for checkbox with percentage and will contain the percentage
            value.
          example: '20'
    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'
    CustomFieldTravelerAccess:
      title: CustomFieldTravelerAccess
      description: Traveler access for a custom field
      type: string
      enum:
        - HIDDEN
        - READ_ACCESS
        - WRITE_ACCESS
      example: HIDDEN
    CustomFieldType:
      type: string
      description: The type of custom field.
      enum:
        - QUESTION
        - MEETING
        - BUDGET
        - BREX_TOKEN
      default: QUESTION
    CustomPaymentMethodDescriptor:
      type: object
      title: CustomPaymentMethodDescriptor
      description: Metadata for Custom Payment Method payment source.
      oneOf:
        - $ref: '#/components/schemas/BrexBudgetWrapper'
        - $ref: '#/components/schemas/AmadeusCheckoutWrapper'
        - $ref: '#/components/schemas/QantasTravelFundWrapper'
        - $ref: '#/components/schemas/DpanWrapper'
        - $ref: '#/components/schemas/VirtualPaymentMetadataWrapper'
        - $ref: '#/components/schemas/FlightPassWrapper'
        - $ref: '#/components/schemas/NoPrepaymentWrapper'
      x-ignoreBreakingChanges:
        - CustomPaymentMethodDescriptor->NoPrepaymentWrapper
    CustomPaymentMethodDescriptorWrapper:
      type: object
      title: CustomPaymentMethodDescriptorWrapper
      description: Wrapper for CustomPaymentMethodDescriptor
      properties:
        customPaymentMethodDescriptor:
          $ref: '#/components/schemas/CustomPaymentMethodDescriptor'
    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'
    DateTimeLocal:
      title: DateTimeLocal
      description: Local date and time in ISO 8601 format.
      type: object
      required:
        - iso8601
      properties:
        iso8601:
          type: string
          pattern: >-
            ^\d{4}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])T([01][0-9]|2[0-4]):([0-5][0-9])(:([0-5][0-9]))?$
          example: 2017-07-21T17:32
    DateTimeOffset:
      title: DateTimeOffset
      description: ISO8601 UTC Date Time
      type: object
      required:
        - iso8601
      properties:
        iso8601:
          type: string
          pattern: >-
            ^\d{4}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])T([01][0-9]|2[0-4]):([0-5][0-9])(:([0-5][0-9]))?(Z|([+-](0[0-9]|1[0-4]):([0-5][0-9])))$
          example: 2017-07-21T17:32Z
    DateTimeRange:
      type: object
      properties:
        min:
          $ref: '#/components/schemas/DateTimeLocal'
          description: Minimum value - inclusive.
        max:
          $ref: '#/components/schemas/DateTimeLocal'
          description: Maximum value - inclusive.
    DeckLevel:
      type: string
      description: The deck level of the rail.
      enum:
        - UPPER_DECK
        - LOWER_DECK
      example: UPPER_DECK
    DelayedInvoicingDescriptor:
      type: object
      title: DelayedInvoicingDescriptor
      description: Descriptor for delayed invoicing.
      required:
        - label
      properties:
        label:
          type: string
          description: Label for delayed invoicing payment method
          example: Delayed Invoicing for India LE
    DelayedInvoicingDescriptorWrapper:
      type: object
      title: DelayedInvoicingDescriptorWrapper
      description: Wrapper for DelayedInvoicing.
      properties:
        delayedInvoicingDescriptor:
          $ref: '#/components/schemas/DelayedInvoicingDescriptor'
    DeleteEventRequest:
      title: DeleteEventRequest
      type: object
      description: Event details for publishing.
      required:
        - id
      properties:
        id:
          type: string
          description: Unique identifier for the event.
          example: '56789012'
        type:
          $ref: '#/components/schemas/EventType'
    DeleteEventResponse:
      title: DeleteEventResponse
      type: object
      description: Event deletion response details.
      required:
        - id
        - status
      properties:
        id:
          type: string
          description: Unique identifier for the event.
          example: '56789012'
        status:
          $ref: '#/components/schemas/OperationStatus'
        message:
          type: string
          description: Details about success or failure reason.
          example: Deleted successfully
    DepartmentFilterWrapper:
      type: object
      title: DepartmentFilterWrapper
      description: Wrapper for DepartmentFilter
      properties:
        departmentFilter:
          $ref: '#/components/schemas/PaymentSourceDepartmentFilter'
    DepartmentId:
      type: object
      title: DepartmentId
      description: Department id.
      required:
        - id
      properties:
        id:
          type: string
          example: 631ccbcf-9414-5fe0-c234-b324dfbe7422
    DepartmentOverride:
      title: DepartmentOverride
      type: object
      description: Department override for the event
      required:
        - behavior
      properties:
        behavior:
          $ref: '#/components/schemas/OverrideBehavior'
        departmentRef:
          $ref: '#/components/schemas/Reference'
    Dimensions:
      type: object
      title: Dimensions
      description: Image dimensions ie width and height.
      properties:
        height:
          type: integer
          format: int32
          example: 120
        width:
          type: integer
          format: int32
          example: 240
    DinersTacMetadata:
      type: object
      title: DinersTacMetadata
      description: Details for Diners TAC Metadata.
      required:
        - card
      properties:
        card:
          $ref: '#/components/schemas/Card'
    DinersTacMetadataWrapper:
      type: object
      title: DinersTacMetadataWrapper
      description: Wrapper for DinersTac Metadata.
      properties:
        dinersTacMetadata:
          $ref: '#/components/schemas/DinersTacMetadata'
    DirectBilling:
      type: object
      title: DirectBilling
      description: Descriptor for direct billing details.
      properties:
        directBillingCode:
          type: string
          description: Direct billing code provided by the vendor.
        corporateDiscountCode:
          type: string
          deprecated: true
          x-sunset: '2026-07-01'
          description: Corporate discount code provided by the vendor.
        label:
          type: string
          description: Label for the Direct Billing Payment method.
    DirectBillingWrapper:
      type: object
      title: DirectBillingWrapper
      description: Wrapper for DirectBilling
      properties:
        directBilling:
          $ref: '#/components/schemas/DirectBilling'
    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
    DpanMetadata:
      type: object
      title: DpanMetadata
      required:
        - label
      description: Metadata for DPAN payment source.
      properties:
        label:
          type: string
          example: AMEX-DPAN
          description: Label for DPAN payment source.
    DpanWrapper:
      type: object
      title: DpanWrapper
      description: Wrapper for Dpan Payment Source.
      required:
        - dpanMetadata
      properties:
        dpanMetadata:
          $ref: '#/components/schemas/DpanMetadata'
    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
    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
    EntityId:
      type: object
      description: Identifier of an object
      required:
        - id
      properties:
        id:
          type: string
          format: uuid
          example: b93dc51f-12dd-46c7-b7d6-1cb12cd3f5b3
    EntityMetadata:
      title: EntityMetadata
      description: Metadata for associated entity of document.
      type: object
      oneOf:
        - $ref: '#/components/schemas/PnrMetadataWrapper'
        - $ref: '#/components/schemas/EventMetadataWrapper'
    EntityNonUUIDId:
      type: object
      description: Identifier of a non uuid object
      properties:
        id:
          type: string
    EntityType:
      title: EntityType
      description: Entity type against which the document is to uploaded.
      type: string
      enum:
        - PNR
        - COMPANY
        - AIR_ITINERARY
        - EVENT
        - LOCATION_IMAGE
        - AIR_COMMISSION_CONTRACT
      example: PNR
      x-ignoreBreakingChanges:
        - EntityType->TRIP
        - EntityType->TICKETING_ERROR
    ErrorParameter:
      type: object
      title: ErrorParameter
      description: Error parameter
      properties:
        name:
          type: string
          description: Parameter name
        value:
          type: string
          description: Parameter value
    ErrorResponse:
      type: object
      properties:
        debugIdentifier:
          type: string
          description: Link to debug the error internally.
        errorMessages:
          type: array
          items:
            type: object
            properties:
              errorCode:
                type: string
                description: Error code to identify the specific errors.
              message:
                type: string
                description: Message containing details of error.
              errorParameters:
                type: array
                description: Error message parameters.
                items:
                  $ref: '#/components/schemas/ErrorParameter'
              errorDetail:
                type: string
                description: More details about the error.
    Event:
      title: Event
      description: Event details
      type: object
      x-ignoreBreakingChanges:
        - EventApi.yaml->CustomFieldV3Response
        - Event->customFieldV3Responses
      properties:
        id:
          type: string
          description: Event ID
        name:
          type: string
          description: Name of the event
        type:
          description: Event Type
          $ref: '#/components/schemas/EventType'
        description:
          type: string
          description: Description of the event
        startDateTime:
          $ref: '#/components/schemas/DateTimeLocal'
        endDateTime:
          $ref: '#/components/schemas/DateTimeLocal'
        location:
          $ref: '#/components/schemas/EventLocation'
        group:
          $ref: '#/components/schemas/EventGroup'
        status:
          $ref: '#/components/schemas/EventStatus'
        companyId:
          $ref: '#/components/schemas/EntityId'
        runningStatus:
          $ref: '#/components/schemas/EventRunningStatus'
        paymentSources:
          type: array
          description: List of payment sources
          items:
            $ref: '#/components/schemas/PaymentSourceInfo'
        numTravelers:
          type: integer
          description: Number of active travelers in the event
          example: 1
        customFieldResponses:
          deprecated: true
          x-sunset: '2026-07-01'
          type: array
          description: Preselected custom field responses for the event.
          items:
            $ref: '#/components/schemas/CustomFieldResponse'
        customFieldV3Responses:
          type: array
          description: List of custom field responses for an event.
          items:
            $ref: '#/components/schemas/CustomFieldPrefilledResponse'
        externalId:
          type: string
          description: External Id for the event
          example: qwert123
        policyId:
          type: string
          format: uuid
          description: Policy associated with the event.
          example: f7b3b3b3-7b3b-4b3b-8b3b-3b3b3b3b3b3b
        parentEventId:
          type: string
          description: Optional parent event's id.
          example: '56789012'
        isDetached:
          type: boolean
          description: Whether the event is detached from the parent event or not.
          example: true
        aggregateStartDateTime:
          description: >-
            Aggregate start date time of the event, applicable for program
            session events.
          $ref: '#/components/schemas/DateTimeLocal'
        aggregateEndDateTime:
          description: >-
            Aggregate end date time of the event, applicable for program session
            events.
          $ref: '#/components/schemas/DateTimeLocal'
        childEventCounts:
          description: >-
            Count of child events (PROGRAM_TRIP) grouped by status. Only
            populated for PROGRAM_SESSION events.
          $ref: '#/components/schemas/ChildEventCounts'
    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'
    EventCompanyFilter:
      type: object
      title: EventCompanyFilter
      description: Event company filter details
      properties:
        companyId:
          description: Company id
          $ref: '#/components/schemas/CompanyId'
    EventCompanyFilterWrapper:
      type: object
      title: EventCompanyFilterWrapper
      description: Wrapper for EventCompanyFilter
      properties:
        companyFilter:
          $ref: '#/components/schemas/EventCompanyFilter'
    EventCustomFieldResponsesRequest:
      title: EventCustomFieldResponsesRequest
      type: object
      description: Request for updating custom field responses for an event
      x-ignoreBreakingChanges:
        - EventApi.yaml->CustomFieldV3Response
        - EventCustomFieldResponsesRequest->customFieldV3Responses
      properties:
        eventCustomFieldResponses:
          deprecated: true
          x-sunset: '2026-07-01'
          type: array
          description: List of custom field responses for an event.
          items:
            $ref: '#/components/schemas/CustomFieldResponse'
          x-optionalFrom: '2025-05-06'
        customFieldV3Responses:
          type: array
          description: List of custom field responses for an event.
          items:
            $ref: '#/components/schemas/CustomFieldPrefilledResponse'
    EventDateRangeFilter:
      type: object
      title: EventDateRangeFilter
      description: Event date range filter
      properties:
        eventDateRange:
          description: Event date range
          $ref: '#/components/schemas/DateTimeRange'
    EventDateRangeFilterWrapper:
      type: object
      title: EventDateRangeFilterWrapper
      description: Wrapper for EventDateRangeFilter
      properties:
        eventDateRangeFilter:
          $ref: '#/components/schemas/EventDateRangeFilter'
    EventDetachedFilter:
      type: object
      title: EventDetachedFilter
      description: Event detached filter details
      required:
        - isDetached
      properties:
        isDetached:
          type: boolean
          description: >-
            Filter events based on whether they are detached from parent event
            or not.
          example: true
    EventDetachedFilterWrapper:
      type: object
      title: EventDetachedFilterWrapper
      description: Wrapper for EventDetachedFilter
      properties:
        eventDetachedFilter:
          $ref: '#/components/schemas/EventDetachedFilter'
    EventEndDateRangeFilter:
      type: object
      title: EventEndDateRangeFilter
      description: Event end date range filter
      properties:
        eventEndDateRange:
          description: Event end date range
          $ref: '#/components/schemas/DateTimeRange'
    EventEndDateRangeFilterWrapper:
      type: object
      title: EventEndDateRangeFilterWrapper
      description: Wrapper for EventEndDateRangeFilter
      properties:
        eventEndDateRangeFilter:
          $ref: '#/components/schemas/EventEndDateRangeFilter'
    EventEntityMetadata:
      title: EventEntityMetadata
      description: Metadata when document is associated to an event.
      type: object
      properties:
        address:
          $ref: '#/components/schemas/PostalAddress'
    EventFilter:
      title: EventFilter
      type: object
      description: Event filter
      x-ignoreBreakingChanges:
        - EventApi.yaml->EventFilter->EventDetachedFilterWrapper
        - EventFilter->EventDetachedFilterWrapper
      oneOf:
        - $ref: '#/components/schemas/EventUserFilterWrapper'
        - $ref: '#/components/schemas/EventStatusFilterWrapper'
        - $ref: '#/components/schemas/EventNameFilterWrapper'
        - $ref: '#/components/schemas/EventDateRangeFilterWrapper'
        - $ref: '#/components/schemas/EventCompanyFilterWrapper'
        - $ref: '#/components/schemas/EventParentFilterWrapper'
        - $ref: '#/components/schemas/EventTypeFilterWrapper'
        - $ref: '#/components/schemas/EventIdFilterWrapper'
        - $ref: '#/components/schemas/EventDetachedFilterWrapper'
        - $ref: '#/components/schemas/EventEndDateRangeFilterWrapper'
    EventGroup:
      title: EventGroup
      description: Group of users for the event
      type: object
      properties:
        id:
          type: string
          description: Event Group ID
          format: uuid
          example: f49d00fe-1eda-4304-ba79-a980f565281d
        name:
          type: string
          description: Name of the event group
        description:
          type: string
          description: Description of the event group
        bookingGuidelines:
          description: A list of BookingGuideline for event group
          type: array
          items:
            $ref: '#/components/schemas/EventBookingGuideline'
        metadata:
          $ref: '#/components/schemas/EventGroupMetadata'
        group:
          $ref: '#/components/schemas/UserTripGroup'
        createdBy:
          $ref: '#/components/schemas/UserId'
        allowedBookingTypes:
          type: array
          description: Allowed booking types for the event group
          items:
            $ref: '#/components/schemas/EventAllowedBookingType'
        eventUserRsvpList:
          type: array
          description: List of user rsvp responses for the event group
          items:
            $ref: '#/components/schemas/EventUserRsvp'
        allowedPaymentConfig:
          $ref: '#/components/schemas/AllowedPaymentConfig'
    EventGroupMetadata:
      title: EventGroupMetadata
      description: Metadata for event group
      type: object
      properties:
        contacts:
          type: array
          description: Event group contacts
          items:
            $ref: '#/components/schemas/UserId'
        documents:
          type: array
          description: Documents attached for an event group
          items:
            $ref: '#/components/schemas/Document'
        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'
        referenceUsers:
          type: array
          description: Event group reference user ids
          items:
            $ref: '#/components/schemas/UserId'
        internalNotes:
          type: string
          description: Internal notes of the event
        travelerTypes:
          type: array
          description: Allowed traveler types for the event
          items:
            $ref: '#/components/schemas/Persona'
        allowTravelersPolicy:
          $ref: '#/components/schemas/AllowTravelersPolicy'
        emailPreferences:
          $ref: '#/components/schemas/BucketEmailPreferences'
        allowTravelersToRsvp:
          $ref: '#/components/schemas/AllowTravelersToRsvp'
        tripOverrides:
          $ref: '#/components/schemas/TripOverrides'
        tripContacts:
          type: array
          description: >-
            Trip contacts for the event. These are passed through to created
            trips.
          items:
            $ref: '#/components/schemas/TripContact'
        inheritedCustomFieldIds:
          type: array
          description: List of custom field IDs that were inherited from parent
          items:
            type: string
            format: uuid
            example: f7b3b3b3-7b3b-4b3b-8b3b-3b3b3b3b3b3b
        inviteEmailConfig:
          $ref: '#/components/schemas/InviteEmailConfig'
    EventIdFilter:
      type: object
      title: EventIdFilter
      description: Event ID filter details
      required:
        - eventIdList
      properties:
        eventIdList:
          type: array
          description: A list of event IDs.
          items:
            type: string
    EventIdFilterWrapper:
      type: object
      title: EventIdFilterWrapper
      description: Wrapper for EventIdFilter
      properties:
        eventIdFilter:
          $ref: '#/components/schemas/EventIdFilter'
    EventJobItemStatus:
      title: EventItemJobStatus
      description: Event job item status enum.
      type: string
      enum:
        - SUCCESS
        - FAILED
      example: SUCCESS
    EventJobStatus:
      title: EventJobStatus
      description: Event job status enum.
      type: string
      enum:
        - IN PROGRESS
        - COMPLETED
      example: COMPLETED
    EventJobType:
      title: EventJobType
      description: Event job type enum.
      type: string
      enum:
        - PUBLISH
        - MODIFY
        - CANCEL
        - SEND_INVITE
      example: PUBLISH
      x-ignoreBreakingChanges:
        - EventJobType->SEND_INVITE
    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'
    EventNameFilter:
      type: string
      title: EventNameFilter
      description: Event name filter
      example: Jaipur Offsite
    EventNameFilterWrapper:
      type: object
      title: EventNameFilterWrapper
      description: Wrapper for EventNameFilter
      properties:
        eventNameFilter:
          $ref: '#/components/schemas/EventNameFilter'
    EventParentFilter:
      type: object
      title: EventParentFilter
      description: Event parent filter details
      required:
        - parentEventId
      properties:
        parentEventId:
          type: string
          description: Parent event's id.
          example: '56789012'
    EventParentFilterWrapper:
      type: object
      title: EventParentFilterWrapper
      description: Wrapper for EventParentFilter
      properties:
        eventParentFilter:
          $ref: '#/components/schemas/EventParentFilter'
    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
    EventStatusFilter:
      type: array
      title: EventStatusFilter
      description: Event status filter
      items:
        $ref: '#/components/schemas/EventStatus'
    EventStatusFilterWrapper:
      type: object
      title: EventStatusFilterWrapper
      description: Wrapper for EventStatusFilter
      properties:
        eventStatusFilter:
          $ref: '#/components/schemas/EventStatusFilter'
    EventTemplateFilterWrapper:
      type: object
      title: EventTemplateFilterWrapper
      description: Wrapper for EventTemplateFilter
      properties:
        eventTemplateFilter:
          $ref: '#/components/schemas/PaymentEventFilter'
    EventTravelerFilter:
      title: EventTravelerFilter
      type: object
      description: Event traveler filter
      discriminator:
        propertyName: type
        mapping:
          TRAVELER_SEARCH_FILTER: '#/components/schemas/TravelerSearchFilter'
          INVITATION_STATUS_FILTER: '#/components/schemas/InvitationStatusFilter'
          AIR_BOOKING_STATUS_FILTER: '#/components/schemas/AirBookingStatusFilter'
          RAIL_BOOKING_STATUS_FILTER: '#/components/schemas/RailBookingStatusFilter'
          CAR_BOOKING_STATUS_FILTER: '#/components/schemas/CarBookingStatusFilter'
          HOTEL_BOOKING_STATUS_FILTER: '#/components/schemas/HotelBookingStatusFilter'
      oneOf:
        - $ref: '#/components/schemas/TravelerSearchFilter'
        - $ref: '#/components/schemas/InvitationStatusFilter'
        - $ref: '#/components/schemas/AirBookingStatusFilter'
        - $ref: '#/components/schemas/RailBookingStatusFilter'
        - $ref: '#/components/schemas/CarBookingStatusFilter'
        - $ref: '#/components/schemas/HotelBookingStatusFilter'
    EventTravelersRequest:
      type: object
      description: List of event travelers request
      properties:
        offset:
          type: integer
          description: >-
            Indicates from where in the list of travelers the server should
            start.
          default: 0
          minimum: 0
          example: 2
        limit:
          type: integer
          description: Maximum number of results to be fetched for the query.
          default: 10
          minimum: 0
          maximum: 100
          example: 2
        type:
          $ref: '#/components/schemas/EventType'
        filters:
          type: array
          description: Filters for event travelers
          items:
            $ref: '#/components/schemas/EventTravelerFilter'
    EventTravelersResponse:
      title: EventTravelersResponse
      description: List of travelers response
      type: object
      properties:
        travelerEventInfos:
          type: array
          description: List of user rsvp responses & trip details
          items:
            $ref: '#/components/schemas/TravelerEventInfo'
        userGroupInfo:
          description: Details about group's users
          $ref: '#/components/schemas/UserGroupInfo'
        paginationParams:
          description: Total number of active travelers in the event
          $ref: '#/components/schemas/OffsetBasedPaginationResponseParams'
    EventType:
      title: EventType
      description: Type of an event
      type: string
      enum:
        - GENERIC
        - PROGRAM
        - PROGRAM_SESSION
        - PROGRAM_TRIP
      example: GENERIC
    EventTypeFilter:
      type: object
      title: EventTypeFilter
      description: >-
        Event type filter details. Currently, we cannot combine PROGRAM_TRIP,
        PROGRAM_SESSION and PROGRAM in this filter.
      properties:
        types:
          type: array
          title: EventType
          items:
            $ref: '#/components/schemas/EventType'
    EventTypeFilterWrapper:
      type: object
      title: EventTypeFilterWrapper
      description: Wrapper for EventTypeFilter
      properties:
        eventTypeFilter:
          $ref: '#/components/schemas/EventTypeFilter'
    EventUserFilter:
      type: object
      title: EventUserFilter
      description: Event user filter details
      properties:
        userId:
          description: User id
          $ref: '#/components/schemas/UserId'
    EventUserFilterWrapper:
      type: object
      title: EventUserFilterWrapper
      description: Wrapper for EventUserFilter
      properties:
        userFilter:
          $ref: '#/components/schemas/EventUserFilter'
    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'
    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'
    FarePref:
      type: object
      title: FarePref
      description: Fare preferences.
      required:
        - fareTypes
      properties:
        fareTypes:
          type: array
          items:
            type: string
            enum:
              - UNKNOWN_TYPE
              - CHANGEABLE
              - REFUNDABLE
            example: CHANGEABLE
    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'
    FlightPassMetadata:
      type: object
      title: FlightPassMetadata
      required:
        - label
      description: Metadata for FlightPass payment source.
      properties:
        label:
          type: string
          example: Air Canada Flight Pass
          description: Label for FlightPass payment source.
    FlightPassPaymentAmounts:
      type: object
      title: FlightPassPaymentAmounts
      description: Fare breakdown for the flight pass booking.
      properties:
        totalAmount:
          description: Total value (base + taxes).
          $ref: '#/components/schemas/Money'
        baseAmount:
          description: Base fare excluding taxes.
          $ref: '#/components/schemas/Money'
        totalTaxes:
          description: Sum of all taxes, fees, and charges.
          $ref: '#/components/schemas/Money'
        taxBreakdown:
          type: array
          description: Breakdown of taxes by code (e.g. GST_HST, QST, OTHER).
          items:
            $ref: '#/components/schemas/FlightPassTax'
    FlightPassPaymentMetadata:
      type: object
      title: FlightPassPaymentMetadata
      description: Metadata specific to Flight Pass payment method in OtherCoinage.
      properties:
        flightPassNumber:
          type: string
          description: Flight pass number
          example: FP123456789
        flightPassAmounts:
          $ref: '#/components/schemas/FlightPassPaymentAmounts'
    FlightPassPaymentMetadataWrapper:
      type: object
      title: FlightPassPaymentMetadataWrapper
      description: Wrapper for Flight Pass payment metadata.
      required:
        - flightPassMetadata
      properties:
        metadataType:
          type: string
          description: Discriminator field for polymorphic deserialization
          example: FlightPassPaymentMetadata
          default: FlightPassPaymentMetadata
        flightPassMetadata:
          $ref: '#/components/schemas/FlightPassPaymentMetadata'
    FlightPassTax:
      type: object
      title: FlightPassTax
      description: A single tax component of the flight pass fare.
      properties:
        code:
          type: string
          description: Tax code identifier (e.g. GST_HST, QST, OTHER).
          example: GST_HST
        amount:
          description: Tax amount.
          $ref: '#/components/schemas/Money'
    FlightPassWrapper:
      type: object
      title: FlightPassWrapper
      description: Wrapper for Flight Pass Payment Source.
      required:
        - flightPassMetadata
      properties:
        flightPassMetadata:
          $ref: '#/components/schemas/FlightPassMetadata'
    Gender:
      title: Gender
      type: string
      x-pii: SENSITIVE
      enum:
        - MALE
        - FEMALE
        - UNSPECIFIED
        - UNDISCLOSED
        - GENDER_REDACTED
      example: FEMALE
    GetEventResponse:
      title: GetEventResponse
      description: Get Event response object
      type: object
      properties:
        event:
          $ref: '#/components/schemas/Event'
    GetEventSummariesRequest:
      title: GetEventSummariesRequest
      description: Request to get Event summaries
      type: object
      properties:
        userId:
          description: User id
          $ref: '#/components/schemas/UserId'
        companyId:
          description: Company id
          $ref: '#/components/schemas/CompanyId'
        tripIds:
          type: array
          description: List of Spotnana trip IDs
          items:
            type: string
            example: '6926658168'
    GetEventSummariesResponse:
      title: GetEventSummariesResponse
      type: object
      description: Response to return Event summaries
      properties:
        tripEventSummaries:
          type: array
          description: List of Event summaries for trips
          items:
            $ref: '#/components/schemas/TripEventSummary'
    GetEventsPaymentSourcesResponse:
      type: object
      title: GetEventsPaymentSourcesResponse
      description: Payment sources for events
      required:
        - paymentSources
      properties:
        paymentSources:
          type: array
          description: List of payment sources
          items:
            $ref: '#/components/schemas/PaymentSourceInfo'
    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
    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
    HotelBookingStatusFilter:
      type: object
      title: HotelBookingStatusFilter
      description: Hotel Booking Status Filter
      required:
        - type
        - bookingStatus
      properties:
        type:
          type: string
          description: Type of filter
        bookingStatus:
          type: array
          description: Hotel Booking status
          items:
            $ref: '#/components/schemas/BookingStatusType'
    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
    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'
    HotelItinerary:
      type: object
      title: HotelItinerary
      properties:
        hotelItineraryId:
          $ref: '#/components/schemas/HotelItineraryId'
    HotelItineraryId:
      type: object
      title: HotelItineraryId
      description: Hotel itinerary id
      required:
        - priceValidateKey
      properties:
        priceValidateKey:
          type: string
          description: Price Validate key
    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
    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
    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'
    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'
    IndividualFilter:
      type: object
      title: IndividualFilter
      description: IndividualFilter details.
      required:
        - ids
        - companyId
      properties:
        ids:
          type: array
          description: List of user id
          items:
            $ref: '#/components/schemas/UserId'
        companyId:
          description: company id
          $ref: '#/components/schemas/CompanyId'
    IndividualFilterWrapper:
      type: object
      title: IndividualFilterWrapper
      description: Wrapper for IndividualFilter
      properties:
        individualFilter:
          $ref: '#/components/schemas/IndividualFilter'
    InvitationStatusFilter:
      type: object
      title: InvitationStatusFilter
      description: Invitation status filter
      required:
        - rsvpStates
        - type
      properties:
        type:
          type: string
        rsvpStates:
          type: array
          description: List of rsvp states for which travelers need to be fetched
          items:
            $ref: '#/components/schemas/EventRsvpState'
    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
    Itinerary:
      type: object
      description: Details of the itinerary
      oneOf:
        - $ref: '#/components/schemas/AirItinerary'
        - $ref: '#/components/schemas/HotelItinerary'
        - $ref: '#/components/schemas/CarItinerary'
        - $ref: '#/components/schemas/RailItinerary'
        - $ref: '#/components/schemas/LimoItinerary'
    ItineraryFilter:
      type: object
      title: ItineraryFilter
      description: Itinerary Filter details
      required:
        - itineraryInfo
      properties:
        itineraryInfo:
          $ref: '#/components/schemas/Itinerary'
    ItineraryFilterWrapper:
      type: object
      title: ItineraryFilterWrapper
      description: Wrapper for ItineraryFilter
      properties:
        itineraryFilter:
          $ref: '#/components/schemas/ItineraryFilter'
    JobIdFilter:
      title: JobIdFilter
      type: object
      required:
        - filterType
        - jobId
      properties:
        filterType:
          description: Used to distinguish which type of filter is applied.
          type: string
        jobId:
          description: Job Id for the async event job.
          type: string
          format: uuid
          example: f7b3b3b3-7b3b-4b3b-8b3b-3b3b3b3b3b3b
    JobItem:
      title: JobItem
      type: object
      properties:
        eventId:
          type: string
          description: Unique identifier for the event.
          example: '56789012'
        status:
          $ref: '#/components/schemas/EventJobItemStatus'
        message:
          type: string
          description: Error message
    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'
    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
    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'
    LegalEntityFilter:
      type: object
      title: LegalEntityFilter
      description: LegalEntityFilter details.
      required:
        - legalEntityIds
      properties:
        legalEntityIds:
          type: array
          description: Legal Entity id List
          items:
            $ref: '#/components/schemas/LegalEntityId'
        companyId:
          description: The company Id for the filter.
          $ref: '#/components/schemas/CompanyId'
    LegalEntityFilterWrapper:
      type: object
      title: LegalEntityFilterWrapper
      description: Wrapper for LegalEntityFilter
      properties:
        legalEntityFilter:
          $ref: '#/components/schemas/LegalEntityFilter'
    LegalEntityId:
      type: object
      title: LegalEntityId
      description: The ID of the legal entity.
      required:
        - id
      properties:
        id:
          type: string
          example: fc1ccbce-8413-4fe9-b233-a324dfbe7421
    LegalEntityOverride:
      title: LegalEntityOverride
      type: object
      description: Legal entity override for the event
      required:
        - behavior
      properties:
        behavior:
          $ref: '#/components/schemas/OverrideBehavior'
        legalEntityRef:
          $ref: '#/components/schemas/Reference'
    LimoItinerary:
      type: object
      title: LimoItinerary
      properties:
        limoItineraryId:
          $ref: '#/components/schemas/LimoItineraryId'
    LimoItineraryId:
      type: object
      title: LimoItineraryId
      description: Limo itinerary id
      required:
        - limoId
      properties:
        limoId:
          type: string
          description: Selected Limo option
    ListEventsRequest:
      title: ListEventsRequest
      description: List of events request
      type: object
      x-ignoreBreakingChanges:
        - EventApi.yaml->ListEventsRequest->listEventType
        - ListEventsRequest->listEventType
      properties:
        listEventType:
          type: string
          description: Type of events
          x-optionalFrom: '2025-08-13'
          enum:
            - UPCOMING
            - PAST_OR_COMPLETED
            - CANCELLED_EVENT
          example: UPCOMING
        filters:
          type: array
          description: List events filters
          items:
            $ref: '#/components/schemas/EventFilter'
        travelerFilters:
          type: array
          description: Filters for event travelers
          items:
            $ref: '#/components/schemas/EventTravelerFilter'
        listByTravelerEvents:
          type: boolean
          description: Whether listing travelers or events.
          default: false
          example: true
        offset:
          type: integer
          description: Indicates from where in the list of events the server should start.
          default: 0
          minimum: 0
          example: 2
        limit:
          type: integer
          description: Maximum number of results to be fetched for the query.
          default: 10
          maximum: 100
          example: 2
        sortOptions:
          type: array
          description: Sort options for the list events request.
          items:
            $ref: '#/components/schemas/SearchEventSortOptions'
    ListEventsResponse:
      title: ListEventsResponse
      description: List of events response
      type: object
      properties:
        events:
          type: array
          description: List of events
          items:
            $ref: '#/components/schemas/Event'
        paginationParams:
          $ref: '#/components/schemas/OffsetBasedPaginationResponseParams'
    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
    ManagedTravelerPaymentAccess:
      type: object
      description: >-
        Settings for sharing this payment method with managed traveler profiles.
        Applicable for Arranger Roles.
      required:
        - enabled
      properties:
        enabled:
          type: boolean
          description: >-
            Indicates if this payment method can be used on the Traveler
            Profiles being managed by this User.
          default: false
        visibility:
          type: object
          description: >-
            Controls how this payment method is displayed on checkout for
            managed traveler profiles, applicable only if sharing is enabled.
          properties:
            showToTravelers:
              type: boolean
              description: >-
                If true, managed travelers can see this payment method when
                booking for themselves. If false, only the Travel Arranger can
                see it.
              default: false
    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
    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'
    Name:
      type: object
      title: Name
      description: Full name containing first, middle, last (family) names, and suffix.
      required:
        - given
        - family1
      properties:
        family1:
          type: string
          description: Last (family) name.
          example: Gandas
        family2:
          type: string
          example: FamilyTwo
        given:
          type: string
          description: First (given) name.
          example: Vichitr
        middle:
          type: string
          description: Middle name.
          example: Kumar
        suffix:
          $ref: '#/components/schemas/NameSuffix'
          description: Suffix used with the name. For example SR or JR.
          example: SR
        preferred:
          type: string
          description: >-
            Informal preferred name added by traveler. This is not used on any
            PNR or tickets
          example: Don
    NameSuffix:
      title: NameSuffix
      description: Suffix for name
      type: string
      enum:
        - NAME_SUFFIX_UNKNOWN
        - SR
        - JR
        - MD
        - PHD
        - II
        - III
        - IV
        - DO
        - ATTY
        - V
        - VI
        - ESQ
        - DC
        - DDS
        - VM
        - JD
        - SECOND
        - THIRD
      example: SR
    NationalDoc:
      type: object
      title: NationalDoc
      description: National Document Id details.
      required:
        - docId
        - issueCountry
      properties:
        docId:
          type: string
          description: Unique id identifying the national document.
          example: NationalDocId
          x-pii: IDENTIFIER
        issueCountry:
          type: string
          description: IS0 2 letter country code of the country issuing this id.
          example: IN
        issuedDate:
          $ref: '#/components/schemas/DateModel'
          x-pii: SENSITIVE
        expiryDate:
          $ref: '#/components/schemas/DateModel'
          x-pii: SENSITIVE
        type:
          type: string
          enum:
            - DNI
            - NIE
          example: DNI
    NationalDocWrapper:
      type: object
      title: NationalDocWrapper
      properties:
        nationalDoc:
          $ref: '#/components/schemas/NationalDoc'
    NoPrepaymentMetadata:
      type: object
      title: NoPrepaymentMetadata
      required:
        - label
      description: >-
        Metadata for No Prepayment payment source (car bookings on no-guarantee
        rates).
      properties:
        label:
          type: string
          example: No Prepayment
          description: Label for No Prepayment payment source.
    NoPrepaymentWrapper:
      type: object
      title: NoPrepaymentWrapper
      description: Wrapper for No Prepayment Payment Source.
      required:
        - noPrepaymentMetadata
      properties:
        noPrepaymentMetadata:
          $ref: '#/components/schemas/NoPrepaymentMetadata'
    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
    OffsetBasedPaginationResponseParams:
      type: object
      title: PaginationResponseParams
      description: Pagination parameters for response.
      required:
        - totalNumResults
      properties:
        totalNumResults:
          type: integer
          format: int32
          description: Total number of results.
    OperationStatus:
      title: OperationStatus
      description: Generic operation/execution status.
      type: string
      enum:
        - SUCCESS
        - FAILED
        - PARTIAL_SUCCESS
      example: SUCCESS
    OrganizationAgencyId:
      type: object
      title: OrganizationAgencyId
      description: Agency id for the organization.
      deprecated: true
      x-sunset: '2026-07-01'
      required:
        - id
      properties:
        id:
          type: string
    OrganizationId:
      type: object
      title: OrganizationId
      description: Organization id for traveler.
      required:
        - id
      properties:
        id:
          type: string
    OverrideBehavior:
      title: OverrideBehavior
      type: string
      description: Override behavior for the trip overrides
      enum:
        - OVERRIDE_ALLOWED
        - OVERRIDE_NOT_ALLOWED
        - OVERRIDE_MANDATORY
      example: OVERRIDE_ALLOWED
      x-enum-descriptions:
        - Override is allowed.
        - Override is not allowed.
        - Override is mandatory.
    OwnershipLabel:
      title: OwnershipLabel
      type: string
      description: >-
        Ownership label of the card whether it is personal, corporate or
        central.
      enum:
        - CORPORATE
        - PERSONAL
        - CENTRAL
    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'
    PaymentAccessMapping:
      type: object
      required:
        - id
      description: >-
        This object contains an array of payment source details, each including
        unique identifiers and specific attributes related to access types, such
        as travel type information.
      properties:
        id:
          type: string
          format: uuid
          description: Unique identifier identifying this payment source
          example: f49d00fe-1eda-4304-ba79-a980f565281d
        accessTypeAttributes:
          description: Attributes applicable to the access type for this mapping.
          $ref: '#/components/schemas/AccessTypeAttributes'
    PaymentConfigForTravelType:
      type: object
      description: Allowed payment configuration for a travel type
      required:
        - travelType
        - paymentConfig
      properties:
        travelType:
          $ref: '#/components/schemas/TravelType'
        paymentConfig:
          $ref: '#/components/schemas/TemplatePaymentConfig'
    PaymentEventFilter:
      type: object
      title: PaymentEventFilter
      description: Payment EventFilter details.
      required:
        - eventIds
        - companyId
      properties:
        eventIds:
          type: array
          description: Event ids List
          items:
            type: string
            example: '12345'
        companyId:
          description: The company Id for the filter.
          $ref: '#/components/schemas/CompanyId'
    PaymentEventFilterWrapper:
      type: object
      title: PaymentEventFilterWrapper
      description: Wrapper for EventFilter
      properties:
        eventFilter:
          $ref: '#/components/schemas/PaymentEventFilter'
    PaymentInstructionConfig:
      type: object
      title: PaymentInstructionConfig
      description: Payment instruction configuration
      properties:
        bufferPercentage:
          type: number
          format: double
          description: Buffer percentage for the payment instruction
          example: 20
        dailyBuffer:
          type: object
          description: Per day buffer amount for the payment instruction
          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
        supplierText:
          type: string
          description: Supplier text instruction to be sent to the supplier
          example: Supplier Text
    PaymentInstructionId:
      type: object
      title: PaymentInstructionId
      description: Payment instruction id
      required:
        - id
        - travelType
      properties:
        id:
          type: string
          format: uuid
          description: Id corresponding to the payment instruction
          example: f49d00fe-1eda-4304-ba79-a980f565281d
        travelType:
          description: associated travelType for the instruction
          $ref: '#/components/schemas/TravelType'
    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
    PaymentSourceAttributes:
      type: object
      title: PaymentSourceAttributes
      description: Attributes applicable for the payment source.
      properties:
        guestTravelAllowed:
          deprecated: true
          x-sunset: '2026-07-01'
          type: boolean
          description: Whether guest travel is allowed.
        roleTypes:
          type: array
          description: Role types which have access to the payment source
          items:
            $ref: '#/components/schemas/RoleType'
        includedPersonas:
          type: array
          description: >-
            If specified, list of traveler personas which have access to the
            payment source.
          items:
            $ref: '#/components/schemas/Persona'
        excludedPersonas:
          type: array
          description: >-
            List of traveler personas which don't have access to the payment
            source.
          items:
            $ref: '#/components/schemas/Persona'
        allowedThirdPartySources:
          type: array
          description: List of 3rd party sources supported for the payment source.
          items:
            $ref: '#/components/schemas/ThirdPartySource'
        allowedTripTypes:
          type: array
          description: List of trip types supported for the payment source.
          items:
            $ref: '#/components/schemas/TripUsageType'
        priority:
          type: integer
          description: >-
            Priority of payment source used to order while listing payment
            sources. Priority is a positive number.
          minimum: 1
          example: 2
        workerType:
          type: array
          description: >-
            If specified, list of traveler worker types which have access to the
            payment source.
          items:
            $ref: '#/components/schemas/WorkerType'
    PaymentSourceDepartmentFilter:
      type: object
      title: DepartmentFilter
      description: DepartmentFilter details.
      required:
        - companyId
        - departmentIds
      properties:
        companyId:
          description: company id
          $ref: '#/components/schemas/CompanyId'
        departmentIds:
          type: array
          description: List of department ids
          items:
            $ref: '#/components/schemas/DepartmentId'
    PaymentSourceDescriptor:
      type: object
      title: PaymentSourceDescriptor
      description: Descriptor corresponding to the payment source.
      oneOf:
        - $ref: '#/components/schemas/CardDescriptorWrapper'
        - $ref: '#/components/schemas/RewardsProgramDescriptorWrapper'
        - $ref: '#/components/schemas/VirtualCardDescriptorWrapper'
        - $ref: '#/components/schemas/CustomPaymentMethodDescriptorWrapper'
        - $ref: '#/components/schemas/VendorProgramPaymentDescriptorWrapper'
        - $ref: '#/components/schemas/DelayedInvoicingDescriptorWrapper'
        - $ref: '#/components/schemas/UnusedCreditDescriptorWrapper'
        - $ref: '#/components/schemas/CashDescriptorWrapper'
    PaymentSourceFilterMetadata:
      type: object
      title: PaymentSourceFilterMetadata
      description: Metadata corresponding to the payment source.
      oneOf:
        - $ref: '#/components/schemas/LegalEntityFilterWrapper'
        - $ref: '#/components/schemas/CompanyFilterWrapper'
        - $ref: '#/components/schemas/CountryFilterWrapper'
        - $ref: '#/components/schemas/TmcFilterWrapper'
        - $ref: '#/components/schemas/PersonalFilterWrapper'
        - $ref: '#/components/schemas/IndividualFilterWrapper'
        - $ref: '#/components/schemas/CostCenterFilterWrapper'
        - $ref: '#/components/schemas/DepartmentFilterWrapper'
        - $ref: '#/components/schemas/ItineraryFilterWrapper'
        - $ref: '#/components/schemas/PaymentEventFilterWrapper'
        - $ref: '#/components/schemas/EventTemplateFilterWrapper'
      x-ignoreBreakingChanges:
        - PaymentSourceFilterMetadata->EventTemplateFilterWrapper
    PaymentSourceInfo:
      type: object
      title: PaymentSourceInfo
      required:
        - id
        - paymentSource
      properties:
        id:
          type: string
          format: uuid
          description: Unique identifier identifying this payment source
          example: f49d00fe-1eda-4304-ba79-a980f565281d
        type:
          $ref: '#/components/schemas/PaymentSourceType'
        paymentSource:
          description: Payment source descriptor.
          $ref: '#/components/schemas/PaymentSourceDescriptor'
        mapping:
          deprecated: true
          x-sunset: '2026-07-01'
          description: Mapping i.e. access level, travel type information etc.
          $ref: '#/components/schemas/PaymentSourceMapping'
        status:
          $ref: '#/components/schemas/PaymentSourceStatus'
    PaymentSourceMapping:
      type: object
      title: PaymentSourceMapping
      properties:
        accessType:
          description: Access Type of the Payment Source
          $ref: '#/components/schemas/AccessType'
        accessTypeEntityId:
          type: string
          description: Entity ID corresponding to the Access Type being created
        filter:
          description: Applicable access information for this payment_source
          $ref: '#/components/schemas/PaymentSourceFilterMetadata'
        travelType:
          type: array
          description: Applicable payment source travel type.
          deprecated: true
          x-sunset: '2026-07-01'
          items:
            $ref: '#/components/schemas/PaymentSourceTravelType'
        travelTypes:
          type: array
          description: Applicable payment source travel types
          items:
            $ref: '#/components/schemas/PaymentSourceTravelType'
        spendTypes:
          type: array
          description: Applicable spend types for payment source other than travel
          items:
            $ref: '#/components/schemas/PaymentSourceSpendType'
        paymentSourceAttributes:
          description: Attributes applicable to the associated payment source.
          $ref: '#/components/schemas/PaymentSourceAttributes'
        accessTypeAttributes:
          description: Attributes applicable to the access type.
          $ref: '#/components/schemas/AccessTypeAttributes'
    PaymentSourceSpendType:
      type: object
      title: PaymentSourceSpendType
      required:
        - spendType
      properties:
        spendType:
          description: Applicable spend type e.g SERVICE_FEE
          $ref: '#/components/schemas/SpendType'
    PaymentSourceStatus:
      type: string
      description: Status of the Payment Source.
      readOnly: true
      enum:
        - ACTIVE
        - INCOMPLETE
        - TEMPORARY_READY
        - TEMPORARY_USED
        - TEMPORARY_EXPIRED
        - TEMPORARY_INCOMPLETE
      x-ignoreBreakingChanges:
        - PaymentSourceStatus->TEMPORARY_READY
        - PaymentSourceStatus->TEMPORARY_USED
        - PaymentSourceStatus->TEMPORARY_EXPIRED
        - PaymentSourceStatus->TEMPORARY_INCOMPLETE
    PaymentSourceTravelType:
      type: object
      title: PaymentSourceTravelType
      required:
        - travelType
      properties:
        travelType:
          description: Applicable travel segment type, e.g. AIR, HOTEL etc.
          $ref: '#/components/schemas/TravelType'
        isRequired:
          type: boolean
          description: Whether this is a required payment source for this travel type.
        allowPostPaidBookings:
          type: boolean
          description: Whether post paid bookings are allowed for this travel type.
          default: false
        metadata:
          description: Travel Type specific metadata for payment source.
          $ref: '#/components/schemas/PaymentSourceTravelTypeMetadata'
    PaymentSourceTravelTypeMetadata:
      type: object
      title: PaymentSourceTravelTypeMetadata
      discriminator:
        propertyName: travelType
        mapping:
          CAR: '#/components/schemas/CarPaymentSourceMetadata'
      oneOf:
        - $ref: '#/components/schemas/CarPaymentSourceMetadata'
    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
    Persona:
      type: string
      title: Persona
      description: Persona of the user
      enum:
        - UNKNOWN_PERSONA
        - EMPLOYEE
        - GUEST
        - PERSONAL
        - RELATIVE
        - ADHOC
      example: EMPLOYEE
    PersonalFilter:
      type: object
      title: PersonalFilter
      description: TmcFilter details.
      required:
        - id
      properties:
        id:
          description: user id
          $ref: '#/components/schemas/UserId'
        managedTravelerAccess:
          description: >-
            Config for providing the access to Managed Travelers if any.
            Applicable for Arranger roles.
          $ref: '#/components/schemas/ManagedTravelerPaymentAccess'
    PersonalFilterWrapper:
      type: object
      title: PersonalFilterWrapper
      description: Wrapper for PersonalFilter
      properties:
        personalFilter:
          $ref: '#/components/schemas/PersonalFilter'
    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
    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'
    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'
    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'
    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.
    ProfileOwner:
      type: object
      title: ProfileOwner
      description: Basic information about the owner of the ad-hoc user.
      required:
        - userId
      properties:
        userId:
          $ref: '#/components/schemas/UserId'
    ProgramDetails:
      type: object
      title: ProgramDetails
      description: Descriptor for programs details.
      required:
        - uscId
        - tourCode
        - snapCode
      properties:
        uscId:
          type: string
          description: Contract Id between vendor and the client.
        tourCode:
          type: string
          description: >-
            Tracking code to know which company has booked the ticket, it is
            added to the price quote and ticket.
        snapCode:
          type: string
          description: Discount code.
    PublishEventRequest:
      type: object
      description: Event details for publishing.
      required:
        - id
        - sendInvite
      properties:
        id:
          type: string
          description: Unique identifier for the event.
          example: '56789012'
        sendInvite:
          type: boolean
          description: Flag to indicate if an invite should be sent.
          example: true
        userIds:
          type: array
          description: >-
            List of users receiving the invite. - If provided, invites will be
            sent only to the specified users. - If empty or not provided,
            invites will be sent to all users.
          items:
            $ref: '#/components/schemas/UserId'
          minItems: 0
          maxItems: 1000
        type:
          $ref: '#/components/schemas/EventType'
    PublishEventResponse:
      type: object
      description: Event publish response details.
      required:
        - id
        - status
      properties:
        id:
          type: string
          description: Unique identifier for the event.
          example: '56789012'
        status:
          $ref: '#/components/schemas/OperationStatus'
        message:
          type: string
          description: Details about success or failure reason.
          example: Published successfully
    QantasTravelFund:
      type: object
      title: QantasTravelFund
      required:
        - label
      description: Metadata for Qantas Travel Fund payment source.
      properties:
        label:
          type: string
          example: QANTAS_TRAVEL_FUND
          description: Label for Qantas Travel Fund payment source.
    QantasTravelFundWrapper:
      type: object
      title: QantasTravelFundWrapper
      description: Wrapper for Qantas Travel Fund payment source.
      required:
        - qantasTravelFund
      properties:
        qantasTravelFund:
          $ref: '#/components/schemas/QantasTravelFund'
    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'
    RailBookingStatusFilter:
      type: object
      title: RailBookingStatusFilter
      description: Rail Booking Status Filter
      required:
        - type
        - bookingStatus
      properties:
        type:
          type: string
          description: Type of filter
        bookingStatus:
          type: array
          description: Rail Booking status
          items:
            $ref: '#/components/schemas/BookingStatusType'
    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
    RailItinerary:
      type: object
      title: RailItinerary
      properties:
        railItineraryId:
          $ref: '#/components/schemas/RailItineraryId'
    RailItineraryId:
      type: object
      title: RailItineraryId
      description: Rail itinerary id
      required:
        - searchKey
      properties:
        searchKey:
          type: string
          description: Search key
    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'
    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
    RailTravelClass:
      description: Travel class
      type: string
      enum:
        - FIRST
        - STANDARD
        - BUSINESS
        - SLEEPER
        - STANDARD_PREMIUM
        - BUSINESS_PREMIUM
        - COACH
        - ROOM
        - EXECUTIVE
      example: FIRST
    RateCodeOverride:
      title: RateCodeOverride
      type: object
      description: Rate code override for trips
      required:
        - behavior
      properties:
        behavior:
          $ref: '#/components/schemas/OverrideBehavior'
        supplier:
          $ref: '#/components/schemas/SupplierType'
        travelType:
          $ref: '#/components/schemas/TravelType'
        rateCodeIds:
          type: array
          description: List of rate code ids
          items:
            type: string
            format: uuid
            example: f49d00fe-1eda-4304-ba79-a980f565281d
    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
    ReferenceIdFilter:
      title: ReferenceIdFilter
      type: object
      required:
        - filterType
        - referenceId
      properties:
        filterType:
          description: Used to distinguish which type of filter is applied.
          type: string
        referenceId:
          description: Reference Id associated with the job.
          type: string
          example: '8859676988'
        type:
          description: Job type filter.
          $ref: '#/components/schemas/EventJobType'
    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'
    RemoveTravelersFromEventRequest:
      title: RemoveTravelersFromEventRequest
      description: Remove travelers from an event request
      type: object
      properties:
        type:
          $ref: '#/components/schemas/EventType'
        userIds:
          type: array
          items:
            $ref: '#/components/schemas/UserId'
          minItems: 1
          maxItems: 10
    RemoveTravelersFromEventResponse:
      title: RemoveTravelersFromEventResponse
      description: Remove travelers from an event response
      type: object
      properties:
        removedUserIds:
          type: array
          items:
            $ref: '#/components/schemas/UserId'
    ReportingAttribute:
      type: object
      title: ReportingAttribute
      description: ReportingAttribute information for virtual cards.
      properties:
        type:
          type: string
          description: Type of ReportingAttribute
          enum:
            - EMPLOYEE_ID
            - COST_CENTER_ID
            - LEGAL_ENTITY_ID
          example: LEGAL_ENTITY_ID
    RewardsProgramDescriptor:
      type: object
      title: RewardsProgramDescriptor
      description: Descriptor for Rewards Program.
      properties:
        type:
          $ref: '#/components/schemas/RewardsProgramType'
    RewardsProgramDescriptorWrapper:
      type: object
      title: RewardsProgramDescriptorWrapper
      description: Wrapper for RewardsProgramDescriptor
      properties:
        rewardsProgramDescriptor:
          $ref: '#/components/schemas/RewardsProgramDescriptor'
    RewardsProgramType:
      type: string
      title: RewardsProgramType
      description: Type of Rewards Program
      enum:
        - BREX_POINTS
        - QANTAS_POINTS
    RoleConfig:
      type: object
      description: Role Info
      properties:
        roleType:
          $ref: '#/components/schemas/RoleTypeEnum'
        roleMetadata:
          deprecated: true
          x-sunset: '2026-07-01'
          $ref: '#/components/schemas/RoleMeta'
        metadata:
          $ref: '#/components/schemas/RoleMetadataV2'
    RoleMeta:
      type: object
      properties:
        travelArrangerMetadata:
          $ref: '#/components/schemas/TravelArrangerMetadata'
    RoleMetadataV2:
      type: object
      discriminator:
        propertyName: roleType
        mapping:
          TRAVEL_ARRANGER: '#/components/schemas/TravelArrangerMetadataV2'
          COMPANY_ADMIN: '#/components/schemas/CompanyRoleInfo'
          COMPANY_TRAVEL_ARRANGER: '#/components/schemas/CompanyRoleInfo'
          COMPANY_REPORT_ADMIN: '#/components/schemas/CompanyRoleInfo'
          TMC_ADMIN: '#/components/schemas/TmcRoleInfo'
          TMC_AGENT: '#/components/schemas/TmcRoleInfo'
      oneOf:
        - $ref: '#/components/schemas/TravelArrangerMetadataV2'
        - $ref: '#/components/schemas/CompanyRoleInfo'
        - $ref: '#/components/schemas/TmcRoleInfo'
    RoleType:
      type: string
      enum:
        - UNKNOWN_TYPE
        - COMPANY_ADMIN
        - COMPANY_TRAVEL_ARRANGER
        - TRAVEL_ARRANGER
        - COMPANY_REPORT_ADMIN
        - GLOBAL_ADMIN
        - GLOBAL_AGENT
        - TMC_AGENT
        - TMC_ADMIN
      example: TRAVEL_ARRANGER
    RoleTypeEnum:
      type: string
      enum:
        - COMPANY_ADMIN
        - COMPANY_TRAVEL_ARRANGER
        - TRAVEL_ARRANGER
        - COMPANY_REPORT_ADMIN
        - TMC_ADMIN
        - TMC_AGENT
        - GLOBAL_ADMIN
        - GLOBAL_AGENT
    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
    SearchEventSortOptions:
      type: object
      title: SearchEventSortOptions
      description: Sort options for the list events request.
      required:
        - sortField
        - sortOrder
      properties:
        sortField:
          type: string
          description: Field to sort by
          enum:
            - START_DATE
            - END_DATE
            - EVENT_NAME
            - CREATION_DATE
            - TRAVELER_NAME
        sortOrder:
          $ref: '#/components/schemas/SortOrder'
    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
    SeatLocationPref:
      type: object
      title: SeatLocationPref
      description: Seat location preference.
      properties:
        cabins:
          type: array
          items:
            type: string
            enum:
              - UNKNOWN_CABIN
              - ECONOMY
              - PREMIUM_ECONOMY
              - BUSINESS
              - FIRST
            example: FIRST
        isBulkHeadPref:
          type: boolean
          example: false
        maxFlightDurationInHours:
          type: integer
          format: int32
          example: 3
        position:
          type: string
          enum:
            - UNKNOWN_POSITION
            - AISLE
            - WINDOW
            - AISLE_OR_WINDOW
          example: WINDOW
    SeatPref:
      type: object
      title: SeatPref
      description: Preference about seat of rail.
      properties:
        hasAccessibility:
          type: boolean
          description: Whether or not requires assistance for disability.
          default: false
          example: false
        seatTypes:
          type: array
          items:
            $ref: '#/components/schemas/SeatPrefType'
        seatLocations:
          type: array
          items:
            $ref: '#/components/schemas/SeatPrefLocation'
        deckLevels:
          type: array
          items:
            $ref: '#/components/schemas/DeckLevel'
        seatDirections:
          type: array
          items:
            $ref: '#/components/schemas/SeatPrefDirection'
    SeatPrefDirection:
      type: string
      description: The direction of seat of the rail.
      enum:
        - FORWARD
        - BACKWARD
      example: FORWARD
    SeatPrefLocation:
      type: string
      description: The location of seat of the rail.
      enum:
        - AISLE
        - WINDOW
        - SOLO
      example: AISLE
    SeatPrefType:
      type: string
      description: The type of seat of the rail.
      enum:
        - SLEEPER_BED
        - NORMAL
        - TABLE_SEAT
      example: NORMAL
    SecondaryServiceProviderTmc:
      type: object
      title: SecondaryServiceProviderTmc
      description: Secondary service provider TMC info
      required:
        - tmcId
        - supplier
        - travelType
      properties:
        tmcId:
          $ref: '#/components/schemas/CompanyId'
          description: Id of the service provider TMC.
        supplier:
          $ref: '#/components/schemas/SupplierType'
          description: Supplier for which this service provider should be used.
        travelType:
          $ref: '#/components/schemas/TravelType'
          description: Travel type for which this service provider should be used.
    SendInviteRequest:
      title: SendInviteRequest
      description: Send invite for an event to the travelers
      type: object
      properties:
        type:
          $ref: '#/components/schemas/EventType'
        userIds:
          type: array
          items:
            $ref: '#/components/schemas/UserId'
    SetUserEventRsvpRequest:
      title: SetUserEventRsvpRequest
      description: Set user's event rsvp request object
      type: object
      properties:
        type:
          $ref: '#/components/schemas/EventType'
        eventRsvpState:
          $ref: '#/components/schemas/EventRsvpState'
        eventRsvpResponse:
          $ref: '#/components/schemas/EventRsvpResponse'
    SortOrder:
      type: string
      description: Sorting order.
      enum:
        - DESC
        - ASC
      example: DESC
      default: ASC
    SpendType:
      type: string
      title: SpendType
      description: Spend type
      enum:
        - SERVICE_FEE
    SplitOptionByCardCompany:
      type: object
      title: SplitOptionByCardCompany
      required:
        - cardCompanyCode
      description: Split option details when using a card from a specific card company
      properties:
        cardCompanyCode:
          type: string
          description: Card company code which allows splitting the payment
          example: VI, TP
        splitWithCardCompanyCodes:
          type: array
          items:
            type: string
            description: >-
              Card company codes payment can be split with. Empty value will
              indicate that payment cannot be split with cards of any company.
    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
    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
    TemplatePaymentConfig:
      type: string
      description: Allowed payment configuration for a travel type in the event template
      enum:
        - TRAVELER_DEFAULT
        - TRAVELER_DEFAULT_CENTRAL
        - PERSONAL
        - SELECTED_METHODS
      example: TRAVELER_DEFAULT
      x-ignoreBreakingChanges:
        - TemplatePaymentConfig->TRAVELER_DEFAULT_CENTRAL
    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
    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
    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.
    TmcFilter:
      type: object
      title: TmcFilter
      description: TmcFilter details.
      required:
        - companyId
      properties:
        companyId:
          description: Tmc id
          $ref: '#/components/schemas/CompanyId'
        showToTraveler:
          type: boolean
          description: >-
            If true, this TMC payment source is shown to travelers at checkout;
            otherwise it is TMC-internal.
    TmcFilterWrapper:
      type: object
      title: TmcFilterWrapper
      description: Wrapper for TmcFilter
      properties:
        tmcFilter:
          $ref: '#/components/schemas/TmcFilter'
    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
    TmcRoleInfo:
      type: object
      title: TmcRoleInfo
      required:
        - tmcRef
        - roleType
      properties:
        tmcRef:
          $ref: '#/components/schemas/Reference'
        roleType:
          type: string
          description: Role type for which tmc reference metadata is specified.
    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'
    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'
    TravelArrangerMetadata:
      type: object
      required:
        - arrangerFor
      properties:
        arrangerFor:
          type: array
          items:
            $ref: '#/components/schemas/TravelerConfigForArranger'
    TravelArrangerMetadataV2:
      type: object
      title: TravelArrangerMetadataV2
      required:
        - roleType
        - arrangerFor
      properties:
        roleType:
          type: string
          description: Discriminator property for role metadata.
          default: TRAVEL_ARRANGER
        arrangerFor:
          type: array
          items:
            $ref: '#/components/schemas/TravelerConfigForArranger'
    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'
    TravelType:
      type: string
      title: TravelType
      description: Travel Type
      enum:
        - AIR
        - HOTEL
        - CAR
        - RAIL
        - LIMO
        - MISC
        - ALL
      example: AIR
    TravelTypeFilter:
      type: object
      title: TravelTypeFilter
      description: >-
        Filter for selecting payment sources according to different types of
        travel.
      properties:
        travelTypes:
          type: array
          description: Applicable travel types for Payment Source.
          items:
            $ref: '#/components/schemas/PaymentSourceTravelType'
    TravelerArrangerStatus:
      type: string
      title: TravelerArrangerStatus
      description: Status of the traveler-arranger assignment.
      enum:
        - PENDING
        - ACCEPTED
        - DENIED
      example: PENDING
    TravelerConfigForArranger:
      type: object
      properties:
        userId:
          type: string
          format: uuid
        sendConfirmationEmail:
          type: boolean
          description: Whether or not to send confirmation emails to user.
          example: false
          default: false
        sendFlightStatsNotificationEmail:
          type: boolean
          description: Whether or not to send flight stat notifications to user.
          example: false
          default: false
    TravelerEventInfo:
      title: TravelerEventInfo
      type: object
      description: User rsvp and tripId for the event
      properties:
        userId:
          description: User Id
          $ref: '#/components/schemas/UserId'
        tripInfos:
          type: array
          description: List of trip info for the user
          items:
            $ref: '#/components/schemas/TripInfo'
        eventRsvpState:
          description: Users' rsvp state
          $ref: '#/components/schemas/EventRsvpState'
          deprecated: true
          x-sunset: '2026-07-01'
        eventRsvpResponse:
          description: Users' rsvp response. This includes details related to bookings
          $ref: '#/components/schemas/EventRsvpResponse'
          deprecated: true
          x-sunset: '2026-07-01'
        eventUserRsvp:
          description: User's rsvp information.
          $ref: '#/components/schemas/EventUserRsvp'
    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'
    TravelerSearchFilter:
      type: object
      title: TravelerSearchFilter
      description: Traveler search filter
      required:
        - type
      properties:
        type:
          type: string
        searchTerm:
          type: string
          example: name
    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
    TripEventSummary:
      title: TripEventSummary
      type: object
      description: Event summary for trip
      properties:
        tripId:
          type: string
          description: Spotnana trip ID
          example: '6926658168'
        travelerEventSummary:
          $ref: '#/components/schemas/TravelerEventSummary'
    TripInfo:
      type: object
      title: TripInfo
      description: Trip information.
      required:
        - tripId
        - status
      properties:
        tripId:
          type: string
          description: ID of the trip of the user.
          example: '1234567890'
        status:
          $ref: '#/components/schemas/UserFacingStatus'
    TripOverrides:
      title: TripOverrides
      type: object
      description: Trip overrides for the event
      required:
        - legalEntity
        - costCenter
        - department
        - userAttributes
      properties:
        legalEntity:
          description: Legal entity override
          $ref: '#/components/schemas/LegalEntityOverride'
        costCenter:
          description: Cost center override
          $ref: '#/components/schemas/CostCenterOverride'
        department:
          description: Department override
          $ref: '#/components/schemas/DepartmentOverride'
        userAttributes:
          type: array
          description: List of company specified attribute overrides
          items:
            $ref: '#/components/schemas/CompanySpecifiedAttributeOverride'
        rateCodeOverrides:
          type: array
          description: List of rate codes to be overridden for a trip
          items:
            $ref: '#/components/schemas/RateCodeOverride'
    TripUsageType:
      title: TripUsageType
      description: Trip usage type.
      type: string
      enum:
        - STANDARD
        - EVENT
    UAPassPlusMetadata:
      type: object
      title: UAPassPlusMetadata
      description: Details for UAPassPlus Metadata.
      required:
        - programDetails
        - uatpInfo
      properties:
        programDetails:
          $ref: '#/components/schemas/ProgramDetails'
        uatpInfo:
          $ref: '#/components/schemas/UATPInformation'
    UAPassPlusMetadataWrapper:
      type: object
      title: UAPassPlusMetadataWrapper
      description: Wrapper for UAPassPlus Metadata.
      properties:
        uaPassPlusMetadata:
          $ref: '#/components/schemas/UAPassPlusMetadata'
    UATPInformation:
      type: object
      title: UATPInformation
      description: Descriptor for UATPInformation.
      required:
        - card
        - ticketingValidity
        - travelValidity
      properties:
        card:
          $ref: '#/components/schemas/Card'
        ticketingValidity:
          description: Valid ticketing datetime.
          $ref: '#/components/schemas/DateTimeRange'
        travelValidity:
          description: Valid travel datetime.
          $ref: '#/components/schemas/DateTimeRange'
    UATPMetadata:
      type: object
      title: UATPMetadata
      description: Details for UATP Metadata.
      required:
        - card
      properties:
        card:
          $ref: '#/components/schemas/Card'
    UATPMetadataWrapper:
      type: object
      title: UATPMetadataWrapper
      description: Wrapper for UATP Metadata.
      properties:
        uatpMetadata:
          $ref: '#/components/schemas/UATPMetadata'
    UnusedCreditDescriptor:
      type: object
      title: UnusedCreditDescriptor
      description: Descriptor for unused credits.
      required:
        - unusedCreditInfo
        - userId
        - companyId
      properties:
        unusedCreditInfo:
          $ref: '#/components/schemas/UnusedCreditInfo'
        userId:
          description: The user Id of the user who owns the credit.
          $ref: '#/components/schemas/UserId'
        companyId:
          description: The company Id of the user who owns the credit.
          $ref: '#/components/schemas/CompanyId'
    UnusedCreditDescriptorWrapper:
      type: object
      title: UnusedCreditDescriptorWrapper
      description: Wrapper for UnusedCreditDescriptor.
      properties:
        unusedCreditDescriptor:
          $ref: '#/components/schemas/UnusedCreditDescriptor'
    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.
    UpdateEventBasicInfoRequest:
      title: UpdateEventBasicInfoRequest
      description: Update Event basic info request object
      type: object
      required:
        - name
        - location
      properties:
        name:
          type: string
          description: Name of the event
        type:
          $ref: '#/components/schemas/EventType'
        description:
          type: string
          description: Description of the event
        documents:
          type: array
          description: Documents attached for an event
          items:
            $ref: '#/components/schemas/Document'
        startDateTime:
          $ref: '#/components/schemas/DateTimeLocal'
        endDateTime:
          $ref: '#/components/schemas/DateTimeLocal'
        location:
          $ref: '#/components/schemas/EventLocation'
        contacts:
          type: array
          description: Contacts for the event
          items:
            $ref: '#/components/schemas/UserId'
        referenceUsers:
          type: array
          description: Event group reference user ids
          items:
            $ref: '#/components/schemas/UserId'
        travelerTypes:
          type: array
          description: Allowed traveler types for the event
          items:
            $ref: '#/components/schemas/Persona'
        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'
        policyId:
          type: string
          format: uuid
          description: Policy associated with the event.
          example: f7b3b3b3-7b3b-4b3b-8b3b-3b3b3b3b3b3b
        allowTravelersPolicy:
          $ref: '#/components/schemas/AllowTravelersPolicy'
        emailPreferences:
          $ref: '#/components/schemas/BucketEmailPreferences'
        allowTravelersToRsvp:
          $ref: '#/components/schemas/AllowTravelersToRsvp'
        internalNotes:
          type: string
          description: Internal notes of the event
          example: Use travelers default as payment method.
        tripOverrides:
          $ref: '#/components/schemas/TripOverrides'
        tripContacts:
          type: array
          description: >-
            Trip contacts for the event. These are passed through to created
            trips.
          items:
            $ref: '#/components/schemas/TripContact'
        inheritedCustomFieldIds:
          type: array
          description: List of custom field IDs that were inherited from parent
          items:
            type: string
            format: uuid
            example: f7b3b3b3-7b3b-4b3b-8b3b-3b3b3b3b3b3b
        eventCustomFieldV3Responses:
          type: array
          description: List of custom field responses for an event.
          items:
            $ref: '#/components/schemas/CustomFieldPrefilledResponse'
        eventCustomFieldResponses:
          deprecated: true
          x-sunset: '2026-07-01'
          type: array
          description: List of custom field responses for the event.
          items:
            $ref: '#/components/schemas/CustomFieldResponse'
        inviteEmailConfig:
          $ref: '#/components/schemas/InviteEmailConfig'
    UpdateEventBookingGuidelinesRequest:
      title: UpdateEventBookingGuidelinesRequest
      description: Update Event booking guidelines request object
      type: object
      required:
        - bookingGuidelines
      properties:
        bookingGuidelines:
          type: array
          description: A list of booking guideline for the event.
          items:
            $ref: '#/components/schemas/EventBookingGuideline'
        allowedBookingTypes:
          type: array
          description: Allowed booking types for the event group
          items:
            $ref: '#/components/schemas/EventAllowedBookingType'
        allowedPaymentConfig:
          $ref: '#/components/schemas/AllowedPaymentConfig'
        paymentMappings:
          type: array
          description: Mappings i.e. access level, travel type information etc.
          items:
            $ref: '#/components/schemas/PaymentAccessMapping'
        eventType:
          $ref: '#/components/schemas/EventType'
    UpdateEventRequestItem:
      title: UpdateEventRequestItem
      description: Update event details and guidelines
      type: object
      required:
        - eventId
        - eventBasicInfo
        - eventBookingGuidelines
      properties:
        eventId:
          type: string
          description: Id of the event to be updated.
          example: '56789012'
        eventBasicInfo:
          $ref: '#/components/schemas/UpdateEventBasicInfoRequest'
        eventBookingGuidelines:
          $ref: '#/components/schemas/UpdateEventBookingGuidelinesRequest'
    UpdateEventResponse:
      type: object
      description: Event update response details.
      required:
        - id
        - status
      properties:
        id:
          type: string
          description: Unique identifier for the event.
          example: '56789012'
        status:
          $ref: '#/components/schemas/OperationStatus'
        message:
          type: string
          description: Details about success or failure reason.
          example: Updated successfully
    UserCreateRequest:
      type: object
      description: Traveler details.
      required:
        - persona
      x-ignoreBreakingChanges:
        - personalInfo
        - UsersApi.yaml->UserCreateRequest->personalInfo
      properties:
        personalInfo:
          $ref: '#/components/schemas/UserPersonalInfo'
          x-optionalFrom: '2025-05-19'
        businessInfo:
          $ref: '#/components/schemas/BusinessInfo'
        persona:
          $ref: '#/components/schemas/Persona'
        relativeOf:
          deprecated: true
          x-sunset: '2026-07-01'
          $ref: '#/components/schemas/RelativeOf'
        billingCurrency:
          type: string
          description: Preferred billing currency of the user
          example: INR
        tier:
          $ref: '#/components/schemas/Tier'
        stealthType:
          $ref: '#/components/schemas/StealthType'
        externalId:
          type: string
          description: >
            A partner-assigned user identifier. This value must be unique for
            all travelers within a PNR.
        travelPreferences:
          $ref: '#/components/schemas/TravelPreferences'
        membershipInfo:
          $ref: '#/components/schemas/MembershipInfo'
        notificationPreferences:
          $ref: '#/components/schemas/NotificationPreferences'
        travelArrangers:
          deprecated: true
          x-sunset: '2026-07-01'
          $ref: '#/components/schemas/UserTravelArrangers'
        adhocUserInfo:
          $ref: '#/components/schemas/AdhocUserInfo'
        roles:
          type: array
          items:
            $ref: '#/components/schemas/RoleConfig'
    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
    UserGroup:
      type: object
      title: UserGroup
      description: >-
        Grouping of users on the basis of different criteria such as org,
        department, etc.
      properties:
        userIds:
          type: array
          items:
            $ref: '#/components/schemas/UserId'
        legalEntityIds:
          type: array
          items:
            $ref: '#/components/schemas/EntityId'
        officeIds:
          type: array
          items:
            $ref: '#/components/schemas/EntityId'
        departments:
          type: array
          description: List of department ids.
          items:
            type: string
        costCenters:
          type: array
          description: List of cost center ids.
          items:
            type: string
        grades:
          type: array
          description: List of grade ids.
          items:
            type: string
        positionTitles:
          type: array
          items:
            type: string
        personas:
          type: array
          items:
            $ref: '#/components/schemas/Persona'
          deprecated: true
          x-sunset: '2027-01-01'
        customFieldIds:
          deprecated: true
          x-sunset: '2026-07-01'
          type: array
          items:
            $ref: '#/components/schemas/CustomFieldId'
        countryCodes:
          type: array
          items:
            type: string
            description: Alpha-2 or Alpha-3 ISO country code.
            example: GB
        workerTypes:
          type: array
          items:
            $ref: '#/components/schemas/WorkerType'
        accountingCodes:
          type: array
          items:
            type: string
            description: Code used for accounting.
    UserGroupInfo:
      type: object
      title: UserGroupInfo
      description: Details about group's users.
      properties:
        userGroupCriteria:
          type: array
          description: User group criteria
          items:
            $ref: '#/components/schemas/UserGroup'
        userIds:
          type: array
          description: List of users derived from the user group criteria
          items:
            $ref: '#/components/schemas/UserId'
    UserId:
      type: object
      title: UserId
      description: User identifier
      required:
        - id
      properties:
        id:
          type: string
          format: uuid
    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'
    UserPersonalInfo:
      type: object
      title: UserPersonalInfo
      description: User details.
      properties:
        addresses:
          type: array
          x-pii: SENSITIVE
          items:
            $ref: '#/components/schemas/PostalAddress'
        dob:
          $ref: '#/components/schemas/DateModel'
          x-pii: SENSITIVE
        email:
          type: string
          format: email
          example: example@email.com
          x-pii: IDENTIFIER
        emergencyContactInfo:
          deprecated: true
          x-sunset: '2026-07-01'
          $ref: '#/components/schemas/EmergencyContactInfo'
        gender:
          $ref: '#/components/schemas/Gender'
          x-pii: SENSITIVE
        identityDocs:
          type: array
          description: List of user identity documents.
          items:
            $ref: '#/components/schemas/IdentityDocument'
          example:
            - passport:
                docId: PASSPORTID
                expiryDate:
                  iso8601: '2017-07-21'
                issueCountry: IN
                issuedDate:
                  iso8601: '2017-07-21'
                nationalityCountry: IN
                type: REGULAR
            - ktn:
                number: '123456'
                issueCountry: US
        name:
          $ref: '#/components/schemas/Name'
        phoneNumbers:
          type: array
          x-pii: IDENTIFIER
          items:
            $ref: '#/components/schemas/PhoneNumber'
        profilePicture:
          $ref: '#/components/schemas/Image'
          x-pii: SENSITIVE
        nationality:
          type: string
          example: Indian
          description: Nationality of user
          x-pii: SENSITIVE
        title:
          $ref: '#/components/schemas/UserTitle'
        preferredLanguage:
          type: string
          description: Language preferred by user.
          example: en-US
        preferredPronoun:
          description: Pronoun preferred by user.
          $ref: '#/components/schemas/PreferredPronoun'
        travelerName:
          description: A name of user that does not contain special characters.
          $ref: '#/components/schemas/Name'
        emergencyContact:
          $ref: '#/components/schemas/EmergencyContact'
    UserTitle:
      title: UserTitle
      type: string
      x-pii: SENSITIVE
      enum:
        - TITLE_UNKNOWN
        - MR
        - MS
        - MRS
        - MX
        - MASTER
        - MISS
        - DR
        - PROFESSOR
        - CAPTAIN
        - REVEREND
        - HONOURABLE
        - SIR
        - LADY
        - AMBASSADOR
        - LORD
        - BRIGADIER
        - SENATOR
        - DAME
        - JUSTICE
        - UK
        - TITLE_REDACTED
      example: MR
    UserTravelArrangers:
      type: object
      title: UserTravelArrangers
      description: Travel arrangers for a user.
      required:
        - travelArrangers
      properties:
        travelArrangers:
          type: array
          items:
            $ref: '#/components/schemas/TravelArrangerBasicInfo'
    UserTripGroup:
      type: object
      title: UserTripGroup
      description: Definition of a group to combine users and their trips.
      required:
        - ownerId
      properties:
        id:
          type: string
          description: ID of the group.
          format: uuid
          example: f49d00fe-1eda-4304-ba79-a980f565281d
        name:
          type: string
          description: Name of the group.
          example: Sample group name
        userGroupInfo:
          $ref: '#/components/schemas/UserGroupInfo'
        userTripInfos:
          type: array
          description: Details of the users and their trips in the group.
          items:
            $ref: '#/components/schemas/UserTripInfo'
        ownerId:
          $ref: '#/components/schemas/UserId'
        status:
          $ref: '#/components/schemas/UserFacingStatus'
        startDate:
          $ref: '#/components/schemas/DateModel'
        endDate:
          $ref: '#/components/schemas/DateModel'
        createdAt:
          $ref: '#/components/schemas/DateTimeOffset'
    UserTripInfo:
      type: object
      title: UserTripInfo
      description: User and their trip information.
      required:
        - userId
      properties:
        userId:
          $ref: '#/components/schemas/UserId'
        tripInfos:
          type: array
          description: List of trips for the user.
          items:
            $ref: '#/components/schemas/TripInfo'
    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
    VendorInfo:
      type: object
      title: VendorInfo
      description: Name/ID etc. of the vendor.
      required:
        - vendorId
        - vendorName
      properties:
        vendorId:
          type: string
          description: ID of the vendor.
        vendorName:
          type: string
          description: Name of the vendor.
    VendorProgramPaymentDescriptor:
      type: object
      title: VendorProgramPaymentDescriptor
      description: Descriptor for vendor program payment.
      required:
        - vendorProgramPaymentMetadata
      properties:
        vendorInfo:
          $ref: '#/components/schemas/VendorInfo'
        vendorProgramPaymentMetadata:
          $ref: '#/components/schemas/VendorProgramPaymentMetadata'
    VendorProgramPaymentDescriptorWrapper:
      type: object
      title: VendorProgramPaymentDescriptorWrapper
      description: Wrapper for VendorProgramPaymentDescriptor
      properties:
        vendorProgramPaymentDescriptor:
          $ref: '#/components/schemas/VendorProgramPaymentDescriptor'
    VendorProgramPaymentMetadata:
      type: object
      title: VendorProgramPaymentMetadata
      description: Vendor program payment specific metadata.
      oneOf:
        - $ref: '#/components/schemas/DirectBillingWrapper'
        - $ref: '#/components/schemas/AirlineProgramWrapper'
    VirtualCardDescriptor:
      type: object
      title: VirtualCardDescriptor
      description: Descriptor for virtual card.
      properties:
        vendor:
          $ref: '#/components/schemas/VirtualCardVendor'
        reportingAttributes:
          type: array
          description: List of ReportingAttributes
          items:
            $ref: '#/components/schemas/ReportingAttribute'
        metadata:
          description: card descriptor corresponding to the virtual card.
          $ref: '#/components/schemas/VirtualCardDescriptorMetadata'
    VirtualCardDescriptorMetadata:
      type: object
      title: VirtualCardDescriptorMetadata
      description: Metadata corresponding to the VirtualCardDescriptor.
      oneOf:
        - $ref: '#/components/schemas/ConfermaMetadataWrapper'
    VirtualCardDescriptorWrapper:
      type: object
      title: VirtualCardDescriptorWrapper
      description: Wrapper for VirtualCardDescriptor
      properties:
        virtualCardDescriptor:
          $ref: '#/components/schemas/VirtualCardDescriptor'
    VirtualCardVendor:
      type: string
      description: Type of Virtual card vendor
      enum:
        - CONFERMA
      example: CONFERMA
    VirtualPaymentMetadata:
      type: object
      title: VirtualPaymentMetadata
      required:
        - label
      description: Metadata for custom virtual payment source.
      properties:
        label:
          type: string
          example: Custom payment card
          description: Label for custom virtual payment source.
    VirtualPaymentMetadataWrapper:
      type: object
      title: VirtualPaymentMetadataWrapper
      description: Wrapper for custom virtual payment metadata
      required:
        - virtualPaymentMetadata
      properties:
        virtualPaymentMetadata:
          $ref: '#/components/schemas/VirtualPaymentMetadata'
    WorkerType:
      type: string
      description: The type of worker.
      enum:
        - EMPLOYEE
        - CONTINGENT
        - SEASONAL
        - INTERN
        - GUEST
      example: EMPLOYEE
      x-enumValidFrom:
        GUEST: '2025-06-03'
tags:
  - name: Events
    description: APIs to create and manage events.
paths:
  /v2/events:
    post:
      tags:
        - Events
      summary: Create event
      description: >
        Create a draft event. Optionally pass newTraveler to create a new
        traveler and add them to the event. If the traveler already exists, the
        request fails — use the travellers field with the existing userId.
      operationId: createEvent
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateEventRequest'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateEventResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
  /v2/events/{eventId}:
    parameters:
      - name: eventId
        in: path
        description: Event ID
        required: true
        schema:
          type: string
          example: '6926658168'
    get:
      tags:
        - Events
      summary: Get event
      description: Get event details for the specified event ID.
      operationId: getEvent
      parameters:
        - name: type
          in: query
          description: EventType of the event.
          schema:
            $ref: '#/components/schemas/EventType'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetEventResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
    delete:
      tags:
        - Events
      summary: Delete a draft event
      description: >-
        Delete a draft (i.e., unpublished) event. A deleted event cannot be
        accessed or viewed again.
      operationId: deleteEvent
      responses:
        '200':
          description: OK
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
  /v2/events/read-by-external-id:
    parameters:
      - name: externalId
        in: query
        description: External ID
        required: true
        schema:
          type: string
          example: '6926658168'
      - name: companyId
        in: query
        description: Company ID
        required: true
        schema:
          type: string
          format: uuid
          example: f49d00fe-1eda-4304-ba79-a980f565281d
    get:
      tags:
        - Events
      summary: Get event by external ID
      description: >
        Get event details using the event's `externalId`. External IDs are
        unique identifiers which can be set based on the company's preference.
      operationId: getEventByExternalID
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetEventResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
  /v2/events/{eventId}/travelers/add:
    parameters:
      - name: eventId
        in: path
        description: Event ID
        required: true
        schema:
          type: string
          example: '6926658168'
    post:
      tags:
        - Events
      summary: Add travelers to an event
      description: Add the list of travelers to be invited to the event.
      operationId: addTravelersToEvent
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AddTravelersToEventRequest'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AddTravelersToEventResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
  /v2/events/{eventId}/travelers/remove:
    parameters:
      - name: eventId
        in: path
        description: Event ID
        required: true
        schema:
          type: string
          example: '6926658168'
    post:
      tags:
        - Events
      summary: Remove travelers from an event
      description: >-
        Remove travelers from an event. This endpoint allows you to remove up to
        10 travelers per API call.
      operationId: removeTravelersFromEvent
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RemoveTravelersFromEventRequest'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RemoveTravelersFromEventResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
  /v2/events/list:
    post:
      tags:
        - Events
      summary: List events
      description: List all the events that match the specified criteria in the request.
      operationId: listEvents
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ListEventsRequest'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListEventsResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
  /v2/events/{eventId}/publish:
    parameters:
      - name: eventId
        in: path
        description: Event ID
        required: true
        schema:
          type: string
          example: '6926658168'
    post:
      tags:
        - Events
      summary: Publish event
      description: Publish a draft event.
      operationId: publishEvent
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EntityNonUUIDId'
                example:
                  id: 1234567890
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
  /v2/events/{eventId}/edit-basic-info:
    parameters:
      - name: eventId
        in: path
        description: Event ID
        required: true
        schema:
          type: string
          example: '6926658168'
    post:
      tags:
        - Events
      summary: Edit basic details of an event
      description: >-
        Edit the basic information of an event such as the event name,
        description, date and time, location, and contacts.
      operationId: updateEventBasicInfo
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateEventBasicInfoRequest'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EntityNonUUIDId'
                example:
                  id: 1234567890
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
  /v2/events/{eventId}/edit-booking-guidelines:
    parameters:
      - name: eventId
        in: path
        description: Event ID
        required: true
        schema:
          type: string
          example: '6926658168'
    post:
      tags:
        - Events
      summary: Update event booking guidelines
      description: >
        Update the booking guidelines for an event.

        You can update booking guidelines such as maximum number of guests
        allowed to accompany a traveler, 

        arrival and departure window for the event, payment methods, and allowed
        travel types.
      operationId: updateEventBookingGuidelines
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateEventBookingGuidelinesRequest'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EntityNonUUIDId'
                example:
                  id: 1234567890
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
  /v2/events/{eventId}/travelers/{travelerId}/rsvp:
    parameters:
      - name: eventId
        in: path
        description: Event ID
        required: true
        schema:
          type: string
          example: '6926658168'
      - name: travelerId
        in: path
        description: Traveler User ID
        required: true
        schema:
          type: string
          format: uuid
          example: f49d00fe-1eda-4304-ba79-a980f565281d
    post:
      tags:
        - Events
      summary: Set traveler RSVP
      description: Update the RSVP status and the RSVP response for a traveler.
      operationId: setUserEventRsvp
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SetUserEventRsvpRequest'
      responses:
        '200':
          description: OK
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
    get:
      tags:
        - Events
      summary: Get traveler RSVP
      description: Get the RSVP status and the RSVP response for a traveler.
      operationId: getUserEventRsvp
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EventUserRsvp'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
  /v2/events/{eventId}/invite/send:
    parameters:
      - name: eventId
        in: path
        description: Event ID
        required: true
        schema:
          type: string
          example: '6926658168'
    post:
      tags:
        - Events
      summary: Send invite
      description: >
        Send event invites to the travelers via email. 

        The invites can be sent to all travelers using a single API call, or you
        can send invites to specific travelers.
      operationId: sendInvite
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SendInviteRequest'
      responses:
        '200':
          description: OK
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
  /v2/events/{eventId}/invite/test:
    parameters:
      - name: eventId
        in: path
        description: Event ID
        required: true
        schema:
          type: string
          example: '6926658168'
    post:
      tags:
        - Events
      summary: Send a test invite
      description: >-
        Send a test event invite to the API caller. This endpoint can be used to
        preview the invite before sending it to the travelers.
      operationId: testInvite
      responses:
        '200':
          description: OK
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
  /v2/events/summaries:
    post:
      tags:
        - Events
      summary: Get event summaries
      description: >-
        View summaries of specific events. This endpoint retrieves a list of
        traveler event summaries based on specified `userId`, `companyId`, and
        `tripIds`.
      operationId: getEventSummaries
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GetEventSummariesRequest'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetEventSummariesResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
  /v2/events/payment-sources:
    parameters:
      - name: userId
        in: query
        description: ID of the event coordinator
        required: true
        schema:
          type: string
          format: uuid
          example: f49d00fe-1eda-4304-ba79-a980f565281d
    get:
      tags:
        - Events
      summary: Get allowed payment sources
      description: >-
        Get the payment sources that are associated with the `userId` of the
        event coordinator.
      operationId: getAllowedPaymentSources
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetEventsPaymentSourcesResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
  /v2/events/{eventId}/cancel:
    parameters:
      - name: eventId
        in: path
        description: Event ID
        required: true
        schema:
          type: string
          example: '6926658168'
      - name: type
        in: query
        description: |
          EventType of the event.
        schema:
          $ref: '#/components/schemas/EventType'
    post:
      tags:
        - Events
      summary: Cancel event
      description: >
        Cancel a published event. 

        After you've canceled the event, it's recommended that you cancel the
        bookings using the Cancel PNR API.
      operationId: cancelEvent
      responses:
        '200':
          description: OK
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
  /v2/events/{eventId}/travelers-list:
    parameters:
      - name: eventId
        in: path
        description: Event ID
        required: true
        schema:
          type: string
          example: '6926658168'
    post:
      tags:
        - Events
      summary: Get travelers list
      description: >
        Get a paginated list of travelers for an event, including each
        traveler's RSVP status, RSVP response, and `tripId`.
      operationId: listEventTravelers
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EventTravelersRequest'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EventTravelersResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
  /v2/events/{eventId}/custom-field-responses:
    parameters:
      - name: eventId
        in: path
        description: Event ID
        required: true
        schema:
          type: string
          example: '6926658168'
    put:
      tags:
        - Events
      summary: Update event custom field responses
      description: Update the response to a custom field question.
      operationId: updateCustomFieldResponses
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EventCustomFieldResponsesRequest'
      responses:
        '200':
          description: OK
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
  /v2/events/bulk-publish:
    post:
      tags:
        - Events
      summary: Bulk publish events
      description: >-
        API to bulk publish events and has a support for sending invite to
        selective users
      operationId: bulkPublishEvents
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BulkPublishEventRequest'
      responses:
        '200':
          description: Bulk publish response with event statuses
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BulkPublishResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
  /v2/events/bulk-edit:
    post:
      tags:
        - Events
      summary: Bulk edit/modify events.
      description: Edit the basic info and booking guidelines in bulk for events.
      operationId: bulkEditEvents
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BulkUpdateEventsRequest'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BulkUpdateEventsResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
  /v2/events/bulk-delete:
    post:
      tags:
        - Events
      summary: Bulk delete draft events
      description: API to bulk delete draft events.
      operationId: bulkDeleteEvents
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BulkDeleteEventRequest'
      responses:
        '200':
          description: Bulk delete response with event statuses
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BulkDeleteEventResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
  /v2/events/bulk-cancel:
    post:
      tags:
        - Events
      summary: Bulk cancel events
      description: API to bulk cancel events.
      operationId: bulkCancelEvents
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BulkCancelEventRequest'
      responses:
        '200':
          description: Bulk cancel response with event statuses
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BulkCancelEventResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
  /v2/events/jobs/status:
    post:
      tags:
        - Events
      summary: Get current details of an async event job.
      description: Get current details of an async event job
      operationId: getAsyncEventJobDetails
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AsyncJobDetailRequest'
      responses:
        '200':
          description: Async job details.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AsyncJobDetailResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
