/* * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ import * as z from "zod/v3"; import { remap as remap$ } from "../../lib/primitives.js"; import { safeParse } from "../../lib/schemas.js"; import * as openEnums from "../../types/enums.js"; import { OpenEnum } from "../../types/enums.js"; import { Result as SafeParseResult } from "../../types/fp.js"; import { SDKValidationError } from "../errors/sdkvalidationerror.js"; export const RouteType = { RoundTrip: "round_trip", OneWay: "one_way", } as const; export type RouteType = OpenEnum; export type AirlineLeg = { /** * Arrival airport code of leg. 3-letter ISO code according to IATA official directory. */ arrivalAirport?: string | null | undefined; /** * The date and time of travel in local time at the arrival airport. */ arrivalAt?: Date | null | undefined; /** * Arrival city name. */ arrivalCity?: string | null | undefined; /** * Arrival country code in ISO 3166 format. */ arrivalCountry?: string | null | undefined; /** * 3 character airline code as set by IATA. */ carrierCode?: string | null | undefined; /** * Name of the airline. */ carrierName?: string | null | undefined; /** * Two-character IATA code of the airline. */ iataDesignator?: string | null | undefined; /** * Three-character ICAO code of the airline. */ icaoCode?: string | null | undefined; /** * Coupon number associated with the leg. */ couponNumber?: string | null | undefined; /** * Departure airport code of leg. 3-letter ISO code according to IATA official directory. */ departureAirport?: string | null | undefined; /** * The date and time of travel in local time at the departure airport. */ departureAt?: Date | null | undefined; /** * Departure city name. */ departureCity?: string | null | undefined; /** * Departure airport code of leg. 3-letter ISO code according to IATA official directory. */ departureCountry?: string | null | undefined; /** * Departure tax amount charged by a country when a person is leaving the country. */ departureTaxAmount?: number | null | undefined; /** * Amount of the ticket, for current leg of the trip, excluding taxes and fees. */ fareAmount?: number | null | undefined; /** * The alphanumeric code for the booking class of a ticket. */ fareBasisCode?: string | null | undefined; /** * Fee amount for current leg of the trip. */ feeAmount?: number | null | undefined; /** * Indicates service class (first class, business class, etc.). */ flightClass?: string | null | undefined; /** * Unique identifier of the flight number. */ flightNumber?: string | null | undefined; /** * The route type of the flight. */ routeType?: RouteType | null | undefined; /** * Indicates seat class (first class, business class, etc.). */ seatClass?: string | null | undefined; /** * Indicates whether a stopover is allowed on this ticket. */ stopOver?: boolean | null | undefined; /** * Amount of the taxes for current leg of the trip. */ taxAmount?: number | null | undefined; }; /** @internal */ export const RouteType$inboundSchema: z.ZodType< RouteType, z.ZodTypeDef, unknown > = openEnums.inboundSchema(RouteType); /** @internal */ export const RouteType$outboundSchema: z.ZodType< string, z.ZodTypeDef, RouteType > = openEnums.outboundSchema(RouteType); /** @internal */ export const AirlineLeg$inboundSchema: z.ZodType< AirlineLeg, z.ZodTypeDef, unknown > = z.object({ arrival_airport: z.nullable(z.string()).optional(), arrival_at: z.nullable( z.string().datetime({ offset: true }).transform(v => new Date(v)), ).optional(), arrival_city: z.nullable(z.string()).optional(), arrival_country: z.nullable(z.string()).optional(), carrier_code: z.nullable(z.string()).optional(), carrier_name: z.nullable(z.string()).optional(), iata_designator: z.nullable(z.string()).optional(), icao_code: z.nullable(z.string()).optional(), coupon_number: z.nullable(z.string()).optional(), departure_airport: z.nullable(z.string()).optional(), departure_at: z.nullable( z.string().datetime({ offset: true }).transform(v => new Date(v)), ).optional(), departure_city: z.nullable(z.string()).optional(), departure_country: z.nullable(z.string()).optional(), departure_tax_amount: z.nullable(z.number().int()).optional(), fare_amount: z.nullable(z.number().int()).optional(), fare_basis_code: z.nullable(z.string()).optional(), fee_amount: z.nullable(z.number().int()).optional(), flight_class: z.nullable(z.string()).optional(), flight_number: z.nullable(z.string()).optional(), route_type: z.nullable(RouteType$inboundSchema).optional(), seat_class: z.nullable(z.string()).optional(), stop_over: z.nullable(z.boolean()).optional(), tax_amount: z.nullable(z.number().int()).optional(), }).transform((v) => { return remap$(v, { "arrival_airport": "arrivalAirport", "arrival_at": "arrivalAt", "arrival_city": "arrivalCity", "arrival_country": "arrivalCountry", "carrier_code": "carrierCode", "carrier_name": "carrierName", "iata_designator": "iataDesignator", "icao_code": "icaoCode", "coupon_number": "couponNumber", "departure_airport": "departureAirport", "departure_at": "departureAt", "departure_city": "departureCity", "departure_country": "departureCountry", "departure_tax_amount": "departureTaxAmount", "fare_amount": "fareAmount", "fare_basis_code": "fareBasisCode", "fee_amount": "feeAmount", "flight_class": "flightClass", "flight_number": "flightNumber", "route_type": "routeType", "seat_class": "seatClass", "stop_over": "stopOver", "tax_amount": "taxAmount", }); }); /** @internal */ export type AirlineLeg$Outbound = { arrival_airport?: string | null | undefined; arrival_at?: string | null | undefined; arrival_city?: string | null | undefined; arrival_country?: string | null | undefined; carrier_code?: string | null | undefined; carrier_name?: string | null | undefined; iata_designator?: string | null | undefined; icao_code?: string | null | undefined; coupon_number?: string | null | undefined; departure_airport?: string | null | undefined; departure_at?: string | null | undefined; departure_city?: string | null | undefined; departure_country?: string | null | undefined; departure_tax_amount?: number | null | undefined; fare_amount?: number | null | undefined; fare_basis_code?: string | null | undefined; fee_amount?: number | null | undefined; flight_class?: string | null | undefined; flight_number?: string | null | undefined; route_type?: string | null | undefined; seat_class?: string | null | undefined; stop_over?: boolean | null | undefined; tax_amount?: number | null | undefined; }; /** @internal */ export const AirlineLeg$outboundSchema: z.ZodType< AirlineLeg$Outbound, z.ZodTypeDef, AirlineLeg > = z.object({ arrivalAirport: z.nullable(z.string()).optional(), arrivalAt: z.nullable(z.date().transform(v => v.toISOString())).optional(), arrivalCity: z.nullable(z.string()).optional(), arrivalCountry: z.nullable(z.string()).optional(), carrierCode: z.nullable(z.string()).optional(), carrierName: z.nullable(z.string()).optional(), iataDesignator: z.nullable(z.string()).optional(), icaoCode: z.nullable(z.string()).optional(), couponNumber: z.nullable(z.string()).optional(), departureAirport: z.nullable(z.string()).optional(), departureAt: z.nullable(z.date().transform(v => v.toISOString())).optional(), departureCity: z.nullable(z.string()).optional(), departureCountry: z.nullable(z.string()).optional(), departureTaxAmount: z.nullable(z.number().int()).optional(), fareAmount: z.nullable(z.number().int()).optional(), fareBasisCode: z.nullable(z.string()).optional(), feeAmount: z.nullable(z.number().int()).optional(), flightClass: z.nullable(z.string()).optional(), flightNumber: z.nullable(z.string()).optional(), routeType: z.nullable(RouteType$outboundSchema).optional(), seatClass: z.nullable(z.string()).optional(), stopOver: z.nullable(z.boolean()).optional(), taxAmount: z.nullable(z.number().int()).optional(), }).transform((v) => { return remap$(v, { arrivalAirport: "arrival_airport", arrivalAt: "arrival_at", arrivalCity: "arrival_city", arrivalCountry: "arrival_country", carrierCode: "carrier_code", carrierName: "carrier_name", iataDesignator: "iata_designator", icaoCode: "icao_code", couponNumber: "coupon_number", departureAirport: "departure_airport", departureAt: "departure_at", departureCity: "departure_city", departureCountry: "departure_country", departureTaxAmount: "departure_tax_amount", fareAmount: "fare_amount", fareBasisCode: "fare_basis_code", feeAmount: "fee_amount", flightClass: "flight_class", flightNumber: "flight_number", routeType: "route_type", seatClass: "seat_class", stopOver: "stop_over", taxAmount: "tax_amount", }); }); export function airlineLegToJSON(airlineLeg: AirlineLeg): string { return JSON.stringify(AirlineLeg$outboundSchema.parse(airlineLeg)); } export function airlineLegFromJSON( jsonString: string, ): SafeParseResult { return safeParse( jsonString, (x) => AirlineLeg$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'AirlineLeg' from JSON`, ); }