{
  "openapi": "3.1.0",
  "info": {
    "title": "Car 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": {
      "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": {
      "AdditionalInfo": {
        "type": "object",
        "title": "AdditionalInfo",
        "description": "Additional data need to be sent along with the custom field response.",
        "discriminator": {
          "propertyName": "type",
          "mapping": {
            "VARIABLE": "#/components/schemas/Variable",
            "EXPRESSION": "#/components/schemas/Expression"
          }
        },
        "oneOf": [
          {
            "$ref": "#/components/schemas/Variable"
          },
          {
            "$ref": "#/components/schemas/Expression"
          }
        ]
      },
      "AdhocTravelerInfo": {
        "title": "AdhocTravelerInfo",
        "type": "object",
        "description": "Describes an adhoc traveler.",
        "properties": {
          "registrarUserId": {
            "description": "The registrar of the adhoc traveler.",
            "$ref": "#/components/schemas/UserId"
          },
          "externalId": {
            "type": "string",
            "description": "External Id of user",
            "example": "qwert123"
          }
        }
      },
      "AdhocTravelerInfoWrapper": {
        "title": "AdhocTravelerInfoWrapper",
        "description": "Wrapper over AdhocTravelerInfo object to be used as an identifier in a oneOf case.",
        "properties": {
          "adhocTravelerInfo": {
            "$ref": "#/components/schemas/AdhocTravelerInfo"
          }
        }
      },
      "AirConditioning": {
        "type": "string",
        "title": "AirConditioning",
        "description": "Whether air conditioning is available.",
        "enum": [
          "UNKNOWN_AC",
          "AC_AVAILABLE",
          "AC_NOT_AVAILABLE"
        ],
        "example": "AC_AVAILABLE"
      },
      "AirRequestTravelerInfo": {
        "title": "AirRequestTravelerInfo",
        "description": "The traveler identifiers. These can be either the Spotnana user IDs of the travelers or information regarding\nthe adhoc travelers.\n",
        "type": "object",
        "oneOf": [
          {
            "$ref": "#/components/schemas/UserIdWrapper"
          },
          {
            "$ref": "#/components/schemas/AdhocTravelerInfoWrapper"
          }
        ]
      },
      "AirRestrictedFaresParams": {
        "type": "object",
        "title": "AirRestrictedFaresParams",
        "properties": {
          "airRestrictedKeywords": {
            "type": "array",
            "description": "List of keywords grouped by airline",
            "items": {
              "$ref": "#/components/schemas/AirRestrictedKeyword"
            }
          }
        }
      },
      "AirRestrictedFaresParamsWrapper": {
        "type": "object",
        "title": "AirRestrictedFaresParamsWrapper",
        "properties": {
          "airRestrictedFaresParams": {
            "$ref": "#/components/schemas/AirRestrictedFaresParams"
          }
        }
      },
      "AirRestrictedKeyword": {
        "type": "object",
        "title": "AirRestrictedKeyword",
        "description": "Airline/Keyword to be restricted",
        "required": [
          "keyword"
        ],
        "properties": {
          "keyword": {
            "type": "string",
            "description": "Restricted keyword."
          },
          "airlineCode": {
            "type": "string",
            "description": "IATA airline code. If not set, the restriction applies to all airlines."
          }
        }
      },
      "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"
          }
        }
      },
      "AmadeusCheckoutVerificationInfo": {
        "type": "object",
        "required": [
          "paymentActionTokens"
        ],
        "properties": {
          "paymentActionTokens": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AmadeusPaymentActionToken"
            }
          },
          "paymentRequestId": {
            "type": "string",
            "deprecated": true,
            "x-sunset": "2026-07-01",
            "description": "Initial payment id generated by checkout SDK to initiate payment"
          },
          "actionToken": {
            "type": "string",
            "deprecated": true,
            "x-sunset": "2026-07-01",
            "description": "Token returned by checkout SDK to create/validate FOP in PSS order"
          },
          "confirmPayment": {
            "type": "boolean",
            "description": "Flag which indicates that the payment confirmation is now required (after 3ds or redirection)",
            "deprecated": true,
            "x-sunset": "2026-07-01"
          }
        }
      },
      "AmadeusCheckoutVerificationInfoWrapper": {
        "type": "object",
        "title": "AmadeusCheckoutVerificationInfoWrapper",
        "description": "Wrapper for amadeus checkout verification info object",
        "properties": {
          "amadeusCheckoutVerificationInfo": {
            "$ref": "#/components/schemas/AmadeusCheckoutVerificationInfo"
          }
        }
      },
      "AmadeusPaymentActionToken": {
        "type": "object",
        "required": [
          "paymentRequestId",
          "actionToken"
        ],
        "properties": {
          "paymentRequestId": {
            "type": "string",
            "description": "Initial payment id generated by checkout SDK to initiate payment"
          },
          "actionToken": {
            "type": "string",
            "description": "Token returned by checkout SDK to create/validate FOP in PSS order"
          }
        }
      },
      "AnswerPair": {
        "type": "object",
        "properties": {
          "item": {
            "type": "string",
            "description": "The option selected from the list of available choices."
          },
          "value": {
            "type": "string",
            "description": "The additional input provided (by the user) while selecting one of the options."
          },
          "description": {
            "type": "string",
            "description": "Description of the selected option."
          }
        }
      },
      "ApprovalType": {
        "type": "string",
        "description": "Type of APPROVAL",
        "enum": [
          "HARD_APPROVAL",
          "SOFT_APPROVAL",
          "PASSIVE_APPROVAL",
          "PRE_APPROVAL"
        ],
        "x-ignoreBreakingChanges": [
          "ApprovalType->PRE_APPROVAL"
        ],
        "example": "SOFT_APPROVAL"
      },
      "ApproverDetails": {
        "title": "ApproverDetails",
        "description": "Details about an approver",
        "type": "object",
        "properties": {
          "approverName": {
            "type": "string",
            "description": "Name of approver",
            "example": "John Doe"
          },
          "approverEmail": {
            "type": "string",
            "description": "Email of approver",
            "example": "john.doe@company.com"
          },
          "approverUserOrgId": {
            "$ref": "#/components/schemas/UserOrgId",
            "description": "User org id of the approver"
          },
          "type": {
            "$ref": "#/components/schemas/ApproverType",
            "description": "Type of approver"
          }
        }
      },
      "ApproverType": {
        "type": "string",
        "title": "ApproverType",
        "description": "Type of approver",
        "enum": [
          "UNKNOWN_APPROVER",
          "APPROVER",
          "AUTHORIZER"
        ],
        "example": "APPROVER"
      },
      "BookingCharge": {
        "type": "object",
        "description": "Details associated with a given payment method.",
        "properties": {
          "amount": {
            "$ref": "#/components/schemas/FareAmount",
            "description": "The amount to be charged for this payment method. This is optional if\nthere's only one payment method provided for the booking.\n"
          },
          "paymentMethod": {
            "$ref": "#/components/schemas/SelectedPaymentMethod"
          }
        }
      },
      "BookingContact": {
        "type": "object",
        "properties": {
          "emailAddress": {
            "type": "string",
            "description": "Email address of the booking contact",
            "example": "mail@mail.com"
          },
          "phoneNumber": {
            "$ref": "#/components/schemas/PhoneNumber"
          }
        }
      },
      "BookingPaymentDetails": {
        "type": "object",
        "description": "Payment details used for booking.",
        "required": [
          "bookingTravelerPaymentDetails"
        ],
        "properties": {
          "bookingTravelerPaymentDetails": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BookingTravelerPaymentDetails"
            }
          }
        }
      },
      "BookingTravelerPaymentDetails": {
        "type": "object",
        "description": "List of different forms of payments used for booking for a set of travelers.",
        "required": [
          "selectedFormOfPayments"
        ],
        "properties": {
          "selectedFormOfPayments": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SelectedFormOfPayment"
            }
          }
        }
      },
      "BoolWrapper": {
        "type": "object",
        "title": "BoolWrapper",
        "properties": {
          "b": {
            "type": "boolean"
          }
        }
      },
      "CarAdditionalDetail": {
        "type": "object",
        "title": "CarAdditionalDetail",
        "required": [
          "additionalDetailType",
          "text"
        ],
        "properties": {
          "carAdditionalDetailType": {
            "$ref": "#/components/schemas/CarAdditionalDetailType",
            "description": "Car Additional Detail Type."
          },
          "text": {
            "type": "string",
            "description": "Text description of additional detail.",
            "example": "Driver needs to 25+"
          }
        }
      },
      "CarAdditionalDetailType": {
        "type": "string",
        "title": "CarAdditionalDetailType",
        "description": "Additional Detail Type.",
        "enum": [
          "AGE_INFORMATION",
          "DRIVER_INFORMATION",
          "DROP_OFF_INFORMATION",
          "FEES_INFORMATION",
          "FUEL_INFORMATION",
          "GEOGRAPHIC_RESTRICTIONS_INFORMATION",
          "INSURANCE_INFORMATION",
          "LICENSE_INFORMATION",
          "SHUTTLE_INFORMATION",
          "OTHER_INFORMATION"
        ],
        "example": "AGE_INFORMATION"
      },
      "CarAmenities": {
        "type": "object",
        "title": "CarAmenities",
        "description": "Car amenities.",
        "properties": {
          "numDoors": {
            "type": "integer",
            "description": "Number of doors.",
            "format": "int32",
            "example": 4
          },
          "numLargeBags": {
            "type": "integer",
            "description": "Number of large bags.",
            "format": "int32",
            "example": 2
          },
          "numSeatBelts": {
            "type": "integer",
            "description": "Number of seats belts.",
            "format": "int32",
            "example": 5
          },
          "numSeats": {
            "type": "integer",
            "description": "Number of seats.",
            "format": "int32",
            "example": 5
          },
          "numSmallBags": {
            "type": "integer",
            "description": "Number of small bags.",
            "format": "int32",
            "example": 5
          }
        }
      },
      "CarCancelPnrRequest": {
        "type": "object",
        "required": [
          "pnrId"
        ],
        "properties": {
          "pnrId": {
            "type": "string",
            "description": "The PNR ID of the car booking to be cancelled.",
            "example": "4974a66b"
          },
          "customFieldUserResponses": {
            "type": "array",
            "description": "Custom field responses for the booking.",
            "items": {
              "$ref": "#/components/schemas/CustomFieldV3Response"
            }
          },
          "waiveOffInfo": {
            "$ref": "#/components/schemas/WaiveOffInfo"
          },
          "postPaymentVerificationInfo": {
            "$ref": "#/components/schemas/PostPaymentVerificationInfo"
          },
          "bookingPaymentDetails": {
            "$ref": "#/components/schemas/BookingPaymentDetails"
          }
        }
      },
      "CarCancelPnrResponse": {
        "type": "object",
        "required": [
          "confirmationId"
        ],
        "properties": {
          "confirmationId": {
            "type": "string",
            "description": "The cancellation confirmation number.",
            "example": "AU847750750"
          },
          "paymentVerificationInfo": {
            "$ref": "#/components/schemas/PaymentVerificationInfo"
          }
        }
      },
      "CarCancellationDeadline": {
        "type": "object",
        "oneOf": [
          {
            "$ref": "#/components/schemas/CarCancellationDeadlineAbsolute"
          },
          {
            "$ref": "#/components/schemas/CarCancellationDeadlineHoursBefore"
          }
        ]
      },
      "CarCancellationDeadlineAbsolute": {
        "type": "object",
        "title": "CarCancellationDeadlineAbsolute",
        "description": "Absolute deadline before which cancellation is accepted (With Refund Policies)",
        "properties": {
          "carCancellationDeadlineAbsolute": {
            "$ref": "#/components/schemas/DateTimeLocal"
          }
        }
      },
      "CarCancellationDeadlineHoursBefore": {
        "type": "object",
        "title": "CarCancellationDeadlineHoursBefore",
        "description": "Hours before before which cancellation is accepted (With Refund Policies)",
        "properties": {
          "carCancellationDeadlineHoursBefore": {
            "type": "integer",
            "format": "int32",
            "example": 2
          }
        }
      },
      "CarCancellationPenalty": {
        "type": "object",
        "oneOf": [
          {
            "$ref": "#/components/schemas/CarCancellationPenaltyAmount"
          },
          {
            "$ref": "#/components/schemas/CarCancellationPenaltyPercent"
          }
        ]
      },
      "CarCancellationPenaltyAmount": {
        "type": "object",
        "title": "CarCancellationPenaltyAmount",
        "description": "Amount charged for cancellation",
        "properties": {
          "carCancellationAmount": {
            "$ref": "#/components/schemas/Money"
          }
        }
      },
      "CarCancellationPenaltyPercent": {
        "type": "object",
        "title": "CarCancellationPenaltyPercent",
        "description": "Percent of Fees to be charged for cancellation",
        "properties": {
          "carCancellationAmountPercent": {
            "type": "number",
            "format": "double",
            "example": 10
          }
        }
      },
      "CarCancellationPolicy": {
        "type": "object",
        "description": "Car cancellation deadline and amount that would be charged details",
        "properties": {
          "penalty": {
            "$ref": "#/components/schemas/CarCancellationPenalty"
          },
          "deadline": {
            "$ref": "#/components/schemas/CarCancellationDeadline"
          }
        }
      },
      "CarCo2EmissionDetail": {
        "type": "object",
        "description": "The CO2 emission detail for car.",
        "required": [
          "co2EmissionValue"
        ],
        "properties": {
          "co2EmissionValue": {
            "type": "number",
            "format": "double",
            "example": 0.01,
            "description": "The CO2 emission value in kgs for car."
          }
        }
      },
      "CarCreatePnrRequest": {
        "type": "object",
        "required": [
          "carId",
          "bookingKey",
          "tripData",
          "bookingCharges",
          "travelers"
        ],
        "properties": {
          "bookingKey": {
            "type": "string",
            "description": "Booking Key from car price check response.",
            "example": "ChBjMmRlYjdhNzJiM2RjMzE1EhBmNDA3MzZlYjFiZDRmYWU5"
          },
          "carId": {
            "type": "string",
            "description": "CarId of the car to be booked.",
            "example": "EgRFQ0FSGgNFVzIiAkVUKgoKA1NGTxIDU0ZPMgoKA1NGTxIDU0ZP"
          },
          "tripData": {
            "$ref": "#/components/schemas/TripData",
            "description": "Trip data for the booking."
          },
          "travelers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CarTravelerInfo"
            },
            "description": "List of travelers for the booking."
          },
          "bookingContact": {
            "$ref": "#/components/schemas/BookingContact",
            "description": "Contact information for the booking."
          },
          "bookingCharges": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BookingCharge"
            },
            "description": "List of charges for the booking."
          },
          "customFieldUserResponses": {
            "type": "array",
            "description": "Custom field responses for the booking.",
            "items": {
              "$ref": "#/components/schemas/CustomFieldV3Response"
            }
          },
          "postPaymentVerificationInfo": {
            "$ref": "#/components/schemas/PostPaymentVerificationInfo"
          }
        }
      },
      "CarCreatePnrResponse": {
        "type": "object",
        "properties": {
          "pnrId": {
            "type": "string",
            "description": "Spotnana PNR ID.",
            "example": "2267585596"
          },
          "sourcePnrId": {
            "type": "string",
            "description": "Source PNR ID.",
            "example": "LRXQXA"
          },
          "pnrStatus": {
            "$ref": "#/components/schemas/PnrStatus",
            "description": "Status of the PNR after creation."
          },
          "paymentVerificationInfo": {
            "$ref": "#/components/schemas/PaymentVerificationInfo"
          }
        }
      },
      "CarDailyRate": {
        "title": "CarDailyRate",
        "description": "Contains daily rate for the relevant car.",
        "properties": {
          "total": {
            "description": "Daily total rate.",
            "$ref": "#/components/schemas/Money"
          },
          "base": {
            "description": "Daily base rate.",
            "$ref": "#/components/schemas/Money"
          },
          "tax": {
            "description": "Daily tax rate.",
            "$ref": "#/components/schemas/Money"
          }
        }
      },
      "CarEditPnrRequest": {
        "type": "object",
        "title": "CarEditPnrRequest",
        "required": [
          "travelerUpdateInfos"
        ],
        "example": {},
        "properties": {
          "travelerUpdateInfos": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CarTravelerUpdateInfo"
            }
          }
        }
      },
      "CarExta": {
        "type": "object",
        "title": "CarExta",
        "description": "Extra charges for the car. In US if rider is less than 21 years old there is some extra charge\n",
        "required": [
          "amount"
        ],
        "properties": {
          "carExtraType": {
            "type": "string",
            "enum": [
              "UNKNOWN_TYPE",
              "RENTER_AGE",
              "ADDITIONAL-DRIVER",
              "BABY-STROLLER",
              "CHILD-SEAT-BOOSTER",
              "BICYCLE-RACK",
              "CARGO-BARRIER-BACK",
              "CARGO-BARRIER-FRONT",
              "BOOSTER-SEAT-UP-TO-AGE-12",
              "COLLISION-DAMAGE-WAIVER",
              "CHILD-SEAT-UP-TO-AGE-3",
              "CHILD-SEAT-INFANT",
              "SATELLITE-RADIO",
              "CHILD-SEAT-TODDLER",
              "REAR-SEAT-DVD-PLAYER",
              "FLAG-HOLDER",
              "HAND-CONTROL-LEFT",
              "HAND-CONTROL-RIGHT",
              "MOTORCYCLE-HELMET",
              "SECURITY-DEVICES",
              "JERRY-CAN",
              "LOSS-DAMAGE-WAIVER",
              "LUGGAGE-ROOF-CASE",
              "LUGGAGE-TRAILER",
              "LUGGAGE-RACK",
              "NAVIGATIONAL-SYSTEM",
              "NAVIGATIONAL-SYSTEM-BUILT-IN",
              "PERSONAL-ACCIDENT-INSURANCE",
              "MOBILE-PHONE",
              "ROAD-CONGESTION-PAYMENT-SCHEME",
              "SEAT-BELT-EXTENSION",
              "SNOW-BOARD-RACKS",
              "SKI-BOX",
              "SKI-RACK-ONLY",
              "SKI-RACK-OR-BOX",
              "SKI-EQUIPPED-VEHICLE",
              "SNOW-CHAINS",
              "SNOW-PACKS",
              "SNOW-TIRES",
              "SPINNER-KNOB",
              "SURF-RACK",
              "SCOOTER-TOP-CASE",
              "SNOW-WINTER-TIRES",
              "TOLL-PAYMENT-TAG-PASS",
              "SPARE-TIRE",
              "WHEEL-CHAIR-ACCESS-RAMP",
              "WHEEL-CHAIR",
              "WIFI-ACCESS"
            ],
            "example": "RENTER_AGE"
          },
          "carExtraRateUnit": {
            "type": "string",
            "enum": [
              "UNKNOWN_RATE_UNIT",
              "DAILY",
              "WEEKEND",
              "WEEKLY",
              "MONTHLY",
              "BUNDLED",
              "TOTAL"
            ],
            "example": "DAILY"
          },
          "amount": {
            "$ref": "#/components/schemas/Money",
            "description": "Car Extra amount"
          }
        }
      },
      "CarExtraType": {
        "type": "string",
        "title": "CarExtraType",
        "description": "Car Extra Types.",
        "enum": [
          "BICYCLE_RACK",
          "CHILD_SEAT_BOOSTER",
          "CHILD_SEAT_INFANT",
          "CHILD_SEAT_TODDLER",
          "SATELLITE_RADIO",
          "LUGGAGE_RACK",
          "NAVIGATIONAL_SYSTEM",
          "SKI_EQUIPPED_VEHICLE",
          "SNOW_CHAINS",
          "WHEEL_CHAIR_ACCESS_RAMP"
        ],
        "example": "CHILD_SEAT_INFANT"
      },
      "CarFareType": {
        "type": "string",
        "title": "CarFareType",
        "description": "Car Extra Types.",
        "enum": [
          "UNKNOWN_FARE_TYPE",
          "PUBLISHED",
          "CORPORATE",
          "SPOTNANA",
          "TMC"
        ],
        "example": "CORPORATE"
      },
      "CarFilters": {
        "type": "object",
        "description": "Filters for car search.",
        "properties": {
          "carTypes": {
            "description": "Filter based on car type. Ex. MINI/CONVERTIBLE.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CarType"
            }
          },
          "numPassengers": {
            "$ref": "#/components/schemas/Int32Range"
          },
          "vendors": {
            "description": "Filter based on car vendor code.",
            "type": "array",
            "example": [
              "ZI",
              "ZD"
            ],
            "items": {
              "type": "string"
            }
          },
          "excludeTransmissions": {
            "description": "Exclude a list of Transmission types.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TransmissionSearchFilter"
            }
          },
          "engineTypes": {
            "description": "Filter based on engine type. Ex. DIESEL/PETROL.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EngineType"
            }
          },
          "hasAirConditioning": {
            "type": "boolean",
            "default": false,
            "example": true,
            "description": "filter to filter out cars with Air Conditioning"
          },
          "carExtraTypes": {
            "description": "Filter based on car extras. Ex. CHILD_SEAT_TODDLER/BICYCLE_RACK.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CarExtraType"
            }
          },
          "preferredOnly": {
            "description": "Include cars that are from preferred vendors.",
            "type": "boolean",
            "default": false
          },
          "price": {
            "$ref": "#/components/schemas/SimpleMoneyRange",
            "description": "Filter based on price range."
          },
          "paymentTypes": {
            "description": "Filter out the results for which only a certain payment type can be applied.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PaymentSourceType"
            }
          },
          "fareTypes": {
            "description": "Filter based on fare types.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CarFareType"
            }
          }
        }
      },
      "CarLocationContactInfo": {
        "type": "object",
        "title": "CarLocationContactInfo",
        "description": "Contact info of the location",
        "properties": {
          "phone": {
            "type": "array",
            "items": {
              "type": "string",
              "description": "Phone number of the location",
              "example": "123 456-7890"
            }
          },
          "fax": {
            "type": "array",
            "items": {
              "type": "string",
              "description": "Fax contact for the location",
              "example": "123 456-7890"
            }
          },
          "email": {
            "type": "array",
            "items": {
              "type": "string",
              "description": "Email address of the location",
              "example": "user@business.com"
            }
          },
          "emergencyPhone": {
            "type": "array",
            "items": {
              "type": "string",
              "description": "Emergency Phone number of the vendor",
              "example": "123 456-7890"
            }
          }
        }
      },
      "CarLocationDetails": {
        "type": "object",
        "title": "CarLocationDetails",
        "description": "Pickup and drop-off location info.",
        "required": [
          "address"
        ],
        "properties": {
          "address": {
            "$ref": "#/components/schemas/PostalAddress",
            "description": "Location address / airport code."
          },
          "coordinates": {
            "$ref": "#/components/schemas/Latlng",
            "description": "Latitude and longitude of the location."
          },
          "counterLocation": {
            "$ref": "#/components/schemas/CounterLocation",
            "description": "Counter location. If airport counter, set locationCode in address."
          },
          "operatingSchedule": {
            "$ref": "#/components/schemas/OperatingSchedule",
            "description": "Operating schedule of vendor"
          },
          "weeklyOperatingSchedule": {
            "type": "array",
            "description": "Weekly operating schedule of vendor",
            "items": {
              "$ref": "#/components/schemas/OperatingSchedule"
            }
          },
          "contactInfo": {
            "$ref": "#/components/schemas/CarLocationContactInfo",
            "description": "Contact info of the location"
          }
        }
      },
      "CarLocationDetailsRequest": {
        "type": "object",
        "title": "CarLocationDetailsRequest",
        "required": [
          "vendorCode",
          "locationCode",
          "userId"
        ],
        "properties": {
          "vendorCode": {
            "type": "string",
            "description": "Vendor code of the car company.",
            "example": "ZE"
          },
          "locationCode": {
            "type": "string",
            "description": "IATA airport code.",
            "example": "SFO"
          },
          "userId": {
            "$ref": "#/components/schemas/UserId",
            "description": "Car User Identifier."
          }
        }
      },
      "CarLocationDetailsResponse": {
        "type": "object",
        "title": "CarLocationDetailsResponse",
        "description": "Car location details",
        "required": [
          "location",
          "vendor"
        ],
        "properties": {
          "location": {
            "$ref": "#/components/schemas/CarLocationDetails",
            "description": "Car Location details"
          },
          "vendor": {
            "$ref": "#/components/schemas/Vendor",
            "description": "Car Vendor information"
          }
        }
      },
      "CarLoyaltyCode": {
        "type": "object",
        "description": "Loyalty code information for car rentals",
        "required": [
          "vendor",
          "code",
          "type"
        ],
        "properties": {
          "vendor": {
            "type": "string",
            "description": "Vendor code",
            "example": "ZI"
          },
          "code": {
            "type": "string",
            "description": "Loyalty code",
            "example": "1924047077"
          },
          "type": {
            "type": "string",
            "description": "Loyalty type",
            "enum": [
              "PROMOTIONAL_COUPON"
            ],
            "example": "PROMOTIONAL_COUPON"
          }
        }
      },
      "CarModifyBookingRequest": {
        "type": "object",
        "required": [
          "searchId",
          "carId",
          "tripData",
          "bookingCharges",
          "travelers"
        ],
        "properties": {
          "searchId": {
            "deprecated": true,
            "type": "string",
            "description": "SearchID of the car modify search.",
            "example": "1cf76aba18e4015f",
            "x-sunset": "2027-01-01"
          },
          "carId": {
            "type": "string",
            "description": "CarId of the car to be booked.",
            "example": "EgRFQ0FSGgNFVzIiAkVUKgoKA1NGTxIDU0ZPMgoKA1NGTxIDU0ZP"
          },
          "tripData": {
            "$ref": "#/components/schemas/TripData"
          },
          "preBookAnswers": {
            "deprecated": true,
            "$ref": "#/components/schemas/PreBookAnswers",
            "x-sunset": "2027-01-01"
          },
          "bookingCharges": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BookingCharge"
            }
          },
          "travelers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CarTravelerInfo"
            }
          },
          "customFieldV3Responses": {
            "type": "array",
            "description": "Custom field responses for the booking.",
            "items": {
              "$ref": "#/components/schemas/CustomFieldV3Response"
            }
          },
          "waiveOffInfo": {
            "$ref": "#/components/schemas/WaiveOffInfo"
          },
          "arrivalFlightNumber": {
            "$ref": "#/components/schemas/FlightNumber"
          },
          "bookingKey": {
            "type": "string",
            "description": "Booking Key from car price check response.",
            "example": "ChBjMmRlYjdhNzJiM2RjMzE1EhBmNDA3MzZlYjFiZDRmYWU5"
          },
          "bookingPaymentDetails": {
            "description": "Details about the payment methods used by travelers for booking.",
            "$ref": "#/components/schemas/BookingPaymentDetails"
          },
          "postPaymentVerificationInfo": {
            "$ref": "#/components/schemas/PostPaymentVerificationInfo"
          }
        }
      },
      "CarModifyBookingResponse": {
        "type": "object",
        "properties": {
          "pnrId": {
            "type": "string",
            "description": "Spotnana PNR ID.",
            "example": "2267585596"
          },
          "sourcePnrId": {
            "type": "string",
            "description": "Source PNR ID.",
            "example": "LRXQXA"
          },
          "pnrStatus": {
            "$ref": "#/components/schemas/PnrStatus"
          },
          "paymentVerificationInfo": {
            "$ref": "#/components/schemas/PaymentVerificationInfo"
          }
        }
      },
      "CarModifySearchRequest": {
        "type": "object",
        "required": [
          "pickup",
          "dropOff"
        ],
        "properties": {
          "pickup": {
            "$ref": "#/components/schemas/SearchParams"
          },
          "dropOff": {
            "$ref": "#/components/schemas/SearchParams"
          },
          "filters": {
            "$ref": "#/components/schemas/CarFilters"
          },
          "sortOptions": {
            "$ref": "#/components/schemas/CarSortOption"
          },
          "renterAge": {
            "type": "integer",
            "description": "Age of the renter",
            "example": 30
          },
          "citizenCountryCode": {
            "type": "string",
            "description": "Citizen code of the renter",
            "example": "US"
          },
          "pickupCountryCode": {
            "type": "string",
            "description": "Country code of the pick up location",
            "example": "US"
          },
          "loyaltyCode": {
            "type": "array",
            "description": "Loyalty codes to be applied",
            "items": {
              "$ref": "#/components/schemas/CarLoyaltyCode"
            }
          }
        }
      },
      "CarPriceCheckRequest": {
        "type": "object",
        "title": "CarPriceCheckRequest",
        "required": [
          "searchId",
          "carId"
        ],
        "properties": {
          "searchId": {
            "type": "string",
            "description": "SearchID of the selected car.",
            "example": "1cf76aba18e4015f"
          },
          "carId": {
            "type": "string",
            "description": "CarId of the car to be booked.",
            "example": "EgRFQ0FSGgNFVzIiAkVUKgoKA1NGTxIDU0ZPMgoKA1NGTxIDU0ZP"
          },
          "tripId": {
            "type": "string",
            "description": "Trip ID",
            "example": 1234567890
          },
          "isModify": {
            "type": "boolean",
            "description": "Indicates if this API call is a part of modify search and book.",
            "example": false
          }
        }
      },
      "CarPriceCheckResponse": {
        "type": "object",
        "title": "CarPriceCheckResponse",
        "required": [
          "hasPriceChanged"
        ],
        "properties": {
          "timeoutSeconds": {
            "type": "integer",
            "description": "Time in seconds for which the price is held.",
            "example": 3900
          },
          "hasPriceChanged": {
            "type": "boolean",
            "description": "Indicates if the price has changed from the details.",
            "example": true
          },
          "rateInfo": {
            "$ref": "#/components/schemas/CarRateDetails"
          },
          "finalRateInfo": {
            "$ref": "#/components/schemas/CarRateDetails"
          },
          "preferences": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Preference"
            }
          },
          "bookingKey": {
            "type": "string",
            "description": "Booking key used to make booking."
          }
        }
      },
      "CarRateComponent": {
        "type": "object",
        "title": "CarRateComponent",
        "required": [
          "componentType",
          "amount"
        ],
        "properties": {
          "componentType": {
            "$ref": "#/components/schemas/CarRateComponentType",
            "description": "Car Rate component type"
          },
          "amount": {
            "$ref": "#/components/schemas/Money",
            "description": "RateComponent amount"
          },
          "mileageAllowance": {
            "$ref": "#/components/schemas/Length",
            "description": "Maximum distance covered in fare"
          },
          "extraMileageCharge": {
            "$ref": "#/components/schemas/Money",
            "description": "Extra charge after exceeding mileage allowance"
          }
        }
      },
      "CarRateComponentType": {
        "type": "string",
        "description": "Rate type.",
        "enum": [
          "UNKNOWN_TYPE",
          "DROP_OFF_CHARGE",
          "EXTRA_DAY",
          "EXTRA_HOUR",
          "BASE_RATE",
          "BASE_RATE_TOTAL",
          "SUBTOTAL_EXCLUDING_MANDATORY_CHARGES",
          "DAILY_CHARGES_TOTAL",
          "HOURLY_CHARGES_TOTAL",
          "MANDATORY_CHARGES",
          "MANDATORY_CHARGES_TOTAL",
          "APPROXIMATE_TOTAL_PRICE",
          "CAR_EXTRA_TOTAL_CHARGE",
          "APPROXIMATE_BASE_FARE",
          "TOTAL_TAX",
          "PUBLISHED_BASE_FARE",
          "PUBLISHED_TOTAL_TAX",
          "APPROXIMATE_DAILY_AVERAGE_TOTAL",
          "APPROXIMATE_DAILY_AVERAGE_BASE",
          "APPROXIMATE_DAILY_AVERAGE_TAX",
          "PUBLISHED_DAILY_TOTAL",
          "PUBLISHED_DAILY_BASE_FARE",
          "PUBLISHED_DAILY_TOTAL_TAX",
          "CAR_MODIFY_RATE_DIFFERENCE",
          "CAR_MODIFY_AVERAGE_RATE_DIFFERENCE"
        ],
        "example": "CAR_EXTRA_TOTAL_CHARGE"
      },
      "CarRateDetails": {
        "type": "object",
        "title": "CarRateDetails",
        "description": "Car Rate information and breakdown",
        "properties": {
          "rateType": {
            "$ref": "#/components/schemas/CarRateType",
            "description": "Car Rate type"
          },
          "carRateComponents": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CarRateComponent"
            }
          },
          "carExtras": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CarExta"
            }
          },
          "refundable": {
            "$ref": "#/components/schemas/CarRefundableType",
            "description": "Car Refundable type"
          },
          "fareType": {
            "type": "string",
            "enum": [
              "PUBLISHED",
              "CORPORATE",
              "SPOTNANA",
              "UNKNOWN",
              "TMC"
            ],
            "example": "CORPORATE"
          },
          "allowedFop": {
            "$ref": "#/components/schemas/PaymentMethod",
            "deprecated": true,
            "x-sunset": "2027-01-01"
          },
          "allowedPaymentTypes": {
            "description": "Indicates the restriction on which payment method types can be used to make the booking.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PaymentSourceType"
            }
          },
          "dailyRates": {
            "description": "Contains daily rates for each day of the rental duration.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CarDailyRate"
            }
          }
        }
      },
      "CarRateDetailsRequest": {
        "type": "object",
        "title": "CarRateDetailsRequest",
        "required": [
          "searchId",
          "carId"
        ],
        "properties": {
          "searchId": {
            "type": "string",
            "description": "SearchID of the car rate details.",
            "example": "1cf76aba18e4015f"
          },
          "carId": {
            "type": "string",
            "description": "CarId of the car to be booked.",
            "example": "EgRFQ0FSGgNFVzIiAkVUKgoKA1NGTxIDU0ZPMgoKA1NGTxIDU0ZP"
          },
          "isModify": {
            "type": "boolean",
            "description": "Indicates if the request is for modifying an existing booking.",
            "example": false
          }
        }
      },
      "CarRateDetailsResponse": {
        "type": "object",
        "title": "CarRateDetailsResponse",
        "description": "Car rate details",
        "required": [
          "searchId",
          "carId",
          "pickupLocation",
          "dropOffLocation",
          "carVendor",
          "carCo2EmissionDetail",
          "isFlightNumberMandatoryForPickup"
        ],
        "properties": {
          "searchId": {
            "type": "string",
            "description": "SearchID of the car rate details.",
            "example": "1cf76aba18e4015f"
          },
          "carId": {
            "type": "string",
            "description": "CarId of the car to be booked.",
            "example": "EgRFQ0FSGgNFVzIiAkVUKgoKA1NGTxIDU0ZPMgoKA1NGTxIDU0ZP"
          },
          "pickupLocation": {
            "$ref": "#/components/schemas/CarLocationDetails",
            "description": "Car Pickup Location details"
          },
          "dropOffLocation": {
            "$ref": "#/components/schemas/CarLocationDetails",
            "description": "Car DropOff Location details"
          },
          "additionalDetails": {
            "type": "array",
            "description": "Car Additional Details",
            "items": {
              "$ref": "#/components/schemas/CarAdditionalDetail"
            }
          },
          "vendor": {
            "$ref": "#/components/schemas/Vendor",
            "description": "Car Vendor information"
          },
          "co2Emission": {
            "$ref": "#/components/schemas/CarCo2EmissionDetail",
            "description": "The CO2 emission detail for car"
          },
          "isFlightNumberMandatoryForPickup": {
            "type": "boolean",
            "description": "Indicates if flight number is mandatory for pickup"
          },
          "checkoutApprovalInfo": {
            "$ref": "#/components/schemas/CheckoutApprovalInfo",
            "description": "Checkout approval information"
          }
        }
      },
      "CarRateType": {
        "type": "string",
        "enum": [
          "UNKNOWN",
          "GUARANTEED",
          "PREPAID"
        ],
        "example": "GUARANTEED"
      },
      "CarRefundableType": {
        "type": "string",
        "enum": [
          "UNKNOWN_REFUNDABLE",
          "REFUNDABLE",
          "NON_REFUNDABLE"
        ],
        "example": "REFUNDABLE"
      },
      "CarSearchItinerary": {
        "type": "object",
        "properties": {
          "carId": {
            "type": "string",
            "description": "Unique car ID representing a particular car.",
            "example": "EgRDWE1SGgM0MEkiAlpJKgoKA1NUThIDU1ROMgoKA1NUThIDU1RO"
          },
          "pickupParams": {
            "type": "object",
            "properties": {
              "pickupLocation": {
                "$ref": "#/components/schemas/CarLocationDetails"
              },
              "pickupTime": {
                "$ref": "#/components/schemas/DateTimeLocal"
              },
              "pickupDistance": {
                "$ref": "#/components/schemas/Length"
              }
            }
          },
          "dropOffParams": {
            "type": "object",
            "properties": {
              "dropOffLocation": {
                "$ref": "#/components/schemas/CarLocationDetails"
              },
              "dropOffTime": {
                "$ref": "#/components/schemas/DateTimeLocal"
              },
              "dropOffDistance": {
                "$ref": "#/components/schemas/Length"
              }
            }
          },
          "rateInfo": {
            "$ref": "#/components/schemas/CarRateDetails"
          },
          "cancellationPolicy": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CarCancellationPolicy"
            }
          },
          "carSpec": {
            "$ref": "#/components/schemas/CarSpec"
          },
          "policyInformation": {
            "$ref": "#/components/schemas/PnrPolicyInfo"
          },
          "preferences": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Preference"
            }
          },
          "vendor": {
            "$ref": "#/components/schemas/Vendor"
          },
          "co2Emission": {
            "$ref": "#/components/schemas/CarCo2EmissionDetail"
          },
          "isSamePickupLocation": {
            "type": "boolean",
            "description": "Indicates whether the car pickup location is same as the original booking, used only in modify search flow.",
            "default": false
          }
        }
      },
      "CarSearchLocationParam": {
        "title": "CarSearchLocationParam",
        "description": "Car Search location parameters.",
        "type": "object",
        "properties": {
          "airportCode": {
            "type": "string",
            "description": "IATA code for AIRPORT",
            "example": "SFO"
          },
          "cityCode": {
            "type": "string",
            "description": "City Code.",
            "example": "JFK"
          },
          "coordinates": {
            "$ref": "#/components/schemas/Latlng"
          }
        }
      },
      "CarSearchMetadata": {
        "type": "object",
        "properties": {
          "availableVendors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Vendor"
            }
          },
          "showOnlyBaseFare": {
            "type": "boolean",
            "description": "Toggles behaviour on whether we show the fare as base amount or total amount depending on service location and legalEntity.",
            "default": false
          }
        }
      },
      "CarSearchRequest": {
        "type": "object",
        "description": "Car search information with user details",
        "required": [
          "pickup",
          "dropOff",
          "userId"
        ],
        "properties": {
          "pickup": {
            "$ref": "#/components/schemas/SearchParams"
          },
          "dropOff": {
            "$ref": "#/components/schemas/SearchParams"
          },
          "renterAge": {
            "type": "integer",
            "description": "Age of the renter",
            "example": 30
          },
          "citizenCountryCode": {
            "type": "string",
            "description": "Citizen code of the renter",
            "example": "US"
          },
          "pickupCountryCode": {
            "type": "string",
            "description": "Country code of the pick up location",
            "example": "US"
          },
          "loyaltyCode": {
            "type": "array",
            "description": "Loyalty codes to be applied",
            "items": {
              "$ref": "#/components/schemas/CarLoyaltyCode"
            }
          },
          "userId": {
            "$ref": "#/components/schemas/CarUserId",
            "description": "Car User Identifier."
          },
          "filters": {
            "$ref": "#/components/schemas/CarFilters"
          },
          "sortOptions": {
            "$ref": "#/components/schemas/CarSortOption"
          }
        }
      },
      "CarSearchResponse": {
        "type": "object",
        "properties": {
          "searchId": {
            "type": "string",
            "description": "Unique searchID associated to the car search",
            "example": "9585821762922174"
          },
          "cars": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CarSearchItinerary"
            }
          },
          "metadata": {
            "description": "Metadata for car search",
            "$ref": "#/components/schemas/CarSearchMetadata"
          }
        }
      },
      "CarSortBy": {
        "type": "string",
        "enum": [
          "PRICE",
          "DISTANCE"
        ],
        "example": "PRICE"
      },
      "CarSortOption": {
        "type": "object",
        "title": "CarSortOption",
        "description": "Car sorting option parameters.",
        "properties": {
          "sortBy": {
            "$ref": "#/components/schemas/CarSortBy"
          },
          "sortOrder": {
            "$ref": "#/components/schemas/CarSortOrder"
          }
        }
      },
      "CarSortOrder": {
        "type": "string",
        "enum": [
          "ASCENDING",
          "DESCENDING"
        ],
        "example": "ASCENDING"
      },
      "CarSpec": {
        "type": "object",
        "title": "CarSpec",
        "description": "Car spec.",
        "required": [
          "type"
        ],
        "properties": {
          "airConditioning": {
            "$ref": "#/components/schemas/AirConditioning",
            "description": "Whether air conditioning is available."
          },
          "amenities": {
            "$ref": "#/components/schemas/CarAmenities",
            "description": "Car amenities."
          },
          "type": {
            "$ref": "#/components/schemas/CarType",
            "description": "Car type."
          },
          "displayName": {
            "type": "string",
            "description": "Car display name.",
            "example": "Economy"
          },
          "engineType": {
            "$ref": "#/components/schemas/EngineType",
            "description": "Engine type."
          },
          "imageGroups": {
            "type": "array",
            "description": "Collection of car images.",
            "items": {
              "$ref": "#/components/schemas/ImageGroup"
            }
          },
          "transmission": {
            "$ref": "#/components/schemas/Transmission",
            "description": "Transmission type."
          }
        }
      },
      "CarTravelerInfo": {
        "type": "object",
        "required": [
          "travelerId"
        ],
        "properties": {
          "travelerId": {
            "description": "The ID of the traveler.",
            "$ref": "#/components/schemas/UserId"
          },
          "name": {
            "description": "Name of the traveler.",
            "$ref": "#/components/schemas/Name"
          },
          "dob": {
            "description": "Date of birth of the traveler.",
            "$ref": "#/components/schemas/DateModel"
          },
          "phoneNumber": {
            "description": "Phone number of the traveler.",
            "$ref": "#/components/schemas/PhoneNumber"
          },
          "email": {
            "description": "Email of the traveler.",
            "type": "string",
            "format": "email",
            "example": "example@email.com"
          },
          "loyaltyInfo": {
            "description": "Loyalty Info of the traveler.",
            "$ref": "#/components/schemas/LoyaltyInfo"
          },
          "blockLoyalty": {
            "description": "If true, hides the loyalty program input on the checkout page for this traveler.",
            "type": "boolean",
            "default": false,
            "example": false
          }
        }
      },
      "CarTravelerUpdateInfo": {
        "type": "object",
        "title": "CarTravelerUpdateInfo",
        "required": [
          "traveler",
          "updateTypes"
        ],
        "properties": {
          "traveler": {
            "$ref": "#/components/schemas/CarTravelerInfo"
          },
          "updateTypes": {
            "type": "array",
            "uniqueItems": true,
            "items": {
              "description": "Fields that are to be updated in the booking.",
              "type": "string",
              "enum": [
                "LOYALTY_INFO"
              ],
              "example": "LOYALTY_INFO"
            }
          }
        }
      },
      "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"
      },
      "CarUserId": {
        "type": "object",
        "title": "Car User Identifier",
        "description": "An identifier for the user involved in the car booking or search process.",
        "discriminator": {
          "propertyName": "userIdType",
          "mapping": {
            "USER_ID": "#/components/schemas/UserIdSearch",
            "REGISTRAR_USER_ID": "#/components/schemas/RegistrarUserIdSearch"
          }
        },
        "oneOf": [
          {
            "$ref": "#/components/schemas/UserIdSearch"
          },
          {
            "$ref": "#/components/schemas/RegistrarUserIdSearch"
          }
        ]
      },
      "CardCompany": {
        "type": "string",
        "enum": [
          "NONE",
          "VISA",
          "MASTERCARD",
          "AMEX",
          "DISCOVER",
          "AIR_TRAVEL_UATP",
          "CARTE_BLANCHE",
          "DINERS_CLUB",
          "JCB",
          "BREX",
          "UNION_PAY",
          "EURO_CARD",
          "ACCESS_CARD",
          "ELO_CARD"
        ],
        "description": "The issuing company of card",
        "example": "VISA"
      },
      "CardDetails": {
        "type": "object",
        "title": "Card Details",
        "description": "Card Details",
        "required": [
          "token",
          "expiry",
          "company"
        ],
        "properties": {
          "company": {
            "$ref": "#/components/schemas/CardCompany"
          },
          "token": {
            "type": "string",
            "description": "Tokenized Card Number",
            "example": "4111111111111111"
          },
          "expiry": {
            "$ref": "#/components/schemas/CardExpiry"
          }
        }
      },
      "CardExpiry": {
        "title": "CardExpiry",
        "type": "object",
        "description": "Contains the expiry of a Card.",
        "oneOf": [
          {
            "$ref": "#/components/schemas/TokenizedExpiryWrapper"
          },
          {
            "$ref": "#/components/schemas/ExpiryWrapper"
          }
        ]
      },
      "CheckoutApprovalInfo": {
        "title": "CheckoutApprovalInfo",
        "description": "Checkout approval information containing approval type and approver details",
        "type": "object",
        "properties": {
          "approvalType": {
            "$ref": "#/components/schemas/ApprovalType"
          },
          "approverDetails": {
            "type": "array",
            "description": "List of approver details",
            "items": {
              "$ref": "#/components/schemas/ApproverDetails"
            }
          }
        }
      },
      "CompanyConfigSource": {
        "type": "object",
        "title": "CompanyConfigSource",
        "description": "For this option source, options would be auto generated based on specified parameter.",
        "required": [
          "optionsParam"
        ],
        "properties": {
          "optionsParam": {
            "$ref": "#/components/schemas/CustomFieldOptionsParam"
          }
        }
      },
      "CompanyConfigSourceWrapper": {
        "type": "object",
        "title": "CompanyConfigSourceWrapper",
        "description": "Wrapper for option source company config.",
        "properties": {
          "companyConfig": {
            "$ref": "#/components/schemas/CompanyConfigSource"
          }
        }
      },
      "CompanyId": {
        "type": "object",
        "title": "CompanyId",
        "description": "Company ID",
        "required": [
          "id"
        ],
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "example": "f49d00fe-1eda-4304-ba79-a980f565281d"
          }
        }
      },
      "CompanyRef": {
        "type": "object",
        "description": "Basic information about a company.",
        "required": [
          "id"
        ],
        "properties": {
          "id": {
            "$ref": "#/components/schemas/CompanyId"
          },
          "name": {
            "type": "string"
          },
          "logo": {
            "$ref": "#/components/schemas/Image",
            "description": "Company logo"
          }
        }
      },
      "CounterLocation": {
        "type": "string",
        "title": "CounterLocation",
        "description": "Rental car counter location.",
        "enum": [
          "UNKNOWN_COUNTER",
          "NON_AIRPORT_LOCATION",
          "IN_TERMINAL",
          "OFF_AIRPORT_RENTAL_SHUTTLE",
          "IN_TERMINAL_RENTAL_SHUTTLE",
          "ON_AIRPORT_RENTAL_SHUTTLE",
          "ON_AIRPORT_AIRPORT_SHUTTLE",
          "CALL_FOR_SHUTTLE",
          "TWO_SHUTTLES_AIRPORT_AND_RENTAL"
        ],
        "example": "OFF_AIRPORT_RENTAL_SHUTTLE"
      },
      "Credit": {
        "type": "object",
        "title": "Credit",
        "required": [
          "ticketNumber",
          "ticketType",
          "sourcePnr",
          "totalFare",
          "passengerName",
          "segmentsAvailable",
          "type",
          "airlineInfo",
          "traveler",
          "source",
          "unusedCreditPcc",
          "pnrOwningPcc"
        ],
        "properties": {
          "type": {
            "type": "string",
            "description": "Payment source type. Should be set to CREDIT for unused credit details."
          },
          "pnrOwningPcc": {
            "type": "string",
            "description": "PCC the PNR was created on."
          },
          "unusedCreditPcc": {
            "type": "string",
            "description": "PCC the credit was issued on."
          },
          "departureCountry": {
            "type": "string",
            "description": "3 letter country code of the departure country associated with the original ticket.",
            "example": "USA"
          },
          "arrivalCountry": {
            "type": "string",
            "description": "3 letter country code of the arrival country associated with the original ticket.",
            "example": "USA"
          },
          "ticketType": {
            "type": "string",
            "description": "Type of credit.",
            "enum": [
              "TICKET_TYPE_UNKNOWN",
              "ETICKET",
              "MCO"
            ]
          },
          "departureDate": {
            "description": "Date for the departure of the first flight associated with the unused credit.",
            "$ref": "#/components/schemas/DateTimeOffset"
          },
          "segmentsAvailable": {
            "type": "string",
            "description": "Whether all segments are unused or some have already been used.",
            "enum": [
              "UNKNOWN",
              "ALL_OPEN",
              "PARTIAL",
              "OTHER"
            ]
          },
          "traveler": {
            "description": "Information about the traveler for which the credit should be redeemed.",
            "$ref": "#/components/schemas/AirRequestTravelerInfo"
          },
          "passengerName": {
            "description": "Name of the passenger associated with the credit.",
            "$ref": "#/components/schemas/Name"
          },
          "airlineInfo": {
            "description": "Airline info with airline name and code",
            "$ref": "#/components/schemas/AirlineInfo"
          },
          "totalFare": {
            "description": "Total airfare associated with the original ticket.",
            "$ref": "#/components/schemas/Money"
          },
          "issueDate": {
            "description": "Issue date for the unused credit.",
            "$ref": "#/components/schemas/DateTimeOffset"
          },
          "expiryDate": {
            "description": "Expiry date for the unused credit.",
            "$ref": "#/components/schemas/DateTimeOffset"
          },
          "source": {
            "$ref": "#/components/schemas/ThirdPartySource",
            "default": "SABRE",
            "description": "Source of unused credit e.g. Sabre, NDC etc."
          },
          "sourcePnr": {
            "type": "string",
            "description": "PNR number corresponding to third party through which booking was made.",
            "example": "MC5ONS"
          },
          "flightIds": {
            "type": "array",
            "description": "ID of the flights on which this credit applies.",
            "minItems": 1,
            "items": {
              "type": "string"
            }
          },
          "ticketNumber": {
            "type": "string",
            "description": "Ticket number for the ticket that was converted into an unused credit.",
            "example": "5267779139217"
          }
        },
        "x-ignoreBreakingChanges": [
          "Credit->pnrOwningPcc",
          "Credit->unusedCreditPcc",
          "Credit->source"
        ]
      },
      "CustomFieldLocation": {
        "title": "CustomFieldLocation",
        "description": "Display the custom fields in all these locations.",
        "type": "string",
        "enum": [
          "POLICY_APPROVAL_EMAIL",
          "PNR_EMAIL",
          "TRIP_EMAIL"
        ],
        "example": "POLICY_APPROVAL_EMAIL"
      },
      "CustomFieldMatchConditions": {
        "type": "object",
        "title": "CustomFieldMatchConditions",
        "description": "Conditions to select the custom field for given context.",
        "properties": {
          "travelerConditions": {
            "$ref": "#/components/schemas/TravelerMatchConditions"
          },
          "travelTypes": {
            "type": "array",
            "description": "Travel types to match.",
            "items": {
              "$ref": "#/components/schemas/TravelType"
            }
          },
          "travelRegionTypes": {
            "type": "array",
            "description": "Travel region types to match.",
            "items": {
              "$ref": "#/components/schemas/TravelRegionType"
            }
          },
          "tripUsageTypes": {
            "type": "array",
            "description": "Trip usage types to match. If empty, all trip usage types will be matched.",
            "items": {
              "$ref": "#/components/schemas/TripUsageType"
            }
          }
        }
      },
      "CustomFieldOptionsParam": {
        "type": "string",
        "title": "CustomFieldOptionsParam",
        "enum": [
          "COST_CENTER",
          "LEGAL_ENTITY",
          "OFFICE",
          "DEPARTMENT"
        ],
        "description": "Parameter to form options for the custom field.",
        "example": "COST_CENTER"
      },
      "CustomFieldSelectedOption": {
        "type": "object",
        "title": "CustomFieldSelectedOption",
        "description": "Selected response for the custom field.",
        "required": [
          "name"
        ],
        "properties": {
          "name": {
            "type": "string",
            "description": "Value of the selection"
          },
          "translatedName": {
            "type": "string",
            "description": "Translated value of the selection"
          },
          "description": {
            "type": "string",
            "description": "Description of the selection"
          },
          "translatedDescription": {
            "type": "string",
            "description": "Translated description of the selection"
          },
          "additionalUserInput": {
            "type": "string",
            "description": "Additional user input"
          },
          "additionalInfos": {
            "type": "array",
            "description": "Actual values of the additional infos",
            "items": {
              "type": "string"
            }
          },
          "additionalInfoConfigs": {
            "type": "array",
            "description": "Additional info configs for the selected option",
            "items": {
              "$ref": "#/components/schemas/AdditionalInfo"
            }
          }
        }
      },
      "CustomFieldType": {
        "type": "string",
        "description": "The type of custom field.",
        "enum": [
          "QUESTION",
          "MEETING",
          "BUDGET",
          "BREX_TOKEN"
        ],
        "default": "QUESTION"
      },
      "CustomFieldV3Response": {
        "type": "object",
        "title": "CustomFieldV3Response",
        "description": "Custom field responses.",
        "required": [
          "fieldId",
          "armId",
          "selectedOptions"
        ],
        "properties": {
          "fieldId": {
            "type": "string",
            "format": "uuid",
            "description": "Custom field id"
          },
          "fieldName": {
            "type": "string",
            "description": "Name of the custom field"
          },
          "armId": {
            "type": "string",
            "format": "uuid",
            "description": "Arm id which is applicable"
          },
          "includeLocations": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/IncludeLocation"
            }
          },
          "selectedOptions": {
            "type": "array",
            "description": "The list of options that are selected by user or auto populated.",
            "items": {
              "$ref": "#/components/schemas/CustomFieldSelectedOption"
            }
          }
        }
      },
      "DateModel": {
        "title": "Date",
        "description": "Date in ISO 8601 standard.",
        "type": "object",
        "required": [
          "iso8601"
        ],
        "properties": {
          "iso8601": {
            "type": "string",
            "pattern": "^\\d{4}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])$",
            "example": "2017-07-21"
          }
        }
      },
      "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."
          }
        }
      },
      "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
          }
        }
      },
      "DoubleListWrapper": {
        "type": "object",
        "title": "DoubleListWrapper",
        "properties": {
          "dList": {
            "type": "array",
            "items": {
              "type": "number",
              "format": "double"
            }
          }
        }
      },
      "DoubleRange": {
        "type": "object",
        "properties": {
          "min": {
            "type": "number",
            "format": "double",
            "description": "Minimum value - inclusive."
          },
          "max": {
            "type": "number",
            "format": "double",
            "description": "Maximum value - inclusive."
          }
        }
      },
      "DoubleRangeWrapper": {
        "type": "object",
        "title": "DoubleRangeWrapper",
        "properties": {
          "dRange": {
            "$ref": "#/components/schemas/DoubleRange"
          }
        }
      },
      "DoubleWrapper": {
        "type": "object",
        "title": "DoubleWrapper",
        "properties": {
          "d": {
            "type": "number",
            "format": "double"
          }
        }
      },
      "Dpan": {
        "type": "object",
        "title": "Dpan",
        "description": "Object to pass through dpan payment source details through the api call.",
        "required": [
          "type",
          "cardDetails"
        ],
        "properties": {
          "type": {
            "type": "string",
            "description": "Payment source type. Should be set to DPAN for card details."
          },
          "cardDetails": {
            "$ref": "#/components/schemas/CardDetails"
          }
        }
      },
      "EngineType": {
        "type": "string",
        "title": "EngineType",
        "description": "Engine types.",
        "enum": [
          "UNKNOWN_ENGINE",
          "PETROL",
          "DIESEL",
          "ELECTRIC",
          "CNG",
          "HYBRID",
          "HYDROGEN",
          "MULTI_FUEL",
          "ETHANOL"
        ],
        "example": "PETROL"
      },
      "EntityAnswer": {
        "type": "object",
        "properties": {
          "entityId": {
            "type": "string",
            "description": "The unique ID for the question."
          },
          "userInput": {
            "type": "string",
            "description": "The text input given by user (if any)."
          },
          "itemIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "description": "The id/enum value corresponding to the option chosen by the user as\nanswer.\n"
          },
          "answers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AnswerPair"
            }
          },
          "customFieldType": {
            "$ref": "#/components/schemas/CustomFieldType"
          },
          "questionDisplayText": {
            "type": "string",
            "description": "The question text to be displayed to the user."
          },
          "question": {
            "$ref": "#/components/schemas/Question"
          }
        }
      },
      "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."
                }
              }
            }
          }
        }
      },
      "Expiry": {
        "title": "Expiry",
        "type": "object",
        "description": "Contains the expiry of a Card.",
        "required": [
          "expiryMonth",
          "expiryYear"
        ],
        "properties": {
          "expiryMonth": {
            "type": "integer",
            "format": "int32",
            "minimum": 1,
            "maximum": 12,
            "description": "Expiry month",
            "example": 1
          },
          "expiryYear": {
            "type": "integer",
            "format": "int32",
            "description": "Expiry year",
            "minimum": 2000,
            "example": 2010
          }
        }
      },
      "ExpiryWrapper": {
        "type": "object",
        "title": "ExpiryWrapper",
        "properties": {
          "expiry": {
            "$ref": "#/components/schemas/Expiry"
          }
        }
      },
      "Expression": {
        "type": "object",
        "title": "Expression",
        "description": "Expression consisting of variables and constants which needs to be sent along with custom\nfield response.\n",
        "required": [
          "type",
          "formatExpression"
        ],
        "properties": {
          "type": {
            "type": "string",
            "example": "EXPRESSION",
            "default": "EXPRESSION"
          },
          "formatExpression": {
            "type": "string",
            "description": "The expression must be of format : `<any_text> ${expression} <any_text>`.The expression \ncan consist of a combination of variables and mathematical operations.\n Variable names must be same as VariableName Enum.\n  To define mathematical operations, the operation name should follow the format\n`math.<math_op>(arg1, arg2)`. Both `arg1` and `arg2` can be variables or constants. \nThe supported math operations (math_op) include: `add, mul, div, sub, min,\nand max`. All keywords, such as `<math_op>, math, and var` must be written in lowercase.\n",
            "example": "Result:  ${math.mul(LLF,5)}  ${ADD_COLLECT_AMOUNT}"
          },
          "variables": {
            "type": "array",
            "description": "Reference names of the variables present in the expression.",
            "deprecated": true,
            "x-sunset": "2026-07-01",
            "items": {
              "$ref": "#/components/schemas/VariableName"
            }
          }
        }
      },
      "FareAmount": {
        "type": "object",
        "title": "FareAmount",
        "description": "Fare amount including base fare and tax.",
        "required": [
          "base",
          "tax"
        ],
        "properties": {
          "base": {
            "description": "Base fare amount.",
            "$ref": "#/components/schemas/Money"
          },
          "tax": {
            "description": "Tax amount.",
            "$ref": "#/components/schemas/Money"
          },
          "taxBreakdown": {
            "description": "Breakdown of tax amounts.",
            "$ref": "#/components/schemas/TaxBreakdown"
          }
        }
      },
      "FareComponent": {
        "type": "string",
        "description": "Fare component eligible for this fop rule",
        "enum": [
          "BASE",
          "TAX"
        ],
        "example": "BASE"
      },
      "FlightNumber": {
        "title": "FlightNumber",
        "description": "Flight number and airline code.",
        "required": [
          "airlineCode",
          "num"
        ],
        "properties": {
          "num": {
            "type": "string",
            "description": "Flight number.",
            "example": "321"
          },
          "airlineCode": {
            "type": "string",
            "description": "Two-letter IATA airline code.",
            "example": "AA"
          }
        }
      },
      "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"
          }
        }
      },
      "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"
          }
        }
      },
      "GatewayIdentifier": {
        "type": "object",
        "properties": {
          "gatewayId": {
            "type": "string",
            "description": "Gateway Id for which the payment method should be verified."
          },
          "gatewayType": {
            "type": "string",
            "description": "Gateway Type for of the verification gateway.",
            "enum": [
              "PAYMENT_GATEWAY_UNKNOWN",
              "STRIPE",
              "BREX",
              "RAZORPAY"
            ]
          }
        }
      },
      "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"
            }
          }
        }
      },
      "IncludeLocation": {
        "type": "string",
        "title": "IncludeLocation",
        "description": "Various traveler notifications (e.g. emails) where the responses to this field should be included.",
        "enum": [
          "BOOKING_CONFIRMATION_EMAILS",
          "APPROVAL_EMAILS",
          "COMPANY_REPORTS",
          "CONSOLIDATED_ITINERARY_EMAILS"
        ],
        "example": "APPROVAL_EMAILS"
      },
      "Int32Range": {
        "type": "object",
        "properties": {
          "min": {
            "type": "integer",
            "format": "int32",
            "description": "Minimum value - inclusive."
          },
          "max": {
            "type": "integer",
            "format": "int32",
            "description": "Maximum value - inclusive."
          }
        }
      },
      "Int32RangeWrapper": {
        "type": "object",
        "title": "Int32RangeWrapper",
        "properties": {
          "iRange": {
            "$ref": "#/components/schemas/Int32Range"
          }
        }
      },
      "Int32Wrapper": {
        "type": "object",
        "title": "Int32Wrapper",
        "properties": {
          "i": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "Int64Wrapper": {
        "type": "object",
        "title": "Int64Wrapper",
        "properties": {
          "l": {
            "type": "integer",
            "format": "int64"
          }
        }
      },
      "IntListWrapper": {
        "type": "object",
        "title": "IntListWrapper",
        "properties": {
          "iList": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            }
          }
        }
      },
      "ItemType": {
        "type": "string",
        "description": "Type of payment item eligible for this fop rule",
        "enum": [
          "SERVICE_FEE",
          "TRAVEL_TICKET",
          "SEAT",
          "BAGGAGE",
          "EARLY_BIRD"
        ],
        "example": "SEAT"
      },
      "KeywordWithReasonListWrapper": {
        "type": "object",
        "title": "KeywordWithReasonListWrapper",
        "properties": {
          "keywordWithReasonList": {
            "$ref": "#/components/schemas/KeywordsWithReasonList"
          }
        }
      },
      "KeywordsWithReasonList": {
        "type": "object",
        "properties": {
          "keywords": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RestrictedKeywordsWithReason"
            }
          }
        }
      },
      "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
          }
        }
      },
      "LegalEntityId": {
        "type": "object",
        "title": "LegalEntityId",
        "description": "The ID of the legal entity.",
        "required": [
          "id"
        ],
        "properties": {
          "id": {
            "type": "string",
            "example": "fc1ccbce-8413-4fe9-b233-a324dfbe7421"
          }
        }
      },
      "LegalEntityIdListWrapper": {
        "type": "object",
        "title": "LegalEntityIdListWrapper",
        "properties": {
          "legalEntityIdList": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LegalEntityId"
            }
          }
        }
      },
      "LegalEntityIdWrapper": {
        "type": "object",
        "title": "LegalEntityIdWrapper",
        "properties": {
          "legalEntityId": {
            "$ref": "#/components/schemas/LegalEntityId"
          }
        }
      },
      "Length": {
        "type": "object",
        "title": "Length",
        "description": "Specifies the length or a distance.",
        "required": [
          "length",
          "unit"
        ],
        "properties": {
          "length": {
            "type": "number",
            "description": "Distance from search point.",
            "format": "double",
            "example": 150
          },
          "unit": {
            "type": "string",
            "description": "Unit of measure being applied.",
            "enum": [
              "UNKNOWN_UNIT",
              "KM",
              "MILE",
              "CENTIMETER",
              "METER"
            ],
            "example": "MILE",
            "x-ignoreBreakingChanges": [
              "unit->CENTIMETER",
              "unit->METER"
            ]
          }
        }
      },
      "LengthWrapper": {
        "type": "object",
        "title": "LengthWrapper",
        "properties": {
          "length": {
            "$ref": "#/components/schemas/Length"
          }
        }
      },
      "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
          }
        }
      },
      "ModuleId": {
        "type": "string",
        "title": "ModuleId",
        "description": "Module id",
        "enum": [
          "BOOKING",
          "AGENT"
        ]
      },
      "Money": {
        "type": "object",
        "title": "Money",
        "description": "Money object containing details such as the amount, the currency code, and the converted amount.\n",
        "required": [
          "amount",
          "currencyCode"
        ],
        "properties": {
          "amount": {
            "type": "number",
            "format": "double",
            "description": "The numeric value for the amount of money.",
            "example": 510
          },
          "currencyCode": {
            "type": "string",
            "description": "The 3-letter currency code for the money amount (defined using ISO 4217 standard).",
            "example": "GBP"
          },
          "convertedAmount": {
            "type": "number",
            "format": "double",
            "description": "The converted currency and amount that has been converted (if a currency conversion has been requested).\nFor example, if the call requests that money be sent in a specified currency (because the frontend requested\nthe backend to send money in the user's preferred currency).\n",
            "example": 715.42
          },
          "convertedCurrency": {
            "type": "string",
            "description": "The 3-letter currency code for the converted currency (defined using ISO 4217 standard).",
            "example": "USD"
          },
          "otherCoinage": {
            "type": "array",
            "title": "OtherCoinage",
            "description": "List of the dollar amount in other coinage systems like reward points, cryptocurrency etc.",
            "items": {
              "type": "object",
              "properties": {
                "coinageCode": {
                  "$ref": "#/components/schemas/PaymentMethod",
                  "description": "Payment method"
                },
                "amount": {
                  "type": "number",
                  "format": "double",
                  "example": 1000
                },
                "conversionRate": {
                  "type": "number",
                  "format": "double",
                  "description": "1 coin in this system equals to how many currency value",
                  "example": 0.01
                },
                "preferredCurrencyConversionRate": {
                  "type": "number",
                  "format": "double",
                  "description": "1 coin in this system equals to how many currency value",
                  "example": 0.01
                },
                "otherCoinageMetadata": {
                  "description": "Metadata to store additional information related to the payment method",
                  "discriminator": {
                    "propertyName": "metadataType",
                    "mapping": {
                      "FlightPassPaymentMetadata": "#/components/schemas/FlightPassPaymentMetadataWrapper"
                    }
                  },
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/FlightPassPaymentMetadataWrapper"
                    }
                  ]
                }
              }
            }
          }
        }
      },
      "MoneyWrapper": {
        "type": "object",
        "title": "MoneyWrapper",
        "properties": {
          "money": {
            "$ref": "#/components/schemas/Money"
          }
        }
      },
      "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",
            "x-pii": "SENSITIVE"
          },
          "family2": {
            "type": "string",
            "example": "FamilyTwo",
            "x-pii": "SENSITIVE"
          },
          "given": {
            "type": "string",
            "description": "First (given) name.",
            "example": "Vichitr",
            "x-pii": "SENSITIVE"
          },
          "middle": {
            "type": "string",
            "description": "Middle name.",
            "example": "Kumar",
            "x-pii": "SENSITIVE"
          },
          "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",
            "x-pii": "SENSITIVE"
          }
        }
      },
      "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"
      },
      "OfficeId": {
        "type": "object",
        "title": "OfficeId",
        "description": "The unique ID of the office.",
        "required": [
          "id"
        ],
        "properties": {
          "id": {
            "type": "string",
            "description": "The value of the unique ID for the office.",
            "example": "531ccbce-8413-4fe9-b233-a324dfbe7421"
          }
        }
      },
      "OfficeIdListWrapper": {
        "type": "object",
        "title": "OfficeIdListWrapper",
        "properties": {
          "officeIdList": {
            "type": "array",
            "description": "A list of office IDs.",
            "items": {
              "$ref": "#/components/schemas/OfficeId"
            }
          }
        }
      },
      "OfficeIdWrapper": {
        "type": "object",
        "title": "OfficeIdWrapper",
        "properties": {
          "officeId": {
            "$ref": "#/components/schemas/OfficeId"
          }
        }
      },
      "OperatingSchedule": {
        "type": "object",
        "title": "OperatingSchedule",
        "description": "Operating schedule of vendor",
        "required": [
          "interval"
        ],
        "properties": {
          "interval": {
            "$ref": "#/components/schemas/DateTimeRange",
            "description": "Operating schedule interval"
          },
          "dayOfWeek": {
            "type": "string",
            "description": "Day of the week for which operating schedule is valid",
            "example": "SUN"
          }
        }
      },
      "Option": {
        "type": "object",
        "title": "Option",
        "description": "Answer option for a question",
        "required": [
          "displayCode"
        ],
        "properties": {
          "displayCode": {
            "type": "string",
            "description": "The code which is sent in answer response."
          },
          "displayValue": {
            "type": "string",
            "description": "The text to be displayed to the user beside this option."
          }
        }
      },
      "OptionInfo": {
        "type": "object",
        "title": "OptionInfo",
        "description": "Options related information for the question.",
        "required": [
          "source"
        ],
        "properties": {
          "source": {
            "$ref": "#/components/schemas/OptionSource",
            "default": "MANUAL"
          },
          "sourceMetadata": {
            "$ref": "#/components/schemas/OptionSourceMetadata"
          },
          "totalNumOptions": {
            "type": "integer",
            "description": "Total number of options"
          },
          "options": {
            "type": "array",
            "description": "Available options for the question. This will contain only max 10 options if only \nsummary is requested.\n",
            "items": {
              "$ref": "#/components/schemas/Option"
            }
          }
        }
      },
      "OptionSource": {
        "type": "string",
        "enum": [
          "MANUAL",
          "COMPANY_CONFIG"
        ],
        "description": "Option source",
        "example": "MANUAL"
      },
      "OptionSourceMetadata": {
        "type": "object",
        "title": "OptionSourceMetadata",
        "description": "Metadata information for the option source.",
        "oneOf": [
          {
            "$ref": "#/components/schemas/CompanyConfigSourceWrapper"
          }
        ]
      },
      "OrganizationAgencyId": {
        "type": "object",
        "title": "OrganizationAgencyId",
        "description": "Agency id for the organization.",
        "deprecated": true,
        "x-sunset": "2026-07-01",
        "required": [
          "id"
        ],
        "properties": {
          "id": {
            "type": "string"
          }
        }
      },
      "OrganizationId": {
        "type": "object",
        "title": "OrganizationId",
        "description": "Organization id for traveler.",
        "required": [
          "id"
        ],
        "properties": {
          "id": {
            "type": "string"
          }
        }
      },
      "PaymentItem": {
        "type": "object",
        "description": "The payment item eligible for associated payment rules",
        "properties": {
          "itemType": {
            "$ref": "#/components/schemas/ItemType",
            "description": "Type of payment item eligible for this fop rule"
          },
          "fareComponent": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FareComponent",
              "description": "List of fare components of associated payment item"
            }
          }
        }
      },
      "PaymentMethod": {
        "type": "string",
        "description": "Payment method",
        "enum": [
          "PAYMENT_METHOD_UNKNOWN",
          "CREDIT_CARD",
          "BREX_POINTS",
          "CASH",
          "QANTAS_POINTS",
          "VENDOR_PROGRAM_PAYMENT",
          "DELAYED_INVOICING",
          "FLIGHT_CREDITS",
          "QANTAS_TRAVEL_FUND",
          "CUSTOM_VIRTUAL_PAYMENT",
          "FLIGHT_PASS",
          "MISCELLANEOUS_CREDIT_ORDER"
        ],
        "x-ignoreBreakingChanges": [
          "PaymentMethod->MISCELLANEOUS_CREDIT_ORDER"
        ],
        "example": "BREX_POINTS"
      },
      "PaymentSourceType": {
        "type": "string",
        "description": "Type of Payment Source",
        "enum": [
          "CARD",
          "VIRTUAL_CARD",
          "REWARDS_PROGRAM",
          "DELAYED_INVOICING",
          "CUSTOM_PAYMENT_METHOD",
          "VENDOR_PROGRAM_PAYMENT",
          "UNUSED_CREDIT",
          "CASH"
        ]
      },
      "PaymentVerificationInfo": {
        "type": "object",
        "title": "PaymentVerificationInfo",
        "description": "VerificationInfo required for the payment operation.",
        "oneOf": [
          {
            "$ref": "#/components/schemas/StripeVerificationInfoWrapper"
          },
          {
            "$ref": "#/components/schemas/UrlVerificationInfoWrapper"
          },
          {
            "$ref": "#/components/schemas/ThreeDSecure2VerificationInfoWrapper"
          },
          {
            "$ref": "#/components/schemas/RazorpayVerificationInfoWrapper"
          }
        ],
        "properties": {
          "gatewayIdentifier": {
            "$ref": "#/components/schemas/GatewayIdentifier"
          },
          "paymentKey": {
            "type": "string",
            "description": "Serialized key to identify the payment executed on payment gateway that will be used for post payment verification."
          }
        }
      },
      "PercentageWrapper": {
        "type": "object",
        "title": "PercentageWrapper",
        "properties": {
          "percentage": {
            "type": "number",
            "format": "double"
          }
        }
      },
      "Persona": {
        "type": "string",
        "title": "Persona",
        "description": "Persona of the user",
        "enum": [
          "UNKNOWN_PERSONA",
          "EMPLOYEE",
          "GUEST",
          "PERSONAL",
          "RELATIVE",
          "ADHOC"
        ],
        "example": "EMPLOYEE"
      },
      "PersonaListWrapper": {
        "type": "object",
        "title": "PersonaListWrapper",
        "properties": {
          "personaList": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Persona"
            }
          }
        }
      },
      "PersonaWrapper": {
        "type": "object",
        "title": "PersonaWrapper",
        "properties": {
          "persona": {
            "$ref": "#/components/schemas/Persona"
          }
        }
      },
      "PhoneNumber": {
        "type": "object",
        "title": "PhoneNumber",
        "description": "Properly formatted phone number.",
        "properties": {
          "countryCode": {
            "type": "integer",
            "format": "int32",
            "description": "two digit country code",
            "example": 91,
            "x-pii": "IDENTIFIER"
          },
          "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",
            "x-pii": "IDENTIFIER"
          },
          "isoCountryCode": {
            "description": "ISO alpha-2 code",
            "type": "string",
            "example": "IN"
          },
          "italianLeadingZero": {
            "type": "boolean",
            "default": false,
            "example": true
          },
          "nationalNumber": {
            "type": "integer",
            "format": "int64",
            "example": 8150,
            "x-pii": "IDENTIFIER"
          },
          "numberOfLeadingZeros": {
            "type": "integer",
            "format": "int32",
            "default": 0,
            "example": 1
          },
          "preferredDomesticCarrierCode": {
            "type": "string",
            "example": "7"
          },
          "rawInput": {
            "type": "string",
            "example": "77777",
            "x-pii": "IDENTIFIER"
          },
          "type": {
            "type": "string",
            "enum": [
              "UNKNOWN_TYPE",
              "MOBILE",
              "LANDLINE"
            ],
            "example": "MOBILE"
          }
        }
      },
      "PnrPolicyId": {
        "title": "PnrPolicyId",
        "description": "Pnr Policy id",
        "type": "object",
        "required": [
          "id",
          "version"
        ],
        "properties": {
          "id": {
            "type": "string",
            "description": "Policy id"
          },
          "version": {
            "type": "string",
            "description": "version of the policy"
          },
          "policyName": {
            "type": "string",
            "description": "Name of the policy applied."
          },
          "approvalType": {
            "type": "string",
            "enum": [
              "HARD_APPROVAL",
              "SOFT_APPROVAL",
              "PASSIVE_APPROVAL"
            ],
            "example": "SOFT_APPROVAL"
          },
          "policyType": {
            "type": "string",
            "enum": [
              "GLOBAL",
              "DEFAULT",
              "GROUP"
            ],
            "example": "GLOBAL"
          }
        }
      },
      "PnrPolicyInfo": {
        "title": "PnrPolicyInfo",
        "description": "Policy Info applicable for the associated itinerary",
        "type": "object",
        "properties": {
          "policies": {
            "type": "array",
            "description": "List of policies applied to the itinerary.",
            "items": {
              "$ref": "#/components/schemas/PnrPolicyId"
            }
          },
          "ruleResultInfos": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PolicyRuleResultInfo"
            }
          }
        }
      },
      "PnrStatus": {
        "title": "PnrStatus",
        "type": "string",
        "enum": [
          "UNKNOWN",
          "INITIATED",
          "CANCELLED",
          "CONFIRMED",
          "GROUP_BOOKING_ON_REQUEST",
          "WAITLISTED",
          "PENDING",
          "AIRLINE_UPGRADE",
          "WAITLIST_CONFIRMED",
          "BOOKING_DENIED_CONTACT_SUPPORT",
          "NO_SHOW",
          "CONTACT_SUPPORT",
          "STATUS_CHANGED_CONTACT_SUPPORT",
          "SCHEDULE_CHANGE",
          "SEGMENT_REQUEST",
          "SCHEDULE_CHANGE_WAITLISTED_BOOKING",
          "REQUEST_PENDING",
          "WAITLISTED_NOT_CONFIRMED",
          "SCHEDULE_CHANGE_NOT_CONFIRMED",
          "SCHEDULE_CHANGE_PENDING_STATUS",
          "MIS_CONNECTION",
          "REQUESTED",
          "TICKETED",
          "VOIDED",
          "CANCELLED_BY_VENDOR",
          "CANCELLATION_IN_PROGRESS",
          "REINSTATED",
          "BOOKING_ON_HOLD",
          "AIRLINE_CONTROL",
          "MODIFIED",
          "PAYMENT_DECLINED",
          "INOPERATIVE",
          "UNCONFIRMED"
        ],
        "description": "Status of PNR",
        "example": "CONFIRMED"
      },
      "PolicyAction": {
        "type": "object",
        "description": "Action that is required / done for policy.",
        "oneOf": [
          {
            "$ref": "#/components/schemas/PolicyFlagActionWrapper"
          },
          {
            "$ref": "#/components/schemas/PolicyHideActionWrapper"
          },
          {
            "$ref": "#/components/schemas/PolicyAlertOnSelectionActionWrapper"
          },
          {
            "$ref": "#/components/schemas/PolicyTakeApprovalActionWrapper"
          },
          {
            "$ref": "#/components/schemas/PolicyPreventBookingActionWrapper"
          },
          {
            "$ref": "#/components/schemas/PolicySplitPaymentActionWrapper"
          }
        ]
      },
      "PolicyAlertOnSelectionAction": {
        "type": "object",
        "title": "PolicyAlertOnSelectionAction",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      },
      "PolicyAlertOnSelectionActionWrapper": {
        "type": "object",
        "title": "PolicyAlertOnSelectionActionWrapper",
        "properties": {
          "alertOnSelection": {
            "$ref": "#/components/schemas/PolicyAlertOnSelectionAction"
          }
        }
      },
      "PolicyConstValue": {
        "type": "object",
        "properties": {
          "displaySuffix": {
            "type": "string",
            "description": "Optional display suffix for the policy const value"
          }
        },
        "oneOf": [
          {
            "$ref": "#/components/schemas/Int32Wrapper"
          },
          {
            "$ref": "#/components/schemas/Int64Wrapper"
          },
          {
            "$ref": "#/components/schemas/StringWrapper"
          },
          {
            "$ref": "#/components/schemas/DoubleWrapper"
          },
          {
            "$ref": "#/components/schemas/BoolWrapper"
          },
          {
            "$ref": "#/components/schemas/IntListWrapper"
          },
          {
            "$ref": "#/components/schemas/DoubleListWrapper"
          },
          {
            "$ref": "#/components/schemas/StringListWrapper"
          },
          {
            "$ref": "#/components/schemas/MoneyWrapper"
          },
          {
            "$ref": "#/components/schemas/LengthWrapper"
          },
          {
            "$ref": "#/components/schemas/PostalAddressWrapper"
          },
          {
            "$ref": "#/components/schemas/UserOrgIdWrapper"
          },
          {
            "$ref": "#/components/schemas/LegalEntityIdWrapper"
          },
          {
            "$ref": "#/components/schemas/OfficeIdWrapper"
          },
          {
            "$ref": "#/components/schemas/UserOrgIdListWrapper"
          },
          {
            "$ref": "#/components/schemas/LegalEntityIdListWrapper"
          },
          {
            "$ref": "#/components/schemas/OfficeIdListWrapper"
          },
          {
            "$ref": "#/components/schemas/RatingWrapper"
          },
          {
            "$ref": "#/components/schemas/PercentageWrapper"
          },
          {
            "$ref": "#/components/schemas/Int32RangeWrapper"
          },
          {
            "$ref": "#/components/schemas/DoubleRangeWrapper"
          },
          {
            "$ref": "#/components/schemas/PersonaWrapper"
          },
          {
            "$ref": "#/components/schemas/PersonaListWrapper"
          },
          {
            "$ref": "#/components/schemas/TravelClassHierarchyWrapper"
          },
          {
            "$ref": "#/components/schemas/KeywordWithReasonListWrapper"
          },
          {
            "$ref": "#/components/schemas/WorkerTypeWrapper"
          },
          {
            "$ref": "#/components/schemas/WorkerTypeListWrapper"
          },
          {
            "$ref": "#/components/schemas/AirRestrictedFaresParamsWrapper"
          }
        ],
        "x-ignoreBreakingChanges": [
          "PolicyConstValue->AirRestrictedFaresParamsWrapper"
        ]
      },
      "PolicyFlagAction": {
        "type": "object",
        "title": "PolicyFlagAction",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      },
      "PolicyFlagActionWrapper": {
        "type": "object",
        "title": "PolicyFlagActionWrapper",
        "properties": {
          "flag": {
            "$ref": "#/components/schemas/PolicyFlagAction"
          }
        }
      },
      "PolicyHideActionWrapper": {
        "type": "object",
        "title": "PolicyHideActionWrapper",
        "properties": {
          "hide": {
            "type": "boolean"
          }
        }
      },
      "PolicyPredicate": {
        "type": "string",
        "description": "This contains the enum mentioning the policy rule which was violated.",
        "enum": [
          "UNKNOWN_PREDICATE_STRING",
          "MAX_FARE_PER_TRAVELLER_VIOLATION",
          "FARE_MORE_THAN_MINIMUM",
          "FARE_MORE_THAN_MEDIAN",
          "FARE_LESS_THAN_MEDIAN",
          "FARE_MORE_THAN_LLF",
          "MAX_FARE_PER_TRAVELLER_VIOLATION_INCLUDING_TAX",
          "MAX_FARE_PER_TRAVELLER_VIOLATION_EXCLUDING_TAX",
          "HOTEL_PAYMENT_OPTIONS_VIOLATION",
          "RAIL_BOOKING_WINDOW_GAP_VIOLATION",
          "RAIL_TRAVEL_CLASS_VIOLATION",
          "RAIL_TICKET_REFUNDABLE_VIOLATION",
          "RAIL_MAX_BOOKING_PRICE_VIOLATION_INCLUDING_TAX",
          "RAIL_MAX_BOOKING_PRICE_VIOLATION_EXCLUDING_TAX",
          "AIR_MAX_PRICE_MORE_THAN_LLF_VIOLATION_INCLUDING_TAX",
          "AIR_MAX_PRICE_MORE_THAN_LLF_VIOLATION_EXCLUDING_TAX",
          "HOTEL_RESTRICTED_KEYWORDS_VIOLATION",
          "RESTRICTED_LOCATION_VIOLATION",
          "FLIGHT_ADVANCE_BOOKING_WINDOW_DOMESTIC_VIOLATION",
          "FLIGHT_ADVANCE_BOOKING_WINDOW_INTERNATIONAL_VIOLATION",
          "FLIGHT_ADVANCE_BOOKING_WINDOW_VIOLATION",
          "ITINERARY_WITHIN_EVENT_TRAVEL_WINDOW",
          "HOTEL_IN_ALLOWED_HOTEL_LIST",
          "PAYMENT_ACCESS_VIOLATION",
          "AIRPORT_IN_ALLOWED_AIRPORT_LIST",
          "ITINERARY_TYPE_IS_NOT_IN_ALLOWED_BOOKING_TYPES",
          "PAYMENT_AIR_ADDON_VIOLATION",
          "MAX_HOTEL_BOOKING_PRICE_INCLUDING_TAX",
          "MAX_HOTEL_BOOKING_PRICE_EXCLUDING_TAX",
          "AIR_NUM_TRAVELERS_ALLOWED",
          "PREFERRED_VENDOR_VIOLATION",
          "SEAT_ADDON_VIOLATION",
          "BAGGAGE_ADDON_VIOLATION",
          "EARLY_BIRD_ADDON_VIOLATION",
          "WIFI_ADDON_VIOLATION",
          "RESTRICTED_BOOKING_VIOLATION",
          "HIGHEST_ALLOWED_CABIN_VIOLATION",
          "LOWEST_FARE_PER_HOTEL_PROPERTY_VIOLATION",
          "AIR_RESTRICTED_FARES_VIOLATION",
          "AIR_ANCILLARY_VIOLATION"
        ],
        "x-ignoreBreakingChanges": [
          "PolicyPredicate->LOWEST_FARE_PER_HOTEL_PROPERTY_VIOLATION",
          "PolicyPredicate->AIR_RESTRICTED_FARES_VIOLATION",
          "PolicyPredicate->AIR_ANCILLARY_VIOLATION"
        ]
      },
      "PolicyPreventBookingAction": {
        "type": "object",
        "title": "PolicyPreventBookingAction",
        "description": "Whether to allow booking if a rule is violated.",
        "properties": {
          "prevent": {
            "type": "boolean",
            "description": "True if booking is to be blocked if rule is violated, else false"
          },
          "reason": {
            "type": "string",
            "description": "Reason describing why was that specific itinerary not allowed to book."
          }
        }
      },
      "PolicyPreventBookingActionWrapper": {
        "type": "object",
        "title": "PolicyPreventBookingActionWrapper",
        "properties": {
          "preventBooking": {
            "$ref": "#/components/schemas/PolicyPreventBookingAction"
          }
        }
      },
      "PolicyRuleResultInfo": {
        "type": "object",
        "properties": {
          "violationInfos": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PolicyViolationInfo"
            }
          },
          "subViolationInfos": {
            "type": "array",
            "description": "In case of complex rules this will contain extra information as to how the rule was \ncalculated.\n",
            "items": {
              "$ref": "#/components/schemas/PolicyViolationInfo"
            }
          },
          "actions": {
            "type": "array",
            "description": "Followed actions if rule was satisfied else violated actions.",
            "items": {
              "$ref": "#/components/schemas/PolicyAction"
            }
          }
        }
      },
      "PolicySplitPaymentActionWrapper": {
        "type": "object",
        "title": "PolicySplitPaymentActionWrapper",
        "properties": {
          "splitPayment": {
            "$ref": "#/components/schemas/SplitPayment"
          }
        }
      },
      "PolicyTakeApprovalAction": {
        "type": "object",
        "title": "PolicyTakeApprovalAction",
        "properties": {
          "numHierarchyLevels": {
            "type": "integer",
            "format": "int32",
            "description": "How many levels of hierarchy should approval be taken? If it's just immediate manager, \nthis value would be 1. If it's manager and their manager, this would ge 2 and so on.\n"
          },
          "positionTitles": {
            "type": "array",
            "description": "What position in the cost center or department. For eg, any business class upgrade \nmight require VP approval.\n",
            "items": {
              "type": "string"
            }
          },
          "userOrgIds": {
            "type": "array",
            "description": "The specific users from whom to take approval. For eg, say for a company, all approvals\ngo through Adam.\n",
            "items": {
              "$ref": "#/components/schemas/UserOrgId"
            }
          },
          "allRequired": {
            "type": "boolean",
            "description": "This tells whether all the people above needs to approve or if any of these approve, \nit is sufficient.\n"
          },
          "hardApprovalRequired": {
            "type": "boolean",
            "description": "Whether to take soft approval (false) or hard approval (true)."
          },
          "approvalType": {
            "$ref": "#/components/schemas/ApprovalType",
            "description": "Type of approval for the policy."
          }
        }
      },
      "PolicyTakeApprovalActionWrapper": {
        "type": "object",
        "title": "PolicyTakeApprovalActionWrapper",
        "properties": {
          "takeApproval": {
            "$ref": "#/components/schemas/PolicyTakeApprovalAction"
          }
        }
      },
      "PolicyViolationInfo": {
        "type": "object",
        "description": "Policy Violation info.",
        "title": "PolicyViolationInfo",
        "properties": {
          "predicateString": {
            "type": "string"
          },
          "predicate": {
            "$ref": "#/components/schemas/PolicyPredicate"
          },
          "expectedValue": {
            "$ref": "#/components/schemas/PolicyConstValue"
          },
          "actualValue": {
            "$ref": "#/components/schemas/PolicyConstValue"
          }
        }
      },
      "PostPaymentVerificationInfo": {
        "type": "object",
        "title": "PostPaymentVerificationInfo",
        "description": "Payment information sent after the verification of payment method.",
        "oneOf": [
          {
            "$ref": "#/components/schemas/PostStripeVerificationInfoWrapper"
          },
          {
            "$ref": "#/components/schemas/PostUrlBasedVerificationInfoWrapper"
          },
          {
            "$ref": "#/components/schemas/AmadeusCheckoutVerificationInfoWrapper"
          },
          {
            "$ref": "#/components/schemas/ThreeDSecure2PostVerificationInfoWrapper"
          },
          {
            "$ref": "#/components/schemas/RazorpayPostVerificationInfoWrapper"
          }
        ],
        "properties": {
          "paymentKey": {
            "type": "string",
            "description": "Serialized key to identify the payment executed on payment gateway that will be used for post payment verification."
          }
        }
      },
      "PostStripeVerificationInfo": {
        "type": "object",
        "description": "Object to indicate successful stripe verification and provide payment information for next steps.",
        "properties": {
          "paymentMethodId": {
            "type": "string",
            "description": "Stripe's payment method id for which the verification was performed.",
            "example": "pm_1HzKDPI3bT9GUjvoUkRQooN3"
          }
        }
      },
      "PostStripeVerificationInfoWrapper": {
        "type": "object",
        "title": "PostStripeVerificationInfoWrapper",
        "description": "Wrapper for post stripe verification info object.",
        "properties": {
          "postStripeVerificationInfo": {
            "$ref": "#/components/schemas/PostStripeVerificationInfo"
          }
        }
      },
      "PostUrlBasedVerificationInfo": {
        "type": "object",
        "properties": {
          "pnrId": {
            "type": "string",
            "description": "Pnr Id, to continue with the booking flow/check the status of the pnr."
          }
        }
      },
      "PostUrlBasedVerificationInfoWrapper": {
        "type": "object",
        "title": "PostUrlBasedVerificationInfoWrapper",
        "description": "Wrapper for post url based verification info object.",
        "properties": {
          "postUrlBasedVerificationInfo": {
            "$ref": "#/components/schemas/PostUrlBasedVerificationInfo"
          }
        }
      },
      "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"
            },
            "x-pii": "SENSITIVE"
          },
          "administrativeArea": {
            "type": "string",
            "description": "Code of administrative area. For example: DL for Delhi, India.\nHighest administrative subdivision which is used for postal\naddresses of a country or region.\nFor example, this can be a state, a province, an oblast, or a prefecture.\nSpecifically, for Spain this is the province and not the autonomous\ncommunity (e.g. \"Barcelona\" and not \"Catalonia\").\nMany countries don't use an administrative area in postal addresses. E.g.\nin Switzerland this should be left unpopulated.\n",
            "example": "CA"
          },
          "administrativeAreaName": {
            "type": "string",
            "description": "Name of administrative area. This is full name corresponding to administrativeArea. \nLike Delhi for DL area code. For some places, code and name maybe same as well like Tokyo.\n",
            "example": "California"
          },
          "description": {
            "description": "Address description",
            "type": "string",
            "example": "San Francisco Home"
          },
          "isDefault": {
            "description": "Whether this address is default address in case multiple addresses are specified.",
            "type": "boolean",
            "example": true
          },
          "languageCode": {
            "description": "BCP-47 language code of the contents of this address (if known). This is often the UI \nlanguage of the input form or is expected to match one of the languages used in the \naddress' country/region, or their transliterated equivalents.\nThis can affect formatting in certain countries, but is not critical to the correctness \nof the data and will never affect any validation or other non-formatting related operations.\nExamples: \"zh-Hant\", \"ja\", \"ja-Latn\", \"en\".\n",
            "type": "string",
            "example": "en"
          },
          "locality": {
            "description": "Generally refers to the city/town portion of the address.",
            "type": "string",
            "example": "San Francisco",
            "x-pii": "SENSITIVE"
          },
          "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",
            "x-pii": "SENSITIVE"
          },
          "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",
            "x-pii": "SENSITIVE"
          },
          "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"
            },
            "x-pii": "SENSITIVE"
          },
          "regionCode": {
            "description": "Region code of the country/region of the address.",
            "type": "string",
            "example": "US"
          },
          "regionName": {
            "description": "Region name of the country/region of the address.",
            "type": "string",
            "example": "America"
          },
          "revision": {
            "type": "integer",
            "format": "int32",
            "example": 1
          },
          "sortingCode": {
            "description": "Additional, country-specific, sorting code. This is not used\nin most regions. Where it is used, the value is either a string like\n\"CEDEX\", optionally followed by a number (e.g. \"CEDEX 7\"), or just a number\nalone, representing the \"sector code\" (Jamaica), \"delivery area indicator\"\n(Malawi) or \"post office indicator\" (e.g. Côte d'Ivoire).\n",
            "type": "string",
            "example": "Jamaica"
          },
          "sublocality": {
            "description": "Sublocality of the address. This can be neighborhoods, boroughs, districts.",
            "type": "string",
            "x-pii": "SENSITIVE"
          },
          "timezone": {
            "description": "Time zone of the address.",
            "type": "string",
            "example": "America/Los_Angeles"
          },
          "coordinates": {
            "description": "Map coordinates of the address.",
            "$ref": "#/components/schemas/Latlng"
          }
        }
      },
      "PostalAddressWrapper": {
        "type": "object",
        "title": "PostalAddressWrapper",
        "properties": {
          "postalAddress": {
            "$ref": "#/components/schemas/PostalAddress"
          }
        }
      },
      "PreBookAnswers": {
        "type": "object",
        "properties": {
          "answers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EntityAnswer"
            }
          },
          "preBookQuestionResponseId": {
            "deprecated": true,
            "x-sunset": "2026-07-01",
            "type": "string",
            "description": "The unique id sent back in the pre book questions API response"
          }
        }
      },
      "PreCheckoutQuestionType": {
        "type": "string",
        "enum": [
          "UNKNOWN_CHECKOUT_QUESTION_TYPE",
          "USER_DEFINED_QUESTION",
          "OOP_REASON_CODE"
        ],
        "description": "Types of pre-checkout questions.\nUSER_DEFINED_QUESTION the default question type for all pre checkout questions which have been created from UI.\nOOP_REASON_CODE is kept separate so that existing OOP flow doesn't break.\n",
        "example": "OOP_REASON_CODE"
      },
      "PreSearchQuestionType": {
        "type": "string",
        "enum": [
          "UNKNOWN_SEARCH_QUESTION_TYPE",
          "PURPOSE_OF_TRIP"
        ],
        "description": "Types of pre-search questions.\nPURPOSE_OF_TRIP required to ask purpose of the trip user is going to. For example: meeting, training, interview.\n",
        "example": "PURPOSE_OF_TRIP"
      },
      "Preference": {
        "title": "Preference",
        "type": "object",
        "required": [
          "preferredType"
        ],
        "properties": {
          "preferredType": {
            "$ref": "#/components/schemas/PreferredType"
          },
          "blockedReason": {
            "type": "string",
            "description": "Reason for blocking the leg, hotel or car."
          },
          "label": {
            "type": "string",
            "description": "The label assigned to a specific tier of preference."
          }
        }
      },
      "PreferredType": {
        "title": "PreferredType",
        "type": "string",
        "description": "Preference type.",
        "enum": [
          "NOT_PREFERRED",
          "COMPANY_PREFERRED",
          "SPOTTERS_CHOICE",
          "COMPANY_BLOCKED",
          "TMC_PREFERRED"
        ]
      },
      "PrimaryServiceProviderTmc": {
        "type": "object",
        "title": "PrimaryServiceProviderTmc",
        "description": "Primary service provider TMC info",
        "required": [
          "tmcId"
        ],
        "properties": {
          "tmcId": {
            "$ref": "#/components/schemas/CompanyId",
            "description": "Id of the service provider TMC."
          }
        }
      },
      "Question": {
        "type": "object",
        "title": "Question",
        "description": "The message defines the format of a question which can be asked to a user in any kind of workflows.",
        "required": [
          "id",
          "name",
          "isRequired",
          "isDisabled"
        ],
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "name": {
            "type": "string",
            "description": "Question display name that the user will see. For eg, 'Choose the purpose of your trip'."
          },
          "questionFormat": {
            "$ref": "#/components/schemas/QuestionFormat"
          },
          "optionInfo": {
            "$ref": "#/components/schemas/OptionInfo"
          },
          "isRequired": {
            "type": "boolean",
            "description": "Whether its compulsory to answer the question or not.",
            "default": false,
            "example": true
          },
          "isDisabled": {
            "type": "boolean",
            "description": "Whether the question is disabled or not. If true, this should not be asked.",
            "default": true,
            "example": true
          },
          "includeInItinerary": {
            "type": "boolean",
            "description": "Whether to include this question in the itinerary related emails.",
            "default": false,
            "example": true,
            "deprecated": true,
            "x-sunset": "2026-07-01"
          },
          "customFieldLocations": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomFieldLocation"
            }
          },
          "matchConditions": {
            "$ref": "#/components/schemas/CustomFieldMatchConditions"
          },
          "questionType": {
            "$ref": "#/components/schemas/QuestionType"
          }
        }
      },
      "QuestionFormat": {
        "type": "string",
        "enum": [
          "INPUT_BOX",
          "RADIO_BUTTON",
          "CHECKBOX",
          "CHECKBOX_WITH_PERCENTAGE"
        ],
        "description": "Question types. INPUT_BOX will make user enter a free flowing text.\nRADIO_BUTTON will have multiple options, user can select only one.\nCHECKBOX questions contain the possible set of options, from which the user can choose multiple options.\nCHECKBOX_WITH_PERCENTAGE is similar to checkbox, with the difference being that each option having an additional input field whose values must add up to 100.\n",
        "example": "CHECKBOX"
      },
      "QuestionType": {
        "type": "object",
        "title": "QuestionType",
        "description": "Question type.",
        "properties": {
          "preSearchQuestionType": {
            "$ref": "#/components/schemas/PreSearchQuestionType"
          },
          "preCheckoutQuestionType": {
            "$ref": "#/components/schemas/PreCheckoutQuestionType"
          }
        }
      },
      "RatingWrapper": {
        "type": "object",
        "title": "RatingWrapper",
        "properties": {
          "rating": {
            "type": "number",
            "format": "double"
          }
        }
      },
      "RawPaymentSourceDetails": {
        "type": "object",
        "title": "RawPaymentSourceDetails",
        "description": "Raw Details of the Payment Source",
        "discriminator": {
          "propertyName": "type",
          "mapping": {
            "DPAN": "#/components/schemas/Dpan",
            "CREDIT": "#/components/schemas/Credit"
          }
        },
        "oneOf": [
          {
            "$ref": "#/components/schemas/Dpan"
          },
          {
            "$ref": "#/components/schemas/Credit"
          }
        ]
      },
      "RazorpayPostVerificationInfo": {
        "type": "object",
        "description": "Object to indicate successful stripe verification and provide payment information for next steps.",
        "required": [
          "paymentId"
        ],
        "properties": {
          "paymentId": {
            "type": "string",
            "description": "Razorpay payment id for which the verification was performed.",
            "example": "pay_Ot3t93Xwmh2hOg"
          },
          "orderId": {
            "type": "string",
            "description": "Razorpay order id in which the payment was added.",
            "example": "order_OshJ61KRRSzb2Q"
          },
          "signature": {
            "type": "string",
            "description": "Razorpay signature to validate the payment.",
            "example": "f2c0494b77cb067a0ac76973d65cdce8c9de593a55ef2f81969cbabbe7ce493d"
          }
        }
      },
      "RazorpayPostVerificationInfoWrapper": {
        "type": "object",
        "title": "RazorpayPostVerificationInfoWrapper",
        "description": "Wrapper for post razorpay verification info object.",
        "properties": {
          "postRazorpayVerificationInfo": {
            "$ref": "#/components/schemas/RazorpayPostVerificationInfo"
          }
        }
      },
      "RazorpayVerificationInfo": {
        "type": "object",
        "title": "RazorpayVerificationInfo",
        "description": "Verification information required when card is tokenized via Razorpay for Indian markets.",
        "required": [
          "paymentProcessor"
        ],
        "properties": {
          "paymentProcessor": {
            "type": "string",
            "description": "Payment processor involved.",
            "example": "RAZORPAY"
          },
          "paymentAuthUrl": {
            "description": "URL for authorizing the payment on the card.",
            "type": "string"
          }
        }
      },
      "RazorpayVerificationInfoWrapper": {
        "type": "object",
        "title": "RazorpayVerificationInfoWrapper",
        "description": "Wrapper for Razorpay verification Info.",
        "properties": {
          "razorPayVerificationInfo": {
            "$ref": "#/components/schemas/RazorpayVerificationInfo"
          }
        }
      },
      "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"
          }
        }
      },
      "RegistrarUserIdSearch": {
        "type": "object",
        "title": "RegistrarUserId Search",
        "required": [
          "userIdType",
          "registrarUserId"
        ],
        "properties": {
          "userIdType": {
            "type": "string",
            "example": "REGISTRAR_USER_ID"
          },
          "registrarUserId": {
            "$ref": "#/components/schemas/UserId"
          }
        }
      },
      "RestrictedKeywordsWithReason": {
        "type": "object",
        "properties": {
          "keyword": {
            "type": "string",
            "description": "Restricted keyword",
            "example": "Test Keyword"
          },
          "reason": {
            "type": "string",
            "description": "Reason for restriction",
            "example": "Test Reason"
          }
        }
      },
      "SearchParams": {
        "title": "SearchParams",
        "type": "object",
        "description": "Search Parameter including location and datetime for a given search.",
        "required": [
          "location",
          "datetime"
        ],
        "properties": {
          "location": {
            "$ref": "#/components/schemas/CarSearchLocationParam"
          },
          "datetime": {
            "$ref": "#/components/schemas/DateTimeLocal"
          },
          "searchQuery": {
            "type": "string",
            "description": "Search query provided for the search.",
            "example": "London"
          }
        }
      },
      "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."
          }
        }
      },
      "SelectedFormOfPayment": {
        "type": "object",
        "description": "List of different forms of payments used for booking for a set of travelers.",
        "required": [
          "paymentItems",
          "selectedPaymentSources"
        ],
        "properties": {
          "paymentItems": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PaymentItem"
            }
          },
          "selectedPaymentSources": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SelectedPaymentSource"
            }
          }
        }
      },
      "SelectedPaymentMethod": {
        "type": "object",
        "description": "Selected payment method for the booking.",
        "oneOf": [
          {
            "$ref": "#/components/schemas/SelectedPaymentSourceWrapper"
          }
        ]
      },
      "SelectedPaymentSource": {
        "type": "object",
        "description": "Describes the selected payment source for the booking.",
        "properties": {
          "paymentSourceId": {
            "type": "string",
            "format": "uuid",
            "description": "Unique identifier identifying this payment source.",
            "example": "f49d00fe-1eda-4304-ba79-a980f565281d"
          },
          "rawPaymentSource": {
            "$ref": "#/components/schemas/RawPaymentSourceDetails"
          },
          "postPaymentRedirectionUrl": {
            "type": "string",
            "description": "Url for post payment redirection if payment source navigates user to a third party url",
            "example": "https://mycompany.com/checkout?paymentSourceId=f49d00fe-1eda-4304-ba79-a980f565281d"
          },
          "cvv": {
            "type": "string",
            "description": "CVV associated with associated payment source, if any."
          },
          "amount": {
            "description": "Total amount to be charged for specified payment items.",
            "$ref": "#/components/schemas/Money"
          }
        }
      },
      "SelectedPaymentSourceWrapper": {
        "type": "object",
        "title": "SelectedPaymentSourceWrapper",
        "properties": {
          "selectedPaymentSource": {
            "$ref": "#/components/schemas/SelectedPaymentSource"
          }
        }
      },
      "SimpleMoney": {
        "type": "object",
        "title": "SimpleMoney",
        "description": "Money object containing just amount and currency code.",
        "required": [
          "amount",
          "currencyCode"
        ],
        "properties": {
          "amount": {
            "type": "number",
            "format": "double",
            "description": "Amount",
            "example": 510
          },
          "currencyCode": {
            "type": "string",
            "description": "The 3-letter currency code defined in ISO 4217.",
            "example": "GBP"
          }
        }
      },
      "SimpleMoneyRange": {
        "title": "SimpleMoneyRange",
        "type": "object",
        "description": "SimpleMoney range containing minimum and maximum amount.",
        "properties": {
          "min": {
            "$ref": "#/components/schemas/SimpleMoney",
            "description": "Minimum value - inclusive."
          },
          "max": {
            "$ref": "#/components/schemas/SimpleMoney",
            "description": "Maximum value - inclusive."
          }
        }
      },
      "SplitPayment": {
        "type": "object",
        "title": "SplitPayment",
        "description": "Split payment details for claiming reimbursements.",
        "properties": {
          "inPolicyAmount": {
            "$ref": "#/components/schemas/Money",
            "description": "Amount approved by Company to be reimbursed."
          },
          "isAmountReimbursable": {
            "type": "boolean",
            "description": "If the in policy amount is reimbursable or not."
          },
          "personalFopChargeableAmount": {
            "$ref": "#/components/schemas/Money",
            "description": "Amount that is to be paid by traveler itself."
          }
        }
      },
      "StringListWrapper": {
        "type": "object",
        "title": "StringListWrapper",
        "properties": {
          "sList": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "StringWrapper": {
        "type": "object",
        "title": "StringWrapper",
        "properties": {
          "s": {
            "type": "string"
          }
        }
      },
      "StripeCardTokens": {
        "type": "object",
        "title": "StripeCardTokens",
        "description": "Stripe card tokens used by clients in authorizing newly added cards.",
        "required": [
          "paymentMethodId",
          "setupIntentClientSecret",
          "paymentProcessor"
        ],
        "properties": {
          "paymentProcessor": {
            "type": "string",
            "description": "Payment processor involved.",
            "example": "STRIPE"
          },
          "paymentMethodId": {
            "type": "string",
            "description": "Stripe's payment-method-id for the card.",
            "example": "pm_1HzKDPI3bT9GUjvoUkRQooN3"
          },
          "setupIntentClientSecret": {
            "type": "string",
            "description": "Stripe client secret for attaching the card to the setup-intent.",
            "example": "seti_1IBwEiKXFM6BpWYhfdCGZ7sg_secret_InXJDifWGBcVqekJvhAxidON6vHAvfS"
          },
          "connectedAccountId": {
            "type": "string",
            "description": "Account Id of the connected account in which above payment-method and setup-intent exist. This is populated only when a connected account is used.",
            "example": "acct_1NT8oyCZnFgI0lFY"
          },
          "publishableKey": {
            "type": "string",
            "description": "Publishable key of the Stripe platform account.",
            "example": "pk_test_51Hx7XyI3bT9GUjvoUkRQooN3"
          }
        }
      },
      "StripeVerificationInfo": {
        "type": "object",
        "description": "Verification information required for card stripe verification.",
        "properties": {
          "stripeCardTokens": {
            "$ref": "#/components/schemas/StripeCardTokens"
          }
        }
      },
      "StripeVerificationInfoWrapper": {
        "type": "object",
        "title": "StripeVerificationInfoWrapper",
        "description": "Wrapper for stripe verification Info.",
        "properties": {
          "stripeVerificationInfo": {
            "$ref": "#/components/schemas/StripeVerificationInfo"
          }
        }
      },
      "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"
        ],
        "x-ignoreBreakingChanges": [
          "SupplierType->PREMIER_INN"
        ],
        "example": "SABRE"
      },
      "Tax": {
        "type": "object",
        "title": "Tax",
        "description": "Tax details",
        "required": [
          "amount"
        ],
        "properties": {
          "amount": {
            "$ref": "#/components/schemas/Money",
            "description": "Tax amount"
          },
          "taxCode": {
            "type": "string",
            "description": "Tax code",
            "example": "VAT"
          },
          "percentage": {
            "type": "number",
            "format": "double",
            "description": "Tax amount to total amount",
            "example": 9
          }
        }
      },
      "TaxBreakdown": {
        "type": "array",
        "items": {
          "$ref": "#/components/schemas/Tax"
        }
      },
      "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",
          "HERTZ",
          "DOLLAR",
          "THRIFTY",
          "FIREFLY"
        ],
        "x-ignoreBreakingChanges": [
          "ThirdPartySource->BOOKING_COM",
          "ThirdPartySource->CARTRAWLER",
          "ThirdPartySource->PREMIER_INN"
        ],
        "example": "SABRE"
      },
      "ThreeDSecure2PostVerificationInfo": {
        "type": "object",
        "description": "Result of 3DS2 verification.",
        "required": [
          "results"
        ],
        "properties": {
          "results": {
            "type": "array",
            "description": "List of 3DS2 verification results.",
            "items": {
              "$ref": "#/components/schemas/ThreeDSecure2VerificationResultItem"
            }
          }
        }
      },
      "ThreeDSecure2PostVerificationInfoWrapper": {
        "type": "object",
        "title": "ThreeDSecure2PostVerificationInfoWrapper",
        "description": "Wrapper for 3DS2 post verification info object",
        "properties": {
          "threeDSecure2PostVerificationInfo": {
            "$ref": "#/components/schemas/ThreeDSecure2PostVerificationInfo"
          }
        }
      },
      "ThreeDSecure2VerificationInfo": {
        "type": "object",
        "description": "Verification information required for 3DS2 authentication.",
        "required": [
          "verificationInfoList"
        ],
        "properties": {
          "verificationInfoList": {
            "type": "array",
            "description": "List of 3DS2 verification info.",
            "items": {
              "$ref": "#/components/schemas/ThreeDSecure2VerificationInfoItem"
            }
          }
        }
      },
      "ThreeDSecure2VerificationInfoItem": {
        "type": "object",
        "description": "3DS2 verification info.",
        "required": [
          "cardId",
          "sessionId",
          "redirectUrl"
        ],
        "properties": {
          "cardId": {
            "type": "string",
            "description": "Card id for which the verification was performed.",
            "example": "550e8400-e29b-41d4-a716-446655440000"
          },
          "sessionId": {
            "type": "string",
            "description": "session id of the payment service provider.",
            "example": "sid_7q3lpqopuwmuxct3l3rkz225ae"
          },
          "redirectUrl": {
            "type": "string",
            "description": "3DS2 verification redirect url.",
            "example": "https://api.checkout.com/sessions-interceptor/sid_7q3lpqopuwmuxct3l3rkz225ae"
          }
        }
      },
      "ThreeDSecure2VerificationInfoWrapper": {
        "type": "object",
        "title": "ThreeDSecure2VerificationInfoWrapper",
        "description": "Wrapper for 3DS2 verification Info.",
        "properties": {
          "threeDSecure2VerificationInfo": {
            "$ref": "#/components/schemas/ThreeDSecure2VerificationInfo"
          }
        }
      },
      "ThreeDSecure2VerificationResultItem": {
        "type": "object",
        "description": "Result of 3DS2 verification.",
        "required": [
          "cardId",
          "sessionId",
          "success"
        ],
        "properties": {
          "cardId": {
            "type": "string",
            "description": "Card id for which the verification was performed.",
            "example": "550e8400-e29b-41d4-a716-446655440000"
          },
          "sessionId": {
            "type": "string",
            "description": "session id of the payment service provider.",
            "example": "sid_7q3lpqopuwmuxct3l3rkz225ae"
          },
          "success": {
            "type": "boolean",
            "description": "Whether the 3DSecure2 authentication was successful.",
            "example": true
          }
        }
      },
      "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."
          }
        }
      },
      "TmcInfo": {
        "type": "object",
        "title": "TmcInfo",
        "description": "TMC config information.",
        "required": [
          "id",
          "primaryServiceProviderTmc"
        ],
        "properties": {
          "id": {
            "$ref": "#/components/schemas/CompanyId",
            "description": "TMC id."
          },
          "primaryServiceProviderTmc": {
            "$ref": "#/components/schemas/PrimaryServiceProviderTmc",
            "description": "Primary service provider TMC for the TMC."
          },
          "secondaryServiceProviderTmcs": {
            "type": "array",
            "description": "Secondary service provider TMCs for the TMC.",
            "items": {
              "$ref": "#/components/schemas/SecondaryServiceProviderTmc"
            }
          },
          "partnerTmcId": {
            "$ref": "#/components/schemas/CompanyId",
            "description": "Useful to identify the clients onboarded by a PARTNER_TMC"
          }
        }
      },
      "TokenizedExpiry": {
        "title": "TokenizedExpiry",
        "type": "object",
        "description": "Contains the tokenized expiry of a Card.",
        "required": [
          "expiryMonth",
          "expiryYear"
        ],
        "properties": {
          "expiryMonth": {
            "type": "string",
            "description": "Tokenized Expiry month",
            "example": "KvAuPANQWCpjwRQxcC8EXg=="
          },
          "expiryYear": {
            "type": "string",
            "description": "Tokenized Expiry year",
            "example": "fPBm0OWrKwPyIrCVcbg4cA=="
          }
        }
      },
      "TokenizedExpiryWrapper": {
        "type": "object",
        "title": "TokenizedExpiryWrapper",
        "properties": {
          "tokenizedExpiry": {
            "$ref": "#/components/schemas/TokenizedExpiry"
          }
        }
      },
      "Transmission": {
        "type": "string",
        "title": "Transmission",
        "description": "Transmission types.",
        "enum": [
          "UNKNOWN_TRANSMISSION",
          "MANUAL_UNSPECIFIED_DRIVE",
          "MANUAL_4WD",
          "MANUAL_AWD",
          "AUTO_UNSPECIFIED_DRIVE",
          "AUTO_4WD",
          "AUTO_AWD"
        ],
        "x-enum-varnames": [
          "UNKNOWN_TRANSMISSION",
          "MANUAL_UNSPECIFIED_DRIVE",
          "MANUAL_4WD",
          "MANUAL_AWD",
          "AUTO_UNSPECIFIED_DRIVE",
          "AUTO_4WD",
          "AUTO_AWD"
        ],
        "example": "MANUAL_4WD"
      },
      "TransmissionSearchFilter": {
        "type": "string",
        "description": "Transmission type for Filters",
        "title": "TransmissionSearchFilter",
        "enum": [
          "MANUAL",
          "AUTOMATIC"
        ],
        "example": "AUTOMATIC"
      },
      "TravelClassHierarchy": {
        "type": "string",
        "description": "Rail Travel classes in hierarchy numbering higher to keep scope for future additions in \nbetween.\n",
        "enum": [
          "UNKNOWN",
          "STANDARD",
          "COACH",
          "STANDARD_PREMIUM",
          "BUSINESS",
          "BUSINESS_PREMIUM",
          "FIRST",
          "SLEEPER"
        ],
        "example": "STANDARD"
      },
      "TravelClassHierarchyWrapper": {
        "type": "object",
        "title": "TravelClassHierarchyWrapper",
        "properties": {
          "railTravelClass": {
            "$ref": "#/components/schemas/TravelClassHierarchy"
          }
        }
      },
      "TravelRegionType": {
        "type": "string",
        "title": "TravelRegionType",
        "description": "Travel region Type",
        "enum": [
          "DOMESTIC",
          "INTERNATIONAL"
        ],
        "example": "DOMESTIC"
      },
      "TravelType": {
        "type": "string",
        "title": "TravelType",
        "description": "Travel Type",
        "enum": [
          "AIR",
          "HOTEL",
          "CAR",
          "RAIL",
          "LIMO",
          "MISC",
          "ALL"
        ],
        "example": "AIR"
      },
      "TravelerMatchConditions": {
        "type": "object",
        "title": "TravelerMatchConditions",
        "description": "Matching conditions for traveler.",
        "properties": {
          "workerTypes": {
            "type": "array",
            "description": "Worker types. Users belonging to any of these would match.",
            "items": {
              "$ref": "#/components/schemas/WorkerType"
            }
          },
          "countries": {
            "type": "array",
            "description": "Countries.",
            "items": {
              "type": "string"
            }
          },
          "legalEntities": {
            "type": "array",
            "description": "Legal entities",
            "items": {
              "$ref": "#/components/schemas/Reference"
            }
          },
          "departments": {
            "type": "array",
            "description": "Departments",
            "items": {
              "$ref": "#/components/schemas/Reference"
            }
          },
          "costCenters": {
            "type": "array",
            "description": "Cost centers",
            "items": {
              "$ref": "#/components/schemas/Reference"
            }
          },
          "offices": {
            "type": "array",
            "description": "Offices",
            "items": {
              "$ref": "#/components/schemas/Reference"
            }
          }
        }
      },
      "TripData": {
        "type": "object",
        "title": "TripData",
        "description": "Trip data to book a PNR.",
        "required": [
          "tripId"
        ],
        "properties": {
          "approverEmail": {
            "description": "Email address of the approver who should receives approval email for the current booking.",
            "type": "string"
          },
          "approverName": {
            "description": "Name of the approver.",
            "type": "string"
          },
          "hardApprovalRequired": {
            "description": "Whether the current booking requires hard approval or soft approval.\nThis flag should be used only if valid approver is present.\n",
            "type": "boolean"
          },
          "outOfPolicy": {
            "description": "If the given booking is out of policy.",
            "type": "boolean"
          },
          "policyId": {
            "description": "Policy Id for which violation is done.",
            "type": "string"
          },
          "policyVersion": {
            "description": "Version of policy.",
            "type": "integer",
            "format": "int32"
          },
          "tripId": {
            "description": "Id of the trip.",
            "$ref": "#/components/schemas/TripId"
          }
        }
      },
      "TripId": {
        "type": "object",
        "title": "TripId",
        "description": "Id of trip.",
        "required": [
          "id"
        ],
        "properties": {
          "id": {
            "description": "Id.",
            "type": "string",
            "example": "2783425534"
          }
        }
      },
      "TripUsageType": {
        "title": "TripUsageType",
        "description": "Trip usage type.",
        "type": "string",
        "enum": [
          "STANDARD",
          "EVENT"
        ]
      },
      "UrlVerificationInfo": {
        "type": "object",
        "description": "Verification information required for url based payment verification.",
        "properties": {
          "ccVerificationUrl": {
            "description": "Verification url for the payment source.",
            "type": "string"
          }
        }
      },
      "UrlVerificationInfoWrapper": {
        "type": "object",
        "title": "UrlVerificationInfoWrapper",
        "description": "Wrapper for stripe verification Info.",
        "properties": {
          "urlVerificationInfo": {
            "$ref": "#/components/schemas/UrlVerificationInfo"
          }
        }
      },
      "UserId": {
        "type": "object",
        "title": "UserId",
        "description": "User identifier",
        "required": [
          "id"
        ],
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          }
        }
      },
      "UserIdSearch": {
        "type": "object",
        "title": "UserId Search",
        "required": [
          "userIdType",
          "userId"
        ],
        "properties": {
          "userIdType": {
            "type": "string",
            "example": "USER_ID"
          },
          "userId": {
            "$ref": "#/components/schemas/UserId"
          }
        }
      },
      "UserIdWrapper": {
        "title": "UserIdWrapper",
        "description": "Wrapper over UserId object to be used as an identifier in a oneOf case",
        "properties": {
          "userId": {
            "$ref": "#/components/schemas/UserId"
          }
        }
      },
      "UserOrgId": {
        "type": "object",
        "title": "UserOrgId",
        "description": "User and user's organization information.",
        "required": [
          "userId",
          "organizationId"
        ],
        "properties": {
          "organizationAgencyId": {
            "$ref": "#/components/schemas/OrganizationAgencyId"
          },
          "organizationId": {
            "$ref": "#/components/schemas/OrganizationId"
          },
          "userId": {
            "$ref": "#/components/schemas/UserId"
          },
          "tmcInfo": {
            "$ref": "#/components/schemas/TmcInfo",
            "deprecated": true,
            "x-sunset": "2026-07-01"
          },
          "tmcBasicInfo": {
            "$ref": "#/components/schemas/TmcBasicInfo"
          }
        }
      },
      "UserOrgIdListWrapper": {
        "type": "object",
        "title": "UserOrgIdListWrapper",
        "properties": {
          "userOrgIdList": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/UserOrgId"
            }
          }
        }
      },
      "UserOrgIdWrapper": {
        "type": "object",
        "title": "UserOrgIdWrapper",
        "properties": {
          "userOrgId": {
            "$ref": "#/components/schemas/UserOrgId"
          }
        }
      },
      "Variable": {
        "type": "object",
        "title": "Variable",
        "description": "Variable defining the additional value to be sent along with custom field response.",
        "required": [
          "type",
          "name"
        ],
        "properties": {
          "type": {
            "type": "string",
            "example": "VARIABLE",
            "default": "VARIABLE"
          },
          "name": {
            "$ref": "#/components/schemas/VariableName"
          }
        }
      },
      "VariableName": {
        "type": "string",
        "title": "VariableName",
        "description": "Name of the variable.",
        "enum": [
          "PUBLISHED_FARE",
          "LLF",
          "ADD_COLLECT_AMOUNT",
          "SELECTED_FARE",
          "SPLIT_PAYMENT_FARE"
        ],
        "example": "LLF",
        "x-ignoreBreakingChanges": [
          "VariableName->ADD_COLLECT_AMOUNT",
          "VariableName->SELECTED_FARE",
          "VariableName->SPLIT_PAYMENT_FARE"
        ]
      },
      "Vendor": {
        "type": "object",
        "description": "Car vendor.",
        "required": [
          "code",
          "name"
        ],
        "properties": {
          "code": {
            "type": "string",
            "description": "Vendor code.",
            "example": "ZE"
          },
          "name": {
            "type": "string",
            "description": "Vendor name.",
            "example": "HERTZ"
          },
          "email": {
            "type": "string",
            "description": "Vendor email.",
            "example": "abc@xyz.com"
          },
          "phone": {
            "description": "Vendor contact number.",
            "$ref": "#/components/schemas/PhoneNumber"
          }
        }
      },
      "WaiveOffFeeReason": {
        "type": "object",
        "title": "WaiveOffFeeReason",
        "description": "Fee waive off reason info.",
        "properties": {
          "reasonCode": {
            "type": "string",
            "description": "Fee waive off reason code.",
            "example": "WA05"
          },
          "reason": {
            "type": "string",
            "description": "Fee waive off reason description.",
            "example": "Customer goodwill"
          }
        }
      },
      "WaiveOffInfo": {
        "type": "object",
        "title": "WaiveOffInfo",
        "description": "Waive off info.",
        "properties": {
          "waiveOffInfoPerModules": {
            "type": "array",
            "description": "Waive off info per module.",
            "items": {
              "$ref": "#/components/schemas/WaiveOffInfoPerModule"
            }
          }
        }
      },
      "WaiveOffInfoPerModule": {
        "type": "object",
        "title": "WaiveOffInfoPerModule",
        "description": "Waive off info per module.",
        "properties": {
          "moduleId": {
            "$ref": "#/components/schemas/ModuleId"
          },
          "waiveOffFeeReason": {
            "$ref": "#/components/schemas/WaiveOffFeeReason"
          }
        }
      },
      "WorkerType": {
        "type": "string",
        "description": "The type of worker.",
        "enum": [
          "EMPLOYEE",
          "CONTINGENT",
          "SEASONAL",
          "INTERN",
          "GUEST"
        ],
        "example": "EMPLOYEE",
        "x-enumValidFrom": {
          "GUEST": "2025-06-03"
        }
      },
      "WorkerTypeListWrapper": {
        "type": "object",
        "title": "WorkerTypeListWrapper",
        "properties": {
          "workerTypeList": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/WorkerType"
            }
          }
        }
      },
      "WorkerTypeWrapper": {
        "type": "object",
        "title": "WorkerTypeWrapper",
        "properties": {
          "workerType": {
            "$ref": "#/components/schemas/WorkerType"
          }
        }
      }
    }
  },
  "tags": [
    {
      "name": "Car",
      "description": "These endpoints provide comprehensive functionality for managing car bookings. They enable users to search for cars, check rates and availability, create and modify bookings, and handle cancellations and rebooking."
    }
  ],
  "paths": {
    "/v2/car/search": {
      "post": {
        "tags": [
          "Car"
        ],
        "summary": "Get car search results",
        "description": "Search for available cars using the pickup and dropoff locations, and the traveler's user ID.",
        "operationId": "carSearch",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CarSearchRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CarSearchResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      }
    },
    "/v2/car/create-pnr": {
      "post": {
        "tags": [
          "Car"
        ],
        "summary": "Create a new car booking",
        "description": "Create a new car PNR.",
        "operationId": "carCreatePnr",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CarCreatePnrRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CarCreatePnrResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      }
    },
    "/v2/car/pnrs/{pnrId}/modify-search": {
      "parameters": [
        {
          "name": "pnrId",
          "in": "path",
          "description": "Pnr Id of the Pnr to be modified.",
          "required": true,
          "schema": {
            "type": "string"
          },
          "example": "4974a66b"
        }
      ],
      "post": {
        "tags": [
          "Car"
        ],
        "summary": "Get car search results for a booking modification",
        "description": "Get the available car search results when you're modifying an existing booking.",
        "operationId": "carModifySearch",
        "x-draft": true,
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CarModifySearchRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CarSearchResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      }
    },
    "/v2/car/pnrs/{pnrId}/modify-book": {
      "parameters": [
        {
          "name": "pnrId",
          "in": "path",
          "description": "Pnr Id of the Pnr to be modified.",
          "required": true,
          "schema": {
            "type": "string"
          },
          "example": "4974a66b"
        }
      ],
      "post": {
        "tags": [
          "Car"
        ],
        "summary": "Modify an existing car booking",
        "description": "Make modifications to an existing car booking.",
        "operationId": "carModifyBook",
        "x-draft": true,
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CarModifyBookingRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CarModifyBookingResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      }
    },
    "/v2/car/pnrs/{pnrId}/cancel-pnr": {
      "parameters": [
        {
          "name": "pnrId",
          "in": "path",
          "description": "Pnr Id of the booking to be cancelled.",
          "required": true,
          "schema": {
            "type": "string"
          },
          "example": "4974a66b"
        }
      ],
      "post": {
        "tags": [
          "Car"
        ],
        "summary": "Cancel a car booking",
        "description": "Cancel an existing car booking and initiate a refund (if applicable).",
        "operationId": "carCancelPnr",
        "x-draft": true,
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CarCancelPnrRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CarCancelPnrResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      }
    },
    "/v2/car/rate-details": {
      "post": {
        "tags": [
          "Car"
        ],
        "summary": "Get more details for a specific car rate",
        "description": "Get additional details for a selected car rate from the search results.",
        "operationId": "carRateDetails",
        "x-draft": true,
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CarRateDetailsRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CarRateDetailsResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      }
    },
    "/v2/car/price-check": {
      "post": {
        "tags": [
          "Car"
        ],
        "summary": "Check car price availability",
        "description": "Check if the price for a selected car is still available before proceeding with the booking.",
        "operationId": "carPriceCheck",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CarPriceCheckRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CarPriceCheckResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      }
    },
    "/v2/car/location-details": {
      "post": {
        "tags": [
          "Car"
        ],
        "summary": "Get location details for a car vendor",
        "description": "Get the car location details and the vendor information.",
        "operationId": "carLocationDetails",
        "x-draft": true,
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CarLocationDetailsRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CarLocationDetailsResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      }
    },
    "/v2/car/pnrs/{pnrId}/update": {
      "parameters": [
        {
          "name": "pnrId",
          "in": "path",
          "description": "The Spotnana PNR ID of the PNR to be read.",
          "required": true,
          "schema": {
            "type": "string"
          },
          "example": "1213124111"
        }
      ],
      "put": {
        "tags": [
          "Car"
        ],
        "summary": "Edit traveler information for an existing car PNR",
        "description": "Edit traveler information such as loyalty number for an existing car booking.",
        "operationId": "carPnrEdit",
        "x-draft": true,
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CarEditPnrRequest"
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "No Content"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      }
    }
  }
}