import {z} from 'zod' export type OffsetBasedPaginationRequestParams = {offset?: number | undefined, limit?: number | undefined}; export type UserId = {id: string}; export type CompanyId = {id: string}; export type TripType = 'UPCOMING' | 'PAST_OR_COMPLETED' | 'CANCELLED' | 'DISRUPTED' | 'DRAFT'; export type TravelType = 'AIR' | 'HOTEL' | 'CAR' | 'RAIL' | 'LIMO' | 'MISC' | 'ALL'; export type PolicyStatus = 'IN_POLICY' | 'OUT_OF_POLICY'; export type DateModel = {iso8601: string}; export type OverallStatus = 'PENDING_STATUS' | 'CONFIRMED_STATUS' | 'CANCELLED_STATUS' | 'AIRLINE_CONTROL_STATUS' | 'PAYMENT_DECLINED_STATUS' | 'DISRUPTED_STATUS' | 'DRAFT_STATUS'; export type DateTimeOffset = {iso8601: string}; export type TripFilters = {filterType: string, userIds: Array} | {filterType: string, tripIds: Array} | {filterType: string, companyIds: Array} | {filterType: string, tripTypes: Array} | {filterType: string, travelTypes: Array} | {filterType: string, policyStatuses: Array} | {filterType: string, startDate?: DateModel | undefined, endDate?: DateModel | undefined} | {filterType: string, startDate?: DateModel | undefined, endDate?: DateModel | undefined} | {filterType: string, overallStatuses: Array} | {filterType: string, startDateTime?: DateTimeOffset | undefined, endDateTime?: DateTimeOffset | undefined}; export type SortOrder = 'DESC' | 'ASC'; export type TripSortOptions = {sortField: 'START_DATE' | 'END_DATE', sortOrder: SortOrder}; export type GetTripSummariesV3Request = {paginationRequestParams: OffsetBasedPaginationRequestParams, includePnrSummaries?: boolean | undefined, tripFilters?: Array | undefined, sortOptions?: Array | undefined}; export type CreateApiV3TripsArrangersArrangerIdListArgs = {body: GetTripSummariesV3Request}; export type CreateApiV3TripsArrangersArrangerIdListOptions = {baseUrl?: string | undefined, Bearer?: string | undefined, fetch?: typeof fetch | undefined}; export const offsetBasedPaginationResponseParams = z.object({totalNumResults: z.number().int()}); export const pnrStatus = z.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"]); export const userFacingStatus = z.enum(["UNKNOWN_STATUS", "PENDING_STATUS", "CONFIRMED_STATUS", "ACTIVE_STATUS", "COMPLETED_STATUS", "CANCELLED_STATUS", "REFUNDED_STATUS", "VOIDED_STATUS", "PROCESSING_STATUS", "UNCONFIRMED_STATUS", "AIRLINE_CONTROL_STATUS", "PAYMENT_DECLINED_STATUS", "SCHEDULE_CHANGE_STATUS", "HOLD_STATUS", "APPROVAL_REQUESTED_STATUS", "APPROVAL_DENIED_STATUS", "CANCELLATION_IN_PROGRESS_STATUS", "INOPERATIVE_STATUS", "FLIGHT_UNCONFIRMED_STATUS"]); export const dateTimeLocal = z.object({iso8601: z.string()}); export const gate = z.object({gate: z.string().optional(), terminal: z.string().optional()}); export const flightNumber = z.object({num: z.string(), airlineCode: z.string()}); export const cabin = z.enum(["UNKNOWN_CABIN", "ECONOMY", "PREMIUM_ECONOMY", "BUSINESS", "FIRST"]); export const flightSummary = z.object({origin: z.string().optional(), destination: z.string().optional(), departureDateTime: dateTimeLocal.optional(), arrivalDateTime: dateTimeLocal.optional(), departureGate: gate.optional(), arrivalGate: gate.optional(), marketing: flightNumber.optional(), operating: flightNumber.optional(), operatingAirlineName: z.string().optional(), cabin: cabin.optional()}); export const legSummary = z.object({legStatus: userFacingStatus.optional(), flights: z.array(flightSummary).optional()}); export const paymentMethod = z.enum(["PAYMENT_METHOD_UNKNOWN", "CREDIT_CARD", "BREX_POINTS", "CASH", "QANTAS_POINTS", "VENDOR_PROGRAM_PAYMENT", "DELAYED_INVOICING", "FLIGHT_CREDITS", "QANTAS_TRAVEL_FUND", "CUSTOM_VIRTUAL_PAYMENT", "FLIGHT_PASS", "MISCELLANEOUS_CREDIT_ORDER", "NO_PREPAYMENT", "DELAYED_PAYMENT"]); export const flightPassTax = z.object({code: z.string().optional(), amount: z.lazy(() => money.optional())}); export const flightPassPaymentAmounts = z.object({totalAmount: z.lazy(() => money.optional()), baseAmount: z.lazy(() => money.optional()), totalTaxes: z.lazy(() => money.optional()), taxBreakdown: z.array(flightPassTax).optional()}); export const flightPassPaymentMetadata = z.object({flightPassNumber: z.string().optional(), flightPassAmounts: flightPassPaymentAmounts.optional()}); export const flightPassPaymentMetadataWrapper = z.object({metadataType: z.string().optional(), flightPassMetadata: flightPassPaymentMetadata}); export const money: z.ZodType = z.object({amount: z.number(), currencyCode: z.string(), convertedAmount: z.number().optional(), convertedCurrency: z.string().optional(), otherCoinage: z.array(z.object({coinageCode: paymentMethod.optional(), amount: z.number().optional(), conversionRate: z.number().optional(), preferredCurrencyConversionRate: z.number().optional(), otherCoinageMetadata: flightPassPaymentMetadataWrapper.optional()})).optional()}); export const flightRef = z.object({flightRef: z.string()}); export const airportInfo = z.object({airportCode: z.string().optional(), airportName: z.string().optional(), cityName: z.string().optional(), countryName: z.string().optional(), countryCode: z.string().optional(), zoneName: z.string().optional(), stateCode: z.string().optional()}); export const gateInfo = z.object({gate: z.string().optional(), terminal: z.string().optional()}); export const duration = z.object({iso8601: z.string().optional()}); export const equipment = z.object({code: z.string().optional(), type: z.string().optional(), name: z.string().optional()}); export const flightSeatType = z.enum(["ALLEGRIS", "SENSES"]); export const flightCommon = z.object({flightRef: z.string().optional(), departureDateTime: dateTimeLocal, arrivalDateTime: dateTimeLocal, origin: airportInfo, destination: airportInfo, departureGate: gateInfo.optional(), arrivalGate: gateInfo.optional(), marketing: flightNumber, operating: flightNumber, operationalDisclosure: z.string().optional(), hiddenStops: z.array(z.object({airport: airportInfo, arrivalDateTime: dateTimeLocal, departureDateTime: dateTimeLocal, duration: duration.optional()})).optional(), duration: duration.optional(), equipment: equipment.optional(), flightSeatType: flightSeatType.optional(), subjectToGovtApproval: z.boolean().optional()}); export const flightData = z.union([z.object({flightRef: flightRef.optional()}), z.object({flightData: flightCommon.optional()})]); export const weight = z.object({weight: z.number(), unit: z.enum(["KG", "LBS"])}); export const cO2EmissionDetail = z.object({emissionValue: z.number(), averageEmissionValue: z.number().optional(), flightDistanceKm: z.number().optional(), isApproximate: z.boolean().optional(), weight: weight.optional(), cost: money.optional()}); export const seatAmenity = z.object({displayText: z.string().optional(), seatType: z.string().optional(), width: z.string().optional(), legroom: z.string().optional(), pitch: z.number().optional()}); export const wifiAmenity = z.object({displayText: z.string().optional(), cost: z.string().optional()}); export const powerAmenity = z.object({displayText: z.string().optional(), powerType: z.string().optional(), cost: z.string().optional(), usbPort: z.string().optional(), powerOutlet: z.string().optional()}); export const entertainmentAmenity = z.object({displayText: z.string().optional(), entertainmentType: z.string().optional(), cost: z.string().optional()}); export const beverageAmenity = z.object({displayText: z.string().optional(), beverageType: z.string().optional(), alcoholCost: z.string().optional()}); export const aircraftAmenity = z.object({displayText: z.string().optional(), aircraftType: z.string().optional(), aircraftModel: z.string().optional()}); export const layoutAmenity = z.object({displayText: z.string().optional(), directAisleAccess: z.string().optional()}); export const freshFoodAmenity = z.object({displayText: z.string().optional(), freshFoodType: z.string().optional(), cost: z.string().optional()}); export const cleaningAmenity = z.object({displayText: z.string().optional(), cleaningDescription: z.string().optional(), cleaningAttrDescription: z.string().optional()}); export const maskAmenity = z.object({displayText: z.string().optional(), maskDescription: z.string().optional(), maskAttrDescription: z.string().optional()}); export const temperatureAmenity = z.object({displayText: z.string().optional(), temperatureDescription: z.string().optional(), temperatureAttrDescription: z.string().optional()}); export const passengerCapacityAmenity = z.object({displayText: z.string().optional(), passengerCapacityDescription: z.string().optional(), passengerCapacityAttrDescription: z.string().optional()}); export const blockedAdjacentSeatsAmenity = z.object({displayText: z.string().optional(), blockedAdjacentSeatsDescription: z.string().optional(), blockedAdjacentSeatsAttrDescription: z.string().optional()}); export const covidTestingAmenity = z.object({displayText: z.string().optional(), covidTestingDescription: z.string().optional(), covidTestingAttrDescription: z.string().optional()}); export const vaccineAmenity = z.object({displayText: z.string().optional(), vaccineDescription: z.string().optional(), vaccineAttrDescription: z.string().optional()}); export const airAmenity = z.union([z.object({seatAmenity: seatAmenity.optional()}), z.object({wifiAmenity: wifiAmenity.optional()}), z.object({powerAmenity: powerAmenity.optional()}), z.object({entertainmentAmenity: entertainmentAmenity.optional()}), z.object({beverageAmenity: beverageAmenity.optional()}), z.object({aircraftAmenity: aircraftAmenity.optional()}), z.object({layoutAmenity: layoutAmenity.optional()}), z.object({freshFoodAmenity: freshFoodAmenity.optional()}), z.object({cleaningAmenity: cleaningAmenity.optional()}), z.object({maskAmenity: maskAmenity.optional()}), z.object({temperatureAmenity: temperatureAmenity.optional()}), z.object({passengerCapacityAmenity: passengerCapacityAmenity.optional()}), z.object({blockedAdjacentSeatsAmenity: blockedAdjacentSeatsAmenity.optional()}), z.object({covidTestingAmenity: covidTestingAmenity.optional()}), z.object({vaccineAmenity: vaccineAmenity.optional()})]); export const flightAttributeCategory = z.enum(["AIRCRAFT", "SEAT", "MEALS", "BEVERAGES", "ENTERTAINMENT", "POWER", "WIFI", "SERVICE_INFLIGHT", "UPGRADE", "TRANSPORT_TO_AIRPORT", "CHECK_IN", "DEPARTURE_TERMINAL", "DEPARTMENT_LOUNGE", "GATE_BOARDING", "SERVICE_DEPARTURE", "STOPOVER", "CONNECTING_EASE", "CONNECTING_TERMINAL", "CONNECTING_LOUNGE", "SERVICE_CONNECTING", "BAGGAGE_COLLECTION", "ARRIVAL_TERMINAL", "ARRIVAL_LOUNGE", "ARRIVAL_TRANSPORT", "SERVICE_ARRIVAL", "SCHEDULE_ROUTE", "LOYALITY_PROGRAM", "BRAND", "PROMOTION"]); export const dimensions = z.object({height: z.number().int().optional(), width: z.number().int().optional()}); export const imageMetadata = z.object({variant: z.enum(["LIGHT", "DARK"]).optional()}); export const image = z.object({data: z.string().optional(), dimensions: dimensions.optional(), url: z.string().optional(), metadata: imageMetadata.optional()}); export const imageGroup = z.object({caption: z.string().optional(), images: z.array(image)}); export const flightAttribute = z.object({headline: z.string().optional(), description: z.string().optional(), categories: z.array(flightAttributeCategory).optional(), photos: z.array(imageGroup).optional(), video: z.array(imageGroup).optional(), tour: z.array(imageGroup).optional()}); export const flightDetail = z.object({id: z.string(), flightData: flightData.optional(), cabin: cabin, bookingCode: z.string().optional(), seatAvailability: z.number().int().optional(), corpAccountCode: z.string().optional(), carbonEmission: cO2EmissionDetail.optional(), amenities: z.array(airAmenity).optional(), flightAttributes: z.array(flightAttribute).optional(), fareBasisCode: z.string().optional(), flightId: z.string().optional()}); export const tax = z.object({amount: money, taxCode: z.string().optional(), percentage: z.number().optional(), description: z.string().optional()}); export const taxBreakdown = z.array(tax); export const fareAmount = z.object({base: money, tax: money, taxBreakdown: taxBreakdown.optional()}); export const sizeInfo = z.object({length: z.number().optional(), unit: z.enum(["CENTIMETER", "METER"]).optional()}); export const weightLimit = z.object({weight: z.number().optional(), unit: z.enum(["lb", "kg"]).optional()}); export const bagPolicyApplicability = z.enum(["EACH", "TOTAL"]); export const bagWeightLimit = z.object({weightLimit: z.array(weightLimit).optional(), applicability: bagPolicyApplicability.optional()}); export const bagFees = z.object({fee: money.optional(), applicability: bagPolicyApplicability.optional()}); export const baggageInfo = z.object({description: z.string().optional(), count: z.number().int().optional(), sizeLimitInfo: z.array(sizeInfo).optional(), weightLimitInfo: z.array(bagWeightLimit).optional(), fee: z.array(bagFees).optional(), sizeLimitDescription: z.string().optional()}); export const baggagePolicy = z.object({checkedIn: z.array(baggageInfo), carryOn: z.array(baggageInfo)}); export const assessmentType = z.enum(["NEUTRAL", "BENEFIT", "RESTRICTION", "FEE"]); export const cancellationPolicy2 = z.object({description: z.string().optional(), fee: money.optional(), assessmentType: assessmentType.optional(), isCat16: z.boolean().optional(), isConditional: z.boolean().optional()}); export const exchangePolicy = z.object({description: z.string().optional(), fee: money.optional(), assessmentType: assessmentType.optional(), isCat16: z.boolean().optional(), isConditional: z.boolean().optional()}); export const seatSelectionRule = z.object({description: z.string()}); export const boardingPolicy = z.object({description: z.string()}); export const checkInPolicy = z.object({description: z.string()}); export const loungePolicy = z.object({description: z.string()}); export const seatTypeInfo = z.object({seatType: z.string()}); export const mealsPolicy = z.object({description: z.string(), assessmentType: assessmentType.optional()}); export const summary = z.object({headline: z.string().optional(), summaryDescription: z.string().optional()}); export const value = z.object({seat: z.enum(["UNKNOWN", "STANDARD", "RECLINER", "ANGLE_FLAT", "FLAT", "SUITE"]).optional()}); export const airPolicy = z.object({summary: summary.optional(), assessmentType: assessmentType.optional(), fee: money.optional(), value: value.optional()}); export const sameDayChangePolicy = z.object({sameDayChangePolicy: airPolicy.optional()}); export const upgradeEligibilityPolicy = z.object({upgradeEligibilityPolicy: airPolicy.optional()}); export const overheadBagPolicy = z.object({overheadBagPolicy: airPolicy.optional()}); export const securityPolicy = z.object({securityPolicy: airPolicy.optional()}); export const pointsInfo = z.object({loyaltyProgram: z.enum(["UNKNOWN", "QANTAS"]).optional(), pointsType: z.enum(["UNKNOWN", "REWARDS_POINTS", "STATUS_CREDIT", "COMPANY_EARN"]).optional(), description: z.string().optional(), assessmentType: assessmentType.optional(), points: z.number().optional()}); export const fareRules = z.object({baggagePolicy: baggagePolicy.optional(), cancellationPolicy: cancellationPolicy2.optional(), postDepartureCancellationPolicy: cancellationPolicy2.optional(), exchangePolicy: exchangePolicy.optional(), postDepartureExchangePolicy: exchangePolicy.optional(), seatSelectionPolicy: seatSelectionRule.optional(), boardingPolicy: boardingPolicy.optional(), checkInPolicy: checkInPolicy.optional(), loungePolicy: loungePolicy.optional(), seatType: seatTypeInfo.optional(), mealsPolicy: mealsPolicy.optional(), sameDayChangePolicy: sameDayChangePolicy.optional(), upgradeEligibilityPolicy: upgradeEligibilityPolicy.optional(), overheadBagPolicy: overheadBagPolicy.optional(), securityPolicy: securityPolicy.optional(), rewards: z.array(pointsInfo).optional()}); export const travelerLegInfo = z.object({travelerId: z.string(), travelerLegFare: fareAmount.optional(), fareRules: fareRules.optional()}); export const nGSFareCategory = z.enum(["UNKNOWN_NGS_CATEGORY", "BASE", "STANDARD", "ENHANCED", "PREMIUM", "LUXURY", "ULTRA_LUXURY"]); export const cabinViewFareCategory = z.enum(["UNKNOWN_CABIN_CATEGORY", "BASIC", "ECONOMY", "PREMIUM_ECONOMY", "ECONOMY_PLUS", "BUSINESS", "FIRST"]); export const fareCategory = z.object({ngsCategory: nGSFareCategory.optional(), cabinViewCategory: cabinViewFareCategory.optional()}); export const rateType = z.enum(["RATE_TYPE_UNKNOWN", "PUBLISHED", "TMC_NEGOTIATED", "COMPANY_NEGOTIATED"]); export const vendorProgramType = z.enum(["UA_PASS_PLUS", "GENERIC_PROGRAM_TYPE"]); export const legPerformanceVerdict = z.enum(["USUALLY_ON_TIME", "SOMETIMES_DELAYED", "OFTEN_DELAYED"]); export const additionalFareAmount = z.object({type: z.enum(["TYPE_UNKNOWN", "FLIGHT_PASS_AMOUNT", "CHANGE_FEE", "CANCELLATION_FEE", "PENALTY", "AIRLINE_FEE", "SEAT", "BAGGAGE"]), fareAmount: fareAmount, isIncludedInFareAmount: z.boolean().optional()}); export const preferredType = z.enum(["NOT_PREFERRED", "COMPANY_PREFERRED", "SPOTTERS_CHOICE", "COMPANY_BLOCKED", "TMC_PREFERRED"]); export const preference = z.object({preferredType: preferredType, blockedReason: z.string().optional(), label: z.string().optional()}); export const thirdPartySource = z.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", "HILTON", "EUROSTAR", "NATIONAL", "ALAMO", "AVIS", "BUDGET", "HERTZ", "DOLLAR", "THRIFTY", "FIREFLY", "AMADEUS_NDC", "SIXT"]); export const multiSupplierInfo = z.object({source: thirdPartySource.optional(), posDescriptor: z.string().optional()}); export const airLegInfo = z.object({id: z.string(), flights: z.array(flightDetail), travelerInfos: z.array(travelerLegInfo), totalLegFare: fareAmount, fareCategory: fareCategory, brandName: z.string().optional(), brandCode: z.string().optional(), validatingAirline: z.string().optional(), rateType: rateType.optional(), vendorProgramType: vendorProgramType.optional(), performanceVerdict: legPerformanceVerdict.optional(), additionalTotalLegFares: z.array(additionalFareAmount).optional(), additionalLegFaresPerPax: z.array(additionalFareAmount).optional(), preferences: z.array(preference).optional(), totalCheapestLegFare: fareAmount.optional(), cheapestLegFarePerPax: fareAmount.optional(), multiSupplierInfo: multiSupplierInfo.optional()}); export const passengerType = z.enum(["UNKNOWN_PASSENGER_TYPE", "ADULT", "CHILD", "INFANT", "INFANT_ON_LAP", "YOUTH", "SENIOR", "TEEN"]); export const passengerAge = z.object({numYears: z.number().int()}); export const merchantFeeInfo = z.object({amount: fareAmount}); export const fareInfo = z.object({totalFare: fareAmount, taxBreakdown: taxBreakdown.optional(), merchantFeeInfo: merchantFeeInfo.optional()}); export const fareMetadata = z.object({corpAccountCode: z.string().optional()}); export const travelerDetail = z.object({travelerId: z.string(), travelerType: passengerType, travelerAge: passengerAge.optional(), fareInfo: fareInfo, fareMetadata: fareMetadata.optional(), additionalFaresPerPax: z.array(additionalFareAmount).optional()}); export const ticketType = z.enum(["SINGLE", "MULTI"]); export const pnrPolicyId = z.object({id: z.string(), version: z.string(), policyName: z.string().optional(), approvalType: z.enum(["HARD_APPROVAL", "SOFT_APPROVAL", "PASSIVE_APPROVAL"]).optional(), policyType: z.enum(["GLOBAL", "DEFAULT", "GROUP"]).optional()}); export const policyPredicate = z.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"]); export const length = z.object({length: z.number(), unit: z.enum(["UNKNOWN_UNIT", "KM", "MILE", "CENTIMETER", "METER"])}); export const latlng = z.object({latitude: z.number(), longitude: z.number()}); export const postalAddress = z.object({addressLines: z.array(z.string()), administrativeArea: z.string().optional(), administrativeAreaName: z.string().optional(), description: z.string().optional(), isDefault: z.boolean().optional(), languageCode: z.string().optional(), locality: z.string().optional(), locationCode: z.string().optional(), organization: z.string().optional(), postalCode: z.string().optional(), continentCode: z.string().optional(), recipients: z.array(z.string()).optional(), regionCode: z.string(), regionName: z.string().optional(), revision: z.number().int().optional(), sortingCode: z.string().optional(), sublocality: z.string().optional(), timezone: z.string().optional(), coordinates: latlng.optional()}); export const organizationAgencyId = z.object({id: z.string()}); export const organizationId = z.object({id: z.string()}); export const userId = z.object({id: z.string()}); export const companyId = z.object({id: z.string()}); export const primaryServiceProviderTmc = z.object({tmcId: companyId}); export const supplierType = z.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", "HILTON", "NATIONAL", "ALAMO", "HERTZ", "DOLLAR", "THRIFTY", "FIREFLY", "EUROSTAR", "AVIS", "BUDGET", "AMADEUS_NDC", "SIXT"]); export const travelType = z.enum(["AIR", "HOTEL", "CAR", "RAIL", "LIMO", "MISC", "ALL"]); export const secondaryServiceProviderTmc = z.object({tmcId: companyId, supplier: supplierType, travelType: travelType}); export const tmcInfo = z.object({id: companyId, primaryServiceProviderTmc: primaryServiceProviderTmc, secondaryServiceProviderTmcs: z.array(secondaryServiceProviderTmc).optional(), partnerTmcId: companyId.optional()}); export const companyRef = z.object({id: companyId, name: z.string().optional(), logo: image.optional()}); export const tmcBasicInfo = z.object({contractingTmc: companyRef, bookingTmc: companyRef}); export const userOrgId = z.object({organizationAgencyId: organizationAgencyId.optional(), organizationId: organizationId, userId: userId, tmcInfo: tmcInfo.optional(), tmcBasicInfo: tmcBasicInfo.optional()}); export const legalEntityId = z.object({id: z.string()}); export const officeId = z.object({id: z.string()}); export const int32Range = z.object({min: z.number().int().optional(), max: z.number().int().optional()}); export const doubleRange = z.object({min: z.number().optional(), max: z.number().optional()}); export const persona = z.enum(["UNKNOWN_PERSONA", "EMPLOYEE", "GUEST", "PERSONAL", "RELATIVE", "ADHOC"]); export const travelClassHierarchy = z.enum(["UNKNOWN", "STANDARD", "COACH", "STANDARD_PREMIUM", "BUSINESS", "BUSINESS_PREMIUM", "FIRST", "SLEEPER"]); export const restrictedKeywordsWithReason = z.object({keyword: z.string().optional(), reason: z.string().optional()}); export const keywordsWithReasonList = z.object({keywords: z.array(restrictedKeywordsWithReason).optional()}); export const workerType = z.enum(["EMPLOYEE", "CONTINGENT", "SEASONAL", "INTERN", "GUEST"]); export const airRestrictedKeyword = z.object({keyword: z.string(), airlineCode: z.string().optional()}); export const airRestrictedFaresParams = z.object({airRestrictedKeywords: z.array(airRestrictedKeyword).optional()}); export const policyConstValue = z.union([z.object({displaySuffix: z.string().optional(), i: z.number().int().optional()}), z.object({displaySuffix: z.string().optional(), l: z.number().int().optional()}), z.object({displaySuffix: z.string().optional(), s: z.string().optional()}), z.object({displaySuffix: z.string().optional(), d: z.number().optional()}), z.object({displaySuffix: z.string().optional(), b: z.boolean().optional()}), z.object({displaySuffix: z.string().optional(), iList: z.array(z.number().int()).optional()}), z.object({displaySuffix: z.string().optional(), dList: z.array(z.number()).optional()}), z.object({displaySuffix: z.string().optional(), sList: z.array(z.string()).optional()}), z.object({displaySuffix: z.string().optional(), money: money.optional()}), z.object({displaySuffix: z.string().optional(), length: length.optional()}), z.object({displaySuffix: z.string().optional(), postalAddress: postalAddress.optional()}), z.object({displaySuffix: z.string().optional(), userOrgId: userOrgId.optional()}), z.object({displaySuffix: z.string().optional(), legalEntityId: legalEntityId.optional()}), z.object({displaySuffix: z.string().optional(), officeId: officeId.optional()}), z.object({displaySuffix: z.string().optional(), userOrgIdList: z.array(userOrgId).optional()}), z.object({displaySuffix: z.string().optional(), legalEntityIdList: z.array(legalEntityId).optional()}), z.object({displaySuffix: z.string().optional(), officeIdList: z.array(officeId).optional()}), z.object({displaySuffix: z.string().optional(), rating: z.number().optional()}), z.object({displaySuffix: z.string().optional(), percentage: z.number().optional()}), z.object({displaySuffix: z.string().optional(), iRange: int32Range.optional()}), z.object({displaySuffix: z.string().optional(), dRange: doubleRange.optional()}), z.object({displaySuffix: z.string().optional(), persona: persona.optional()}), z.object({displaySuffix: z.string().optional(), personaList: z.array(persona).optional()}), z.object({displaySuffix: z.string().optional(), railTravelClass: travelClassHierarchy.optional()}), z.object({displaySuffix: z.string().optional(), keywordWithReasonList: keywordsWithReasonList.optional()}), z.object({displaySuffix: z.string().optional(), workerType: workerType.optional()}), z.object({displaySuffix: z.string().optional(), workerTypeList: z.array(workerType).optional()}), z.object({displaySuffix: z.string().optional(), airRestrictedFaresParams: airRestrictedFaresParams.optional()}), z.object({displaySuffix: z.string().optional(), postalAddressList: z.array(postalAddress).optional()})]); export const policyViolationInfo = z.object({predicateString: z.string().optional(), predicate: policyPredicate.optional(), expectedValue: policyConstValue.optional(), actualValue: policyConstValue.optional()}); export const policyFlagAction = z.object({message: z.string().optional()}); export const policyAlertOnSelectionAction = z.object({message: z.string().optional()}); export const approvalType = z.enum(["HARD_APPROVAL", "SOFT_APPROVAL", "PASSIVE_APPROVAL", "PRE_APPROVAL"]); export const policyTakeApprovalAction = z.object({numHierarchyLevels: z.number().int().optional(), positionTitles: z.array(z.string()).optional(), userOrgIds: z.array(userOrgId).optional(), allRequired: z.boolean().optional(), hardApprovalRequired: z.boolean().optional(), approvalType: approvalType.optional()}); export const policyPreventBookingAction = z.object({prevent: z.boolean().optional(), reason: z.string().optional()}); export const splitPayment = z.object({inPolicyAmount: money.optional(), isAmountReimbursable: z.boolean().optional(), personalFopChargeableAmount: money.optional()}); export const policyAction = z.union([z.object({flag: policyFlagAction.optional()}), z.object({hide: z.boolean().optional()}), z.object({alertOnSelection: policyAlertOnSelectionAction.optional()}), z.object({takeApproval: policyTakeApprovalAction.optional()}), z.object({preventBooking: policyPreventBookingAction.optional()}), z.object({splitPayment: splitPayment.optional()})]); export const policyRuleResultInfo = z.object({violationInfos: z.array(policyViolationInfo).optional(), subViolationInfos: z.array(policyViolationInfo).optional(), actions: z.array(policyAction).optional()}); export const pnrPolicyInfo = z.object({policies: z.array(pnrPolicyId).optional(), ruleResultInfos: z.array(policyRuleResultInfo).optional()}); export const pOSInfo = z.object({source: thirdPartySource, posDescriptor: z.string().optional()}); export const itemType = z.enum(["SERVICE_FEE", "TRAVEL_TICKET", "SEAT", "BAGGAGE", "EARLY_BIRD"]); export const fareComponent = z.enum(["BASE", "TAX"]); export const paymentItem = z.object({itemType: itemType.optional(), fareComponent: z.array(fareComponent).optional()}); export const minMaxAmount = z.object({minLimit: money.optional(), maxLimit: money.optional()}); export const splitAmount = z.object({amount: z.array(money).optional()}); export const paymentSplitDetails = z.union([z.object({minMaxAmount: minMaxAmount.optional()}), z.object({splitAmount: splitAmount.optional()})]); export const accessType = z.enum(["CENTRALISED", "PERSONAL", "APPLICATION", "TMC", "ITINERARY", "EVENT", "EVENT_TEMPLATE"]); export const paymentSplitCriterion = z.object({accessType: accessType.optional()}); export const unusableReason = z.enum(["SUPPLIER_RESTRICTION", "POLICY_RESTRICTION", "INCOMPLETE_PAYMENT_SOURCE", "INSUFFICIENT_BALANCE"]); export const unusablePaymentSource = z.object({id: z.string(), reason: unusableReason.optional()}); export const cardCompany = z.enum(["NONE", "VISA", "MASTERCARD", "AMEX", "DISCOVER", "AIR_TRAVEL_UATP", "CARTE_BLANCHE", "DINERS_CLUB", "JCB", "BREX", "UNION_PAY", "EURO_CARD", "ACCESS_CARD", "ELO_CARD"]); export const paymentSourceCondition = z.object({type: z.string(), cardCompanies: z.array(cardCompany).optional()}); export const paymentRule = z.object({paymentSplitDetails: paymentSplitDetails.optional(), paymentSourceIds: z.array(z.string()).optional(), allowAddCard: z.boolean().optional(), splitCriterion: paymentSplitCriterion.optional(), unusablePaymentSources: z.array(unusablePaymentSource).optional(), paymentSourceConditions: z.array(paymentSourceCondition).optional()}); export const allowedFopRule = z.object({paymentItems: z.array(paymentItem).optional(), amount: money.optional(), paymentRules: z.array(paymentRule).optional()}); export const fareAttributes = z.object({isVoidable: z.boolean().optional(), holdDeadline: dateTimeLocal.optional(), isNonVerifiedExchangeOffer: z.boolean().optional()}); export const changeFee = z.object({amount: money.optional()}); export const cloneInfo = z.object({isClosestMatch: z.boolean().optional()}); export const approverType = z.enum(["UNKNOWN_APPROVER", "APPROVER", "AUTHORIZER"]); export const approverDetails = z.object({approverName: z.string().optional(), approverEmail: z.string().optional(), approverUserOrgId: userOrgId.optional(), type: approverType.optional()}); export const checkoutApprovalInfo = z.object({approvalType: approvalType.optional(), approverDetails: z.array(approverDetails).optional()}); export const airItin = z.object({itineraryId: z.string(), legs: z.array(airLegInfo), travelers: z.array(travelerDetail), fareInfo: fareInfo, ticketType: ticketType, policyInfos: pnrPolicyInfo.optional(), posInfo: z.array(pOSInfo).optional(), publicFare: fareAmount.optional(), allowedFopRules: z.array(allowedFopRule).optional(), fareAttributes: fareAttributes.optional(), additionalTotalFares: z.array(additionalFareAmount).optional(), changeFee: changeFee.optional(), hasApplicableCredits: z.boolean().optional(), applicableCreditIndices: z.array(z.number().int()).optional(), showRawFareRules: z.boolean().optional(), cloneInfo: cloneInfo.optional(), airline: z.string().optional(), isUnselectable: z.boolean().optional(), inPolicyAmount: money.optional(), checkoutApprovalInfo: checkoutApprovalInfo.optional(), allowedFop: z.array(paymentMethod).optional()}); export const itineraryInfo = z.object({itineraries: z.array(airItin).optional(), flightData: z.array(flightCommon).optional()}); export const paginationResponseParams = z.object({numResults: z.number().int(), numPages: z.number().int(), currentPageNumber: z.number().int().optional(), currentPageSize: z.number().int().optional()}); export const airlineInfo = z.object({airlineCode: z.string(), airlineName: z.string().optional()}); export const alliance = z.enum(["UNKNOWN_ALLIANCE", "STAR_ALLIANCE", "ONEWORLD", "SKYTEAM", "VANILLA_ALLIANCE", "U_FLY_ALLIANCE", "VALUE_ALLIANCE"]); export const flightRestriction = z.enum(["NONE", "PRE_BOOKING_SEAT_NOT_ALLOWED", "POST_BOOKING_SEAT_NOT_ALLOWED", "SEAT_BOOKING_NOT_ALLOWED_DUE_TO_BRAND", "SEAT_BOOKING_NOT_ALLOWED", "SEAT_BOOKING_NOT_ALLOWED_OPEN_SEATING", "SEAT_NOT_GUARANTEED_WARNING", "SEAT_BOOKING_NOT_ALLOWED_DUE_TO_CODESHARE", "SUPPRESS_SEAT_LOYALTY_PRICING_WARNING"]); export const flightRestrictionInfo = z.object({flightIndex: z.number().int().optional(), restrictions: z.array(flightRestriction).optional()}); export const airSearchWallet = z.object({balance: z.number().optional(), paymentMethod: paymentMethod.optional()}); export const airSearchPaymentMetadata = z.object({rewardsPermittedForTraveler: z.boolean().optional(), wallets: z.array(airSearchWallet).optional(), isDelayedInvoicing: z.boolean().optional()}); export const fareStatisticItem = z.object({totalFare: fareAmount.optional(), baseFare: money.optional(), duration: duration.optional()}); export const logicalFareStatistic = z.object({fareCategory: fareCategory.optional(), minimum: fareStatisticItem.optional(), median: fareStatisticItem.optional(), maximum: fareStatisticItem.optional()}); export const airSearchShelfInfo = z.object({fareCategory: fareCategory.optional(), totalFare: fareAmount.optional(), duration: duration.optional()}); export const airSearchVendorProgram = z.object({discountCode: z.string().optional()}); export const airSearchCurrentItinerary = z.object({index: z.number().int().optional(), rateOptionId: z.string().optional()}); export const fareCategoryView = z.enum(["UNKNOWN", "CABIN", "NGS"]); export const airMetadata = z.object({airlineInfo: z.array(airlineInfo).optional(), applicableAlliances: z.array(alliance).optional(), legBylegPricing: z.boolean().optional(), enableFareCategories: z.array(fareCategory).optional(), isExpressSearch: z.boolean().optional(), availableConnectingAirports: z.array(airportInfo).optional(), flightRestrictions: z.array(flightRestrictionInfo).optional(), paymentMetadata: airSearchPaymentMetadata.optional(), logicalFareStatistics: z.array(logicalFareStatistic).optional(), shelfInfo: z.array(airSearchShelfInfo).optional(), vendorPrograms: z.array(airSearchVendorProgram).optional(), currentItinerary: airSearchCurrentItinerary.optional(), fareCategoryView: fareCategoryView.optional()}); export const dateTimeOffset = z.object({iso8601: z.string()}); export const nameSuffix = z.enum(["NAME_SUFFIX_UNKNOWN", "SR", "JR", "MD", "PHD", "II", "III", "IV", "DO", "ATTY", "V", "VI", "ESQ", "DC", "DDS", "VM", "JD", "SECOND", "THIRD"]); export const name = z.object({family1: z.string(), family2: z.string().optional(), given: z.string(), middle: z.string().optional(), suffix: nameSuffix.optional(), preferred: z.string().optional()}); export const creditStatus = z.enum(["STATUS_UNKNOWN", "OPEN", "USED", "RESERVED"]); export const creditUsageType = z.enum(["CREDIT_USAGE_TYPE_UNKNOWN", "COMPANY", "PERSONAL"]); export const paymentSourceType = z.enum(["CARD", "VIRTUAL_CARD", "REWARDS_PROGRAM", "DELAYED_INVOICING", "CUSTOM_PAYMENT_METHOD", "VENDOR_PROGRAM_PAYMENT", "UNUSED_CREDIT", "CASH"]); export const tokenizedExpiry = z.object({expiryMonth: z.string(), expiryYear: z.string()}); export const expiry = z.object({expiryMonth: z.number().int().gte(1).lte(12), expiryYear: z.number().int().gte(2000)}); export const cardExpiry = z.union([z.object({tokenizedExpiry: tokenizedExpiry.optional()}), z.object({expiry: expiry.optional()})]); export const ownershipLabel = z.enum(["CORPORATE", "PERSONAL", "CENTRAL"]); export const card = z.object({id: z.string().optional(), type: z.enum(["UNKNOWN", "CREDIT", "DEBIT"]).optional(), company: cardCompany.optional(), name: z.string().optional(), address: postalAddress.optional(), number: z.string(), expiryMonth: z.number().int().gte(1).lte(12).optional(), expiryYear: z.number().int().gte(2000).optional(), cvv: z.string().optional(), label: z.string().optional(), currency: z.string().optional(), externalId: z.string().optional(), vaultId: z.string().optional(), expiry: cardExpiry.optional(), ownershipLabel: ownershipLabel.optional()}); export const unusedCreditFop = z.object({paymentMethod: paymentMethod.optional(), paymentSourceType: paymentSourceType.optional(), card: card.optional()}); export const unusedCreditExchangeInfo = z.object({previousTicket: z.string().optional()}); export const unusedCreditFopCardAccessType = z.enum(["CARD_ACCESS_CENTRAL", "CARD_ACCESS_PERSONAL", "CARD_ACCESS_CORPORATE"]); export const unusedCreditInfo = z.object({sourcePnr: z.string().optional(), spotnanaPnr: z.string().optional(), ticketNumber: z.string().optional(), airlineCode: z.string().optional(), airlineInfo: airlineInfo.optional(), totalFare: money.optional(), issueDate: dateTimeOffset.optional(), expiryDate: dateTimeOffset.optional(), usedDate: dateTimeOffset.optional(), departureDate: dateTimeOffset.optional(), segmentsAvailable: z.enum(["UNKNOWN", "ALL_OPEN", "PARTIAL", "OTHER"]).optional(), passengerName: name.optional(), departureCountry: z.string().optional(), arrivalCountry: z.string().optional(), ticketType: z.enum(["TICKET_TYPE_UNKNOWN", "ETICKET", "MCO", "NON_GDS"]).optional(), pcc: z.string().optional(), status: creditStatus.optional(), source: thirdPartySource.optional(), tripId: z.string().optional(), redeemVia: z.enum(["REDEEM_VIA_OBT", "CONTACT_AGENT"]).optional(), sourceOfTruth: z.enum(["SPOTNANA", "MANUAL_FORM", "MAGNATECH", "BCD", "OBT", "CWT"]).optional(), owningPcc: z.string().optional(), paymentSourceId: z.string().optional(), creditUsageType: creditUsageType.optional(), email: z.string().optional(), fopInfo: unusedCreditFop.optional(), fopLabel: z.string().optional(), exchangeInfo: unusedCreditExchangeInfo.optional(), fopCardAccessType: unusedCreditFopCardAccessType.optional(), legalEntityName: z.string().optional(), creditFareBreakdown: fareAmount.optional(), countryCode: z.string().optional()}); export const waiverApplicabilityType = z.enum(["WAIVER_APPLICABILITY_UNKNOWN", "AIRLINE_DISRUPTION_WAIVER"]); export const airSearchResponse = z.object({searchId: z.string(), itineraryDetails: itineraryInfo, paginationParams: paginationResponseParams.optional(), metadata: airMetadata.optional(), currSelectedItinerary: airItin.optional(), unusedCredits: z.array(unusedCreditInfo).optional(), cheapestOptions: z.array(airItin).optional(), waiverApplicabilityType: waiverApplicabilityType.optional()}); export const airPnrSummary = z.object({legInfos: z.array(legSummary).optional(), totalAmount: money.optional(), llfItinerary: airSearchResponse.optional()}); export const railJourneySummary = z.object({origin: z.string(), destination: z.string(), departureDateTime: dateTimeOffset.optional(), arrivalDateTime: dateTimeOffset.optional(), pnrStatus: pnrStatus.optional(), journeyStatus: pnrStatus.optional()}); export const railPnrSummary = z.object({journeys: z.array(railJourneySummary).optional(), totalAmount: money.optional()}); export const hotelPnrSummary = z.object({name: z.string().optional(), city: z.string().optional(), totalAmount: money.optional(), fromDate: dateTimeLocal.optional(), toDate: dateTimeLocal.optional(), pnrStatus: pnrStatus.optional(), address: postalAddress.optional()}); export const phoneNumber = z.object({countryCode: z.number().int().optional(), countryCodeSource: z.enum(["UNSPECIFIED", "FROM_NUMBER_WITH_PLUS_SIGN", "FROM_NUMBER_WITH_IDD", "FROM_NUMBER_WITHOUT_PLUS_SIGN", "FROM_DEFAULT_COUNTRY"]).optional(), extension: z.string().optional(), isoCountryCode: z.string().optional(), italianLeadingZero: z.boolean().optional(), nationalNumber: z.number().int().optional(), numberOfLeadingZeros: z.number().int().optional(), preferredDomesticCarrierCode: z.string().optional(), rawInput: z.string().optional(), type: z.enum(["UNKNOWN_TYPE", "MOBILE", "LANDLINE"]).optional()}); export const vendor = z.object({code: z.string(), name: z.string(), email: z.string().optional(), phone: phoneNumber.optional()}); export const counterLocation = z.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"]); export const locationContactInfo = z.object({phone: z.array(z.string()).optional(), fax: z.array(z.string()).optional(), email: z.array(z.string()).optional()}); export const dateTimeRange = z.object({min: dateTimeLocal.optional(), max: dateTimeLocal.optional()}); export const locationOperatingSchedule = z.object({interval: z.array(dateTimeRange)}); export const timeLocal = z.object({iso8601: z.string()}); export const timeRange = z.object({min: timeLocal.optional(), max: timeLocal.optional()}); export const weeklyOperatingSchedule = z.object({interval: z.array(timeRange), dayOfWeek: z.string().optional()}); export const carLocation = z.object({address: postalAddress, coordinates: latlng.optional(), counterLocation: counterLocation.optional(), contactInfo: locationContactInfo.optional(), operatingSchedule: locationOperatingSchedule.optional(), weeklyOperatingSchedule: z.array(weeklyOperatingSchedule).optional()}); export const carPnrSummary = z.object({vehicleName: z.string().optional(), vendor: vendor.optional(), totalAmount: money.optional(), fromDate: dateTimeLocal.optional(), toDate: dateTimeLocal.optional(), pnrStatus: pnrStatus.optional(), pickupLocation: carLocation.optional(), dropOffLocation: carLocation.optional()}); export const limoLegSummary = z.object({fromDate: dateTimeLocal.optional(), toDate: dateTimeLocal.optional(), pickupLocation: carLocation.optional(), dropOffLocation: carLocation.optional()}); export const limoPnrSummary = z.object({vehicleName: z.string().optional(), vendor: vendor.optional(), legs: z.array(limoLegSummary).optional(), totalAmount: money.optional(), pnrStatus: pnrStatus.optional()}); export const miscPnrSummary = z.object({description: z.string(), startDateTime: dateTimeLocal, endDateTime: dateTimeLocal, totalAmount: money.optional(), status: pnrStatus.optional(), sortingPriority: z.number().int().optional()}); export const pnrSummaryWrapper = z.union([z.object({airPnrSummary: airPnrSummary.optional()}), z.object({railPnrSummary: railPnrSummary.optional()}), z.object({hotelPnrSummary: hotelPnrSummary.optional()}), z.object({carPnrSummary: carPnrSummary.optional()}), z.object({limoPnrSummary: limoPnrSummary.optional()}), z.object({miscPnrSummary: miscPnrSummary.optional()})]); export const loyaltyTier = z.string(); export const loyaltyInfo = z.object({appliedTo: z.array(z.string()).optional(), id: z.string(), issuedBy: z.string(), type: z.enum(["UNKNOWN_TYPE", "AIR", "HOTEL", "CAR", "RAIL"]), linked: z.boolean().optional(), tier: loyaltyTier.optional()}); export const airlinePref = z.object({airlines: z.array(z.string()).optional(), flightType: z.enum(["UNKNOWN_FLIGHT_TYPE", "DOMESTIC", "INTERNATIONAL", "ALL"]).optional()}); export const alliancePref = z.object({alliances: z.array(alliance)}); export const farePref = z.object({fareTypes: z.array(z.enum(["UNKNOWN_TYPE", "CHANGEABLE", "REFUNDABLE"]))}); export const mealType = z.enum(["UNKNOWN_MEAL", "AVML", "BBML", "BLML", "CHML", "DBML", "FPML", "GFML", "HFML", "HNML", "KSML", "LCML", "LFML", "LPML", "LSML", "MOML", "NLML", "NSML", "ORML", "PFML", "RVML", "SFML", "SPML", "VGML", "VJML", "VLML", "VOML"]); export const mealPref = z.object({exclMealPrefs: z.array(mealType).optional(), inclMealPrefs: z.array(mealType).optional(), specialMealDescription: z.string().optional()}); export const numStopsPref = z.object({numOfStops: z.number().int()}); export const seatAmenityPref = z.object({seatAmenityTypes: z.array(z.enum(["UNKNOWN_AIR_SEAT_AMENITY_TYPE", "FLAT_BED", "WIFI", "IN_SEAT_POWER"]))}); export const seatLocationPref = z.object({cabins: z.array(z.enum(["UNKNOWN_CABIN", "ECONOMY", "PREMIUM_ECONOMY", "BUSINESS", "FIRST"])).optional(), isBulkHeadPref: z.boolean().optional(), maxFlightDurationInHours: z.number().int().optional(), position: z.enum(["UNKNOWN_POSITION", "AISLE", "WINDOW", "AISLE_OR_WINDOW"]).optional()}); export const preferredLocationLabel = z.enum(["HOME", "WORK", "OTHER"]); export const preferredAirport = z.object({airportName: z.string().optional(), airportCode: z.string(), label: preferredLocationLabel}); export const airPref = z.object({airlinePrefs: z.array(airlinePref).optional(), alliancePref: alliancePref.optional(), farePref: farePref.optional(), homeAirport: z.string().optional(), mealPref: mealPref.optional(), numStopPref: numStopsPref.optional(), seatAmenityPref: seatAmenityPref.optional(), seatLocationPrefs: z.array(seatLocationPref).optional(), preferredAirports: z.array(preferredAirport).optional()}); export const dateModel = z.object({iso8601: z.string()}); export const railCard = z.object({cardNumber: z.string().optional(), expiryDate: dateModel.optional(), name: z.string(), spotnanaCode: z.string(), vendor: z.string()}); export const preferredRailStation = z.object({stationName: z.string().optional(), stationCode: z.string(), cityName: z.string().optional(), countryCode: z.string().optional(), label: preferredLocationLabel}); export const seatPrefType = z.enum(["SLEEPER_BED", "NORMAL", "TABLE_SEAT"]); export const seatPrefLocation = z.enum(["AISLE", "WINDOW", "SOLO"]); export const deckLevel = z.enum(["UPPER_DECK", "LOWER_DECK"]); export const seatPrefDirection = z.enum(["FORWARD", "BACKWARD"]); export const seatPref = z.object({hasAccessibility: z.boolean().optional(), seatTypes: z.array(seatPrefType).optional(), seatLocations: z.array(seatPrefLocation).optional(), deckLevels: z.array(deckLevel).optional(), seatDirections: z.array(seatPrefDirection).optional()}); export const railTravelClass = z.enum(["FIRST", "STANDARD", "BUSINESS", "SLEEPER", "STANDARD_PREMIUM", "BUSINESS_PREMIUM", "COACH", "ROOM", "EXECUTIVE"]); export const coachPref = z.enum(["SMOKING", "NON_SMOKING", "PETS_ALLOWED", "RESTAURANT", "QUIET"]); export const conditionalRate = z.enum(["MILITARY", "AAA", "GOVERNMENT"]); export const railPref = z.object({preferredRailStations: z.array(preferredRailStation).optional(), seatPreference: seatPref.optional(), travelClasses: z.array(railTravelClass).optional(), coachPreferences: z.array(coachPref).optional(), conditionalRates: z.array(conditionalRate).optional()}); export const carVendor = z.object({code: z.string(), name: z.string(), isPresentInPreferredVendors: z.boolean().optional()}); export const carType = z.enum(["OTHER", "MINI", "ECONOMY", "COMPACT", "MID_SIZE", "STANDARD", "FULL_SIZE", "PREMIUM", "LUXURY", "CONVERTIBLE", "MINIVAN", "SUV", "VAN", "PICKUP", "SPORTS", "SPECIAL", "RECREATIONAL_VEHICLE", "WAGON"]); export const engineType = z.enum(["UNKNOWN_ENGINE", "PETROL", "DIESEL", "ELECTRIC", "CNG", "HYBRID", "HYDROGEN", "MULTI_FUEL", "ETHANOL"]); export const transmissionSearchFilter = z.enum(["MANUAL", "AUTOMATIC"]); export const carPref = z.object({vendors: z.array(carVendor).optional(), carTypes: z.array(carType).optional(), engineTypes: z.array(engineType).optional(), transmissionTypes: z.array(transmissionSearchFilter).optional(), conditionalRates: z.array(conditionalRate).optional()}); export const hotelChain = z.object({chainCode: z.string().optional(), chainName: z.string().optional()}); export const hotelBrand = z.object({brandCode: z.string().optional(), brandName: z.string().optional()}); export const hotelPrefAmenity = z.enum(["PARKING", "FREE_PARKING", "FREE_BREAKFAST", "POOL", "WIFI", "FITNESS_CENTER", "FAMILY_FRIENDLY", "RECEPTION", "SPA", "RESTAURANT", "BAR", "TRANSPORTATION", "PET_FRIENDLY", "BUSINESS_CENTER", "AIR_CONDITIONING", "BEACH_ACCESS", "LAUNDRY_SERVICES", "ROOM_SERVICE", "ACCESSIBLE"]); export const roomPreference = z.object({isMobilityAccessible: z.boolean().optional(), bedCount: z.enum(["ONE_BED", "TWO_BEDS"]).optional(), roomType: z.enum(["SMOKING", "NON_SMOKING"]).optional(), mostImportantFact: z.enum(["ROOM_TYPE", "BED_COUNT", "ROOM_LOCATION"]).optional(), roomLocation: z.enum(["HIGH_FLOOR", "LOW_FLOOR", "NEAR_ELEVATOR"]).optional(), pillowType: z.enum(["FOAM", "EXTRA_FOAM", "EXTRA_FEATHER"]).optional(), roomAmenityPrefs: z.array(z.enum(["FEATHER_FREE_ROOM", "EXTRA_TOWELS", "REFRIGERATOR"])).optional()}); export const hotelPref = z.object({hotelParentChains: z.array(hotelChain).optional(), hotelBrands: z.array(hotelBrand).optional(), hotelAmenityTypes: z.array(hotelPrefAmenity).optional(), roomPreference: roomPreference.optional(), conditionalRates: z.array(conditionalRate).optional()}); export const travelPref = z.object({airPref: airPref.optional(), preferredCurrency: z.string().optional(), railCards: z.array(railCard).optional(), railPref: railPref.optional(), carPref: carPref.optional(), hotelPref: hotelPref.optional()}); export const travelerPersonalInfo = z.object({loyaltyInfos: z.array(loyaltyInfo).optional(), travelPref: travelPref.optional(), blockLoyalty: z.boolean().optional()}); export const emergencyContactInfo = z.object({address: postalAddress.optional(), designation: z.string().optional(), email: z.string(), name: name.optional(), phoneNumber: phoneNumber.optional(), userOrgId: userOrgId.optional()}); export const emergencyContact = z.object({name: z.string(), email: z.string().optional(), designation: z.string().optional(), relation: z.enum(["RELATION_UNKNOWN", "SPOUSE", "PARENT", "SIBLING", "CHILD", "FRIEND", "RELATIVE", "COLLEAGUE", "OTHER"]).optional(), phoneNumbers: z.array(phoneNumber), preferredLanguage: z.string().optional()}); export const gender = z.enum(["MALE", "FEMALE", "UNSPECIFIED", "UNDISCLOSED", "GENDER_REDACTED"]); export const passport = z.object({docId: z.string(), expiryDate: dateModel, issueCountry: z.string(), issuedDate: dateModel.optional(), nationalityCountry: z.string(), type: z.enum(["UNKNOWN", "REGULAR"]).optional()}); export const immigrationDocument = z.object({authorizedStayDuration: duration.optional(), docId: z.string(), expiryDate: dateModel, issueCountry: z.string(), issuedDate: dateModel.optional(), nationalityCountry: z.string().optional(), reentryRequirementDuration: duration.optional(), type: z.enum(["UNKNOWN", "VISA"]).optional()}); export const redressNumber = z.object({number: z.string(), issueCountry: z.string()}); export const knownTravelerNumber = z.object({number: z.string(), issueCountry: z.string()}); export const nationalDoc = z.object({docId: z.string(), issueCountry: z.string(), issuedDate: dateModel.optional(), expiryDate: dateModel.optional(), type: z.enum(["DNI", "NIE", "CPF", "MTP", "CIN", "NID"]).optional()}); export const identityDocument = z.union([z.object({passport: passport.optional()}), z.object({immigrationDoc: immigrationDocument.optional()}), z.object({redress: redressNumber.optional()}), z.object({ktn: knownTravelerNumber.optional()}), z.object({nationalDoc: nationalDoc.optional()})]); export const creditCardAccessType = z.enum(["UNKNOWN_TYPE", "CENTRALISED", "INDIVIDUAL", "PERSONAL", "TMC", "APPLICATION", "ITINERARY", "EVENTS", "TRAVEL_ARRANGER_MANAGED", "COMPANY_TRAVEL_ARRANGER_MANAGED", "EVENT_TEMPLATE"]); export const centralCardAccessLevel = z.enum(["UNKNOWN", "ORGANIZATION", "LEGAL_ENTITY", "TMC"]); export const cardAccessEntity = z.object({entityId: z.string(), centralCardAccessLevel: centralCardAccessLevel.optional()}); export const creditCardAccess = z.object({accessType: creditCardAccessType, entityIds: z.array(z.string()), entities: z.array(cardAccessEntity).optional()}); export const paymentInfo = z.object({applicableTo: z.array(z.enum(["UNKNOWN_APPLICABLE_TO", "AIR", "HOTEL", "RAIL", "CAR", "SERVICE_FEE"])).optional(), card: card, accessType: creditCardAccessType.optional(), access: creditCardAccess.optional()}); export const userTitle = z.enum(["TITLE_UNKNOWN", "MR", "MS", "MRS", "MX", "MASTER", "MISS", "DR", "PROFESSOR", "CAPTAIN", "REVEREND", "HONOURABLE", "SIR", "LADY", "AMBASSADOR", "LORD", "BRIGADIER", "SENATOR", "DAME", "JUSTICE", "UK", "TITLE_REDACTED"]); export const user = z.object({addresses: z.array(postalAddress).optional(), dob: dateModel.optional(), email: z.string().optional(), emergencyContactInfo: emergencyContactInfo.optional(), emergencyContact: emergencyContact.optional(), gender: gender.optional(), identityDocs: z.array(identityDocument).optional(), name: name.optional(), paymentInfos: z.array(paymentInfo).optional(), phoneNumbers: z.array(phoneNumber).optional(), profilePicture: image.optional(), nationality: z.string().optional(), title: userTitle.optional()}); export const departmentId = z.object({id: z.string()}); export const department = z.object({id: departmentId, name: z.string(), externalId: z.string().optional(), employeeCount: z.number().int().optional()}); export const gradeId = z.object({id: z.string()}); export const grade = z.object({employeeCount: z.number().int().optional(), id: gradeId, name: z.string()}); export const tier = z.enum(["BASIC", "SEAT1A", "TIER_2", "TIER_3", "TIER_4", "TIER_5", "TIER_6", "TIER_7", "TIER_8", "TIER_9", "TIER_10", "TIER_11", "TIER_12", "TIER_13", "TIER_14", "TIER_15", "TIER_16", "TIER_17", "TIER_18", "TIER_19", "TIER_20", "TIER_21", "TIER_22", "TIER_23", "TIER_24", "TIER_25", "TIER_26", "TIER_27", "TIER_28", "TIER_29", "TIER_30", "TIER_31"]); export const userBasicInfo = z.object({userOrgId: userOrgId.optional(), persona: persona.optional(), email: z.string().optional(), name: name.optional(), profilePicture: image.optional(), tier: tier.optional(), phoneNumber: phoneNumber.optional(), employeeId: z.string().optional(), isActive: z.boolean().optional()}); export const office = z.object({address: postalAddress.optional(), id: officeId, name: z.string(), latlng: latlng.optional(), taxId: z.string().optional()}); export const costCenterId = z.object({id: z.string()}); export const costCenter = z.object({id: costCenterId, name: z.string(), externalId: z.string().optional()}); export const userBusinessInfo = z.object({department: department.optional(), designation: z.string().optional(), email: z.string(), employeeId: z.string(), grade: grade.optional(), legalEntityId: legalEntityId, managerBasicInfo: userBasicInfo.optional(), office: office.optional(), organizationId: organizationId, phoneNumbers: z.array(phoneNumber).optional(), userCostCenter: costCenter.optional(), designatedApproverInfos: z.array(userBasicInfo).optional(), designatedApproverUserIds: z.array(userId).optional(), authorizerEmail: z.string().optional()}); export const profileOwner = z.object({userId: userId}); export const adhocUserInfo = z.object({profileOwner: profileOwner, isSaved: z.boolean().optional()}); export const traveler = z.object({travelerPersonalInfo: travelerPersonalInfo.optional(), user: user.optional(), userBusinessInfo: userBusinessInfo.optional(), userOrgId: userOrgId.optional(), persona: persona.optional(), isActive: z.boolean().optional(), tier: tier.optional(), adhocUserInfo: adhocUserInfo.optional(), externalId: z.string().optional()}); export const pnrType = z.enum(["AIR", "CAR", "RAIL", "HOTEL", "LIMO", "MISC"]); export const approverInfo = z.object({basicInfo: userBasicInfo.optional()}); export const approvalStatus = z.enum(["APPROVAL_PENDING", "APPROVED", "DENIED", "TIMED_OUT", "SOFT_APPROVAL_TIMEOUT"]); export const approvalDetail = z.object({originalApprovalType: approvalType.optional(), appliedApprovalType: approvalType.optional()}); export const approvalData = z.object({approvalId: z.string().optional(), approvers: z.array(approverInfo).optional(), approvalStatus: approvalStatus.optional(), approvalVoidDeadline: dateTimeOffset.optional(), approvalDetail: approvalDetail.optional()}); export const preDefinedAnswers = z.enum(["UNKNOWN_CHECKOUT_ANSWER_TYPE", "OTHER", "TIMING_OR_SCHEDULING", "AIRLINE_PREFERENCE", "AIRPORT_PREFERENCE", "MILEAGE_OR_PROGRAM_UPGRADE", "NO_OTHER_OPTION_AVAILABLE", "FASTER_OPTION", "NO_ANSWER", "NOT_AVAILABLE"]); export const policyDetail = z.object({reasonCode: preDefinedAnswers.optional(), reason: z.string().optional(), appliedPolicyInfo: pnrPolicyInfo, isOutOfPolicy: z.boolean().optional()}); export const airportDetail = z.object({airportCode: z.string(), airportName: z.string(), cityName: z.string().optional(), countryName: z.string().optional(), countryCode: z.string().optional(), zoneName: z.string().optional(), stateCode: z.string().optional()}); export const answerPair = z.object({item: z.string().optional(), value: z.string().optional(), description: z.string().optional()}); export const customFieldType = z.enum(["QUESTION", "MEETING", "BUDGET", "BREX_TOKEN"]); export const questionFormat = z.enum(["INPUT_BOX", "RADIO_BUTTON", "CHECKBOX", "CHECKBOX_WITH_PERCENTAGE"]); export const optionSource = z.enum(["MANUAL", "COMPANY_CONFIG"]); export const customFieldOptionsParam = z.enum(["COST_CENTER", "LEGAL_ENTITY", "OFFICE", "DEPARTMENT"]); export const companyConfigSource = z.object({optionsParam: customFieldOptionsParam}); export const optionSourceMetadata = z.object({companyConfig: companyConfigSource.optional()}); export const option = z.object({displayCode: z.string(), displayValue: z.string().optional()}); export const optionInfo = z.object({source: optionSource, sourceMetadata: optionSourceMetadata.optional(), totalNumOptions: z.number().int().optional(), options: z.array(option).optional()}); export const customFieldLocation = z.enum(["POLICY_APPROVAL_EMAIL", "PNR_EMAIL", "TRIP_EMAIL"]); export const reference = z.object({id: z.string(), name: z.string().optional()}); export const travelerMatchConditions = z.object({workerTypes: z.array(workerType).optional(), countries: z.array(z.string()).optional(), legalEntities: z.array(reference).optional(), departments: z.array(reference).optional(), costCenters: z.array(reference).optional(), offices: z.array(reference).optional()}); export const travelRegionType = z.enum(["DOMESTIC", "INTERNATIONAL"]); export const tripUsageType = z.enum(["STANDARD", "EVENT"]); export const customFieldMatchConditions = z.object({travelerConditions: travelerMatchConditions.optional(), travelTypes: z.array(travelType).optional(), travelRegionTypes: z.array(travelRegionType).optional(), tripUsageTypes: z.array(tripUsageType).optional()}); export const preSearchQuestionType = z.enum(["UNKNOWN_SEARCH_QUESTION_TYPE", "PURPOSE_OF_TRIP"]); export const preCheckoutQuestionType = z.enum(["UNKNOWN_CHECKOUT_QUESTION_TYPE", "USER_DEFINED_QUESTION", "OOP_REASON_CODE"]); export const questionType = z.object({preSearchQuestionType: preSearchQuestionType.optional(), preCheckoutQuestionType: preCheckoutQuestionType.optional()}); export const question = z.object({id: z.string(), name: z.string(), questionFormat: questionFormat.optional(), optionInfo: optionInfo.optional(), isRequired: z.boolean(), isDisabled: z.boolean(), includeInItinerary: z.boolean().optional(), customFieldLocations: z.array(customFieldLocation).optional(), matchConditions: customFieldMatchConditions.optional(), questionType: questionType.optional()}); export const entityAnswer = z.object({entityId: z.string().optional(), userInput: z.string().optional(), itemIds: z.array(z.number().int()).optional(), answers: z.array(answerPair).optional(), customFieldType: customFieldType.optional(), questionDisplayText: z.string().optional(), question: question.optional()}); export const preBookAnswers = z.object({answers: z.array(entityAnswer).optional(), preBookQuestionResponseId: z.string().optional()}); export const includeLocation = z.enum(["BOOKING_CONFIRMATION_EMAILS", "APPROVAL_EMAILS", "COMPANY_REPORTS", "CONSOLIDATED_ITINERARY_EMAILS"]); export const variableName = z.enum(["PUBLISHED_FARE", "LLF", "ADD_COLLECT_AMOUNT", "SELECTED_FARE", "SPLIT_PAYMENT_FARE"]); export const additionalInfo = z.discriminatedUnion("type", [z.object({type: z.string(), name: variableName}), z.object({type: z.string(), formatExpression: z.string(), variables: z.array(variableName).optional()})]); export const customFieldSelectedOption = z.object({name: z.string(), translatedName: z.string().optional(), description: z.string().optional(), translatedDescription: z.string().optional(), additionalUserInput: z.string().optional(), additionalInfos: z.array(z.string()).optional(), additionalInfoConfigs: z.array(additionalInfo).optional(), optionId: z.string().optional()}); export const customFieldV3Response = z.object({fieldId: z.string(), fieldName: z.string().optional(), armId: z.string(), includeLocations: z.array(includeLocation).optional(), selectedOptions: z.array(customFieldSelectedOption)}); export const pnrSummary = z.object({pnrId: z.string(), sourcePnrId: z.string().optional(), pnrStatus: pnrStatus.optional(), pnrSummary: pnrSummaryWrapper.optional(), userFacingStatus: userFacingStatus.optional(), tmcInfo: tmcInfo.optional(), source: thirdPartySource.optional(), travelers: z.array(traveler).optional(), pnrType: pnrType.optional(), approvalData: approvalData.optional(), policyInfo: policyDetail.optional(), additionalMetadata: z.object({airportInfo: z.array(airportDetail).optional()}).optional(), preBookAnswers: preBookAnswers.optional(), initialCustomFieldV3Responses: z.array(customFieldV3Response).optional()}); export const pnrBookingStatus = z.enum(["PENDING", "CONFIRMED", "ACTIVE", "COMPLETED", "CANCELLED", "REFUNDED", "VOIDED", "PROCESSING", "UNCONFIRMED", "AIRLINE_CONTROL", "PAYMENT_DECLINED", "SCHEDULE_CHANGE", "UNKNOWN", "HOLD", "APPROVAL_REQUESTED", "APPROVAL_DENIED", "CANCELLATION_IN_PROGRESS", "INOPERATIVE_STATUS", "FLIGHT_UNCONFIRMED_STATUS"]); export const overallStatus = z.enum(["PENDING_STATUS", "CONFIRMED_STATUS", "CANCELLED_STATUS", "AIRLINE_CONTROL_STATUS", "PAYMENT_DECLINED_STATUS", "DISRUPTED_STATUS", "DRAFT_STATUS"]); export const eventType = z.enum(["GENERIC", "PROGRAM", "PROGRAM_SESSION", "PROGRAM_TRIP"]); export const tripEventMetadata = z.object({eventId: z.string(), rootEventId: z.string().optional(), eventType: eventType.optional(), associatedEventIds: z.array(z.string()).optional()}); export const tripUsageMetadata = z.object({tripUsageType: tripUsageType, eventMetadata: tripEventMetadata.optional()}); export const tripTravelIntentType = z.enum(["CORPORATE", "LEISURE"]); export const tripTravelIntentMetadata = z.object({tripTravelIntentType: tripTravelIntentType}); export const policyStatus = z.enum(["IN_POLICY", "OUT_OF_POLICY"]); export const tripSummary = z.object({tripId: z.string(), tripName: z.string(), description: z.string().optional(), pnrSummaries: z.array(pnrSummary).optional(), tripStatus: pnrBookingStatus.optional(), startDate: dateModel.optional(), endDate: dateModel.optional(), userBasicInfo: userBasicInfo.optional(), overallStatus: overallStatus.optional(), tripUsageMetadata: tripUsageMetadata.optional(), tripTravelIntentMetadata: tripTravelIntentMetadata.optional(), createdByUserBasicInfo: userBasicInfo.optional(), policyStatus: policyStatus.optional(), imageId: z.string().optional(), tripHeaderImages: z.array(image).optional()}); export const getTripSummariesV3Response = z.object({paginationResponseParams: offsetBasedPaginationResponseParams, tripSummaries: z.array(tripSummary).optional(), failedTripSummaries: z.array(tripSummary).optional()}); export const validateResponse = async ( schema: { readonly '~standard': { readonly validate: (value: unknown) => ({ readonly value: Output; readonly issues?: undefined } | { readonly issues: ReadonlyArray<{ readonly message: string; readonly path?: ReadonlyArray | undefined }> }) | Promise<{ readonly value: Output; readonly issues?: undefined } | { readonly issues: ReadonlyArray<{ readonly message: string; readonly path?: ReadonlyArray | undefined }> }> } }, value: unknown ): Promise => { const result = await schema['~standard'].validate(value) if (result.issues !== undefined) { const detail = result.issues .map(({ message, path }) => path?.length ? `${path.map((segment) => String(typeof segment === 'object' ? segment.key : segment)).join('.')}: ${message}` : message ) .join('; ') throw new Error(`Response does not match the schema: ${detail}`, { cause: { issues: result.issues } }) } return result.value }; /** * List trip summaries for travelers managed by an arranger * * POST /v3/trips/arrangers/{arrangerId}/list */ export const createApiV3TripsArrangersArrangerIdList = async (args: CreateApiV3TripsArrangersArrangerIdListArgs, options?: CreateApiV3TripsArrangersArrangerIdListOptions) => { const {baseUrl = "https://api-ext-sboxmeta.partners.spotnana.com", fetch: fetchFn = fetch, Bearer} = options ?? {} const query = new URLSearchParams() const headers = new Headers() headers.set('content-type', "application/json") headers.set('accept', "application/json") if (Bearer !== undefined) headers.set('authorization', `Bearer ${Bearer}`) const url = `${baseUrl.replace(/\/+$/, '')}/v3/trips/arrangers/${encodeURIComponent(String(args.arrangerId))}/list${query.size > 0 ? `?${query}` : ''}` const res = await fetchFn(url, {method: "POST", headers, body: JSON.stringify(args.body)}) if (!res.ok) throw new Error(`Request failed with status ${res.status}`, {cause: {status: res.status, body: await res.text()}}) return validateResponse(getTripSummariesV3Response, await res.json()) };