/* * 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"; /** * Address represents the address as retrieved from the database */ export type AddressCreateRequest = { /** * **required for purchase**
* * @remarks * First and Last Name of the addressee */ name?: string | undefined; /** * Company Name */ company?: string | undefined; /** * **required for purchase**
* * @remarks * First street line. Usually street number and street name (except for DHL Germany, see street_no). */ street1?: string | undefined; /** * Second street line. */ street2?: string | undefined; /** * Third street line. * * @remarks * Only accepted for USPS international shipments, UPS domestic and UPS international shipments. */ street3?: string | undefined; /** * Street number of the addressed building. * * @remarks * This field can be included in street1 for all carriers except for DHL Germany. */ streetNo?: string | undefined; /** * **required for purchase**
* * @remarks * Name of a city. When creating a Quote Address, sending a city is optional but will yield more accurate Rates. * Please bear in mind that city names may be ambiguous (there are 34 Springfields in the US). Pass in a state * or a ZIP code (see below), if known, it will yield more accurate results. */ city?: string | undefined; /** * **required for purchase for some countries**
* * @remarks * State/Province values are required for shipments from/to the US, AU, and CA. UPS requires province for some * countries (i.e Ireland). To receive more accurate quotes, passing this field is recommended. Most carriers * only accept two or three character state abbreviations. */ state?: string | undefined; /** * **required for purchase**
* * @remarks * Postal code of an Address. When creating a Quote Addresses, sending a ZIP is optional but will yield more * accurate Rates. */ zip?: string | undefined; /** * ISO 3166-1 alpha-2 country codes and country names can be used. For most consistent results, we recommend using country codes like `US` or `DE`. * * @remarks * If using country names, please ensure they are spelled correctly and in English. Country names are converted to country codes. * Refer to this guide for a list of country codes. * Sending a country is always required. */ country: string; /** * Addresses containing a phone number allow carriers to call the recipient when delivering the Parcel. This * * @remarks * increases the probability of delivery and helps to avoid accessorial charges after a Parcel has been shipped. */ phone?: string | undefined; /** * E-mail address of the contact person, RFC3696/5321-compliant. */ email?: string | undefined; isResidential?: boolean | undefined; /** * A string of up to 100 characters that can be filled with any additional information you want * * @remarks * to attach to the object. */ metadata?: string | undefined; /** * Set to true to validate Address object. */ validate?: boolean | undefined; }; /** @internal */ export type AddressCreateRequest$Outbound = { name?: string | undefined; company?: string | undefined; street1?: string | undefined; street2?: string | undefined; street3?: string | undefined; street_no?: string | undefined; city?: string | undefined; state?: string | undefined; zip?: string | undefined; country: string; phone?: string | undefined; email?: string | undefined; is_residential?: boolean | undefined; metadata?: string | undefined; validate?: boolean | undefined; }; /** @internal */ export const AddressCreateRequest$outboundSchema: z.ZodMiniType< AddressCreateRequest$Outbound, AddressCreateRequest > = z.pipe( z.object({ name: z.optional(z.string()), company: z.optional(z.string()), street1: z.optional(z.string()), street2: z.optional(z.string()), street3: z.optional(z.string()), streetNo: z.optional(z.string()), city: z.optional(z.string()), state: z.optional(z.string()), zip: z.optional(z.string()), country: z.string(), phone: z.optional(z.string()), email: z.optional(z.string()), isResidential: z.optional(z.boolean()), metadata: z.optional(z.string()), validate: z.optional(z.boolean()), }), z.transform((v) => { return remap$(v, { streetNo: "street_no", isResidential: "is_residential", }); }), ); export function addressCreateRequestToJSON( addressCreateRequest: AddressCreateRequest, ): string { return JSON.stringify( AddressCreateRequest$outboundSchema.parse(addressCreateRequest), ); }