/* * 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 { Result as SafeParseResult } from "../types/fp.js"; import { SDKValidationError } from "./errors/sdkvalidationerror.js"; export type DistancesAndDirectionsInteractiveDirectionsResponseItem = { /** * A zero based counter indicating the row number. */ segmentNumber?: number | undefined; /** * A zero based counter indicating the row number. */ stepNumber?: number | undefined; /** * The type of routing instruction. */ action?: string | undefined; /** * Textual description of the routing instruction. */ description?: string | undefined; /** * The name of the road to turn onto. */ road?: string | undefined; /** * The time in seconds for this part of the route. */ stepTime?: number | undefined; /** * The distance in metres for this part of the route. */ stepDistance?: number | undefined; /** * The total time in seconds for the route. */ totalTime?: number | undefined; /** * The total distance in metres for the route. */ totalDistance?: number | undefined; }; export type DistancesAndDirectionsInteractiveDirectionsResponse = { items?: | Array | undefined; }; /** @internal */ export const DistancesAndDirectionsInteractiveDirectionsResponseItem$inboundSchema: z.ZodType< DistancesAndDirectionsInteractiveDirectionsResponseItem, z.ZodTypeDef, unknown > = z.object({ SegmentNumber: z.number().int().optional(), StepNumber: z.number().int().optional(), Action: z.string().optional(), Description: z.string().optional(), Road: z.string().optional(), StepTime: z.number().int().optional(), StepDistance: z.number().int().optional(), TotalTime: z.number().int().optional(), TotalDistance: z.number().int().optional(), }).transform((v) => { return remap$(v, { "SegmentNumber": "segmentNumber", "StepNumber": "stepNumber", "Action": "action", "Description": "description", "Road": "road", "StepTime": "stepTime", "StepDistance": "stepDistance", "TotalTime": "totalTime", "TotalDistance": "totalDistance", }); }); export function distancesAndDirectionsInteractiveDirectionsResponseItemFromJSON( jsonString: string, ): SafeParseResult< DistancesAndDirectionsInteractiveDirectionsResponseItem, SDKValidationError > { return safeParse( jsonString, (x) => DistancesAndDirectionsInteractiveDirectionsResponseItem$inboundSchema .parse(JSON.parse(x)), `Failed to parse 'DistancesAndDirectionsInteractiveDirectionsResponseItem' from JSON`, ); } /** @internal */ export const DistancesAndDirectionsInteractiveDirectionsResponse$inboundSchema: z.ZodType< DistancesAndDirectionsInteractiveDirectionsResponse, z.ZodTypeDef, unknown > = z.object({ Items: z.array( z.lazy(() => DistancesAndDirectionsInteractiveDirectionsResponseItem$inboundSchema ), ).optional(), }).transform((v) => { return remap$(v, { "Items": "items", }); }); export function distancesAndDirectionsInteractiveDirectionsResponseFromJSON( jsonString: string, ): SafeParseResult< DistancesAndDirectionsInteractiveDirectionsResponse, SDKValidationError > { return safeParse( jsonString, (x) => DistancesAndDirectionsInteractiveDirectionsResponse$inboundSchema.parse( JSON.parse(x), ), `Failed to parse 'DistancesAndDirectionsInteractiveDirectionsResponse' from JSON`, ); }