/* * 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 { ParcelExtra, ParcelExtra$Outbound, ParcelExtra$outboundSchema, } from "./parcelextra.js"; import { ParcelTemplateEnumSet, ParcelTemplateEnumSet$Outbound, ParcelTemplateEnumSet$outboundSchema, } from "./parceltemplateenumset.js"; import { WeightUnitEnum, WeightUnitEnum$outboundSchema, } from "./weightunitenum.js"; export type ParcelCreateFromTemplateRequest = { /** * 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; /** * If template is passed, `length`, `width`, `height`, and `distance_unit` are not required */ template: ParcelTemplateEnumSet; }; /** @internal */ export type ParcelCreateFromTemplateRequest$Outbound = { extra?: ParcelExtra$Outbound | undefined; metadata?: string | undefined; mass_unit: string; weight: string; template: ParcelTemplateEnumSet$Outbound; }; /** @internal */ export const ParcelCreateFromTemplateRequest$outboundSchema: z.ZodMiniType< ParcelCreateFromTemplateRequest$Outbound, ParcelCreateFromTemplateRequest > = z.pipe( z.object({ extra: z.optional(ParcelExtra$outboundSchema), metadata: z.optional(z.string()), massUnit: WeightUnitEnum$outboundSchema, weight: z.string(), template: ParcelTemplateEnumSet$outboundSchema, }), z.transform((v) => { return remap$(v, { massUnit: "mass_unit", }); }), ); export function parcelCreateFromTemplateRequestToJSON( parcelCreateFromTemplateRequest: ParcelCreateFromTemplateRequest, ): string { return JSON.stringify( ParcelCreateFromTemplateRequest$outboundSchema.parse( parcelCreateFromTemplateRequest, ), ); }