/* * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ import * as z from "zod/v4-mini"; import { remap as remap$ } from "../../lib/primitives.js"; import { DistanceUnitEnum, DistanceUnitEnum$outboundSchema, } from "./distanceunitenum.js"; import { ParcelExtra, ParcelExtra$Outbound, ParcelExtra$outboundSchema, } from "./parcelextra.js"; import { WeightUnitEnum, WeightUnitEnum$outboundSchema, } from "./weightunitenum.js"; export type ParcelCreateRequest = { /** * An object holding optional extra services to be requested for each parcel in a multi-piece shipment. * * @remarks * See the Parcel Extra table below for all available services. */ extra?: ParcelExtra | undefined; metadata?: string | undefined; /** * The unit used for weight. */ massUnit: WeightUnitEnum; /** * Weight of the parcel. Up to six digits in front and four digits after the decimal separator are accepted. */ weight: string; /** * The measure unit used for length, width and height. */ distanceUnit: DistanceUnitEnum; /** * Height of the parcel. Up to six digits in front and four digits after the decimal separator are accepted. */ height: string; /** * Length of the Parcel. Up to six digits in front and four digits after the decimal separator are accepted. */ length: string; /** * Width of the Parcel. Up to six digits in front and four digits after the decimal separator are accepted. */ width: string; }; /** @internal */ export type ParcelCreateRequest$Outbound = { extra?: ParcelExtra$Outbound | undefined; metadata?: string | undefined; mass_unit: string; weight: string; distance_unit: string; height: string; length: string; width: string; }; /** @internal */ export const ParcelCreateRequest$outboundSchema: z.ZodMiniType< ParcelCreateRequest$Outbound, ParcelCreateRequest > = z.pipe( z.object({ extra: z.optional(ParcelExtra$outboundSchema), metadata: z.optional(z.string()), massUnit: WeightUnitEnum$outboundSchema, weight: z.string(), distanceUnit: DistanceUnitEnum$outboundSchema, height: z.string(), length: z.string(), width: z.string(), }), z.transform((v) => { return remap$(v, { massUnit: "mass_unit", distanceUnit: "distance_unit", }); }), ); export function parcelCreateRequestToJSON( parcelCreateRequest: ParcelCreateRequest, ): string { return JSON.stringify( ParcelCreateRequest$outboundSchema.parse(parcelCreateRequest), ); }