import {z} from 'zod' export type ShippingCarrier = {id?: string | undefined, version?: string | undefined, active?: boolean | undefined, cashOnDeliveryBankAccountId?: string | undefined, cashOnDeliveryCurrencyId?: string | undefined, createdDate?: number | undefined, declaredValueAmount?: unknown | undefined, declaredValueCurrencyId?: string | undefined, dhlGoGreenPlusService?: boolean | undefined, dhlPostalDeliveredDutyPaidService?: boolean | undefined, dhlPremiumInternationalService?: boolean | undefined, ecommerceShippingCarrier?: ('AUSTRIAN_POST' | 'CARGO_INTERNATIONAL' | 'DACHSER' | 'DB_SCHENKER' | 'DEUTSCHE_POST' | 'DHL' | 'DHL_EXPRESS' | 'DPD' | 'FEDEX' | 'GLS' | 'GO' | 'HERMES' | 'ILOXX' | 'KUEHNE_NAGEL' | 'OTHER' | 'PARCEL_ONE' | 'POSTE_ITALIANE' | 'TNT' | 'UPS') | undefined, height?: number | undefined, internalShippingCarrier?: ('ANGEL_DE' | 'AUSTRIAN_POST_EMS' | 'AUSTRIAN_POST_PLUS_INTERNATIONAL' | 'AUSTRIAN_POST_PREMIUM' | 'AUSTRIAN_POST_PREMIUM_SELECT' | 'AUSTRIAN_POST_RETURNS' | 'AUSTRIAN_POST_STANDARD' | 'CARGO_INTERNATIONAL_EXPRESS' | 'CARGO_INTERNATIONAL_STANDARD' | 'DEUTSCHE_POST_STANDARD' | 'DHL_1_MAN_HANDLING_RETURN' | 'DHL_2_MAN_HANDLING_RETURN' | 'DHL_COMPLETE_RETURN_PARCEL_CONNECT' | 'DHL_DE_ECOMMERCE_RETURN' | 'DHL_DE_RETOURE' | 'DHL_EUROPAKET' | 'DHL_EUROPAKET_EV' | 'DHL_EXPRESS_ECONOMY_SELECT' | 'DHL_EXPRESS_ONE_DAY' | 'DHL_EXPRESS_ONE_DAY_EARLY' | 'DHL_KLEINPAKET' | 'DHL_KLEINPAKET_EV' | 'DHL_PAKET_EV' | 'DHL_PAKET_INTERNATIONAL_EV' | 'DHL_RETURNS' | 'DHL_RETURNS_EV' | 'DHL_STANDARD' | 'DHL_WARENPOST' | 'DHL_WARENPOST_INTERNATIONAL_EV' | 'DPD_AT_RETURN_RETURN' | 'DPD_CLASSIC_RETURN' | 'DPD_EXPRESS_ONE_DAY' | 'DPD_EXPRESS_ONE_DAY_EARLY' | 'DPD_LOCAL_RETURN' | 'DPD_RETURN' | 'DPD_RETURNS' | 'DPD_STANDARD' | 'FEDEX_DOMESTIC_RETURN' | 'FEDEX_EUROPE_RETURN' | 'FEDEX_EXPRESS_ONE_DAY_EARLY' | 'FEDEX_INTERNATIONALCONNECT_RETURNS' | 'FEDEX_INTERNATIONAL_ECONOMY' | 'FEDEX_INTERNATIONAL_ECONOMY_RETURNS' | 'FEDEX_INTERNATIONAL_PRIORITY' | 'FEDEX_INTERNATIONAL_PRIORITY_RETURNS' | 'FEDEX_PRIORITY_RETURNS' | 'FEDEX_STANDARD' | 'FEDEX_STANDARD_RETURNS' | 'GLS_DE_BUSINESS_PARCEL_RETURN' | 'GLS_DE_EUROBUSINESS_RETURN' | 'GLS_ES_BUSINESSSMALLPARCEL_RETURN' | 'GLS_EU_RETURN' | 'GLS_EXPRESS_ONE_DAY' | 'GLS_PICK_AND_SHIP' | 'GLS_RETURNS' | 'GLS_STANDARD' | 'GO_ONE_DAY' | 'HERMES_DE_RETURN' | 'HERMES_RETURNS' | 'HERMES_STANDARD' | 'ILOXX_STANDARD' | 'PARCEL_ONE' | 'POSTNL_PAKJEGEMAK' | 'POSTNL_PAKJEGEMAK_AGECHECK_18' | 'POSTNL_SMALL_HOME_ADDRESS_ONLY_SIGNATURE' | 'POSTNL_SMALL_SIGNATURE' | 'POSTNL_STANDARD_HOME_ADDRESS_ONLY_SIGNATURE' | 'POSTNL_STANDARD_HOME_ADDRESS_ONLY_SIGNATURE_EVE' | 'POSTNL_STANDARD_SIGNATURE' | 'SENDCLOUD_LETTERRETURN' | 'TNT_ONE_DAY' | 'TNT_ONE_DAY_EARLY' | 'UPS_EXPEDITED' | 'UPS_EXPRESS_1200' | 'UPS_EXPRESS_ONE_DAY' | 'UPS_EXPRESS_ONE_DAY_EARLY' | 'UPS_EXPRESS_SAVER_RETURN' | 'UPS_RETURNS' | 'UPS_STANDARD' | 'UPS_STANDARD_RETURN') | undefined, lastModifiedDate?: number | undefined, length?: number | undefined, name: string, packagingWeight?: unknown | undefined, positionNumber?: number | undefined, saturdayDelivery?: boolean | undefined, sendcloudContractId?: string | undefined, sendcloudContractName?: string | undefined, shippingCarrierAddition?: string | undefined, shippingLabelsCount?: number | undefined, shippingServiceProviderType: 'DHL' | 'SENDCLOUD' | 'SHIPCLOUD' | 'STANDARD', trackingUrl?: string | undefined, width?: number | undefined}; export type CreateApiShippingCarrierArgs = {dryRun?: boolean | undefined, body: ShippingCarrier}; export type CreateApiShippingCarrierOptions = {baseUrl: string, APIToken?: string | undefined, fetch?: typeof fetch | undefined}; export const shippingCarrier = z.object({id: z.string().optional(), version: z.string().optional(), active: z.boolean().optional(), cashOnDeliveryBankAccountId: z.string().optional(), cashOnDeliveryCurrencyId: z.string().optional(), createdDate: z.number().int().optional(), declaredValueAmount: z.string().optional(), declaredValueCurrencyId: z.string().optional(), dhlGoGreenPlusService: z.boolean().optional(), dhlPostalDeliveredDutyPaidService: z.boolean().optional(), dhlPremiumInternationalService: z.boolean().optional(), ecommerceShippingCarrier: z.enum(["AUSTRIAN_POST", "CARGO_INTERNATIONAL", "DACHSER", "DB_SCHENKER", "DEUTSCHE_POST", "DHL", "DHL_EXPRESS", "DPD", "FEDEX", "GLS", "GO", "HERMES", "ILOXX", "KUEHNE_NAGEL", "OTHER", "PARCEL_ONE", "POSTE_ITALIANE", "TNT", "UPS"]).optional(), height: z.number().int().optional(), internalShippingCarrier: z.enum(["ANGEL_DE", "AUSTRIAN_POST_EMS", "AUSTRIAN_POST_PLUS_INTERNATIONAL", "AUSTRIAN_POST_PREMIUM", "AUSTRIAN_POST_PREMIUM_SELECT", "AUSTRIAN_POST_RETURNS", "AUSTRIAN_POST_STANDARD", "CARGO_INTERNATIONAL_EXPRESS", "CARGO_INTERNATIONAL_STANDARD", "DEUTSCHE_POST_STANDARD", "DHL_1_MAN_HANDLING_RETURN", "DHL_2_MAN_HANDLING_RETURN", "DHL_COMPLETE_RETURN_PARCEL_CONNECT", "DHL_DE_ECOMMERCE_RETURN", "DHL_DE_RETOURE", "DHL_EUROPAKET", "DHL_EUROPAKET_EV", "DHL_EXPRESS_ECONOMY_SELECT", "DHL_EXPRESS_ONE_DAY", "DHL_EXPRESS_ONE_DAY_EARLY", "DHL_KLEINPAKET", "DHL_KLEINPAKET_EV", "DHL_PAKET_EV", "DHL_PAKET_INTERNATIONAL_EV", "DHL_RETURNS", "DHL_RETURNS_EV", "DHL_STANDARD", "DHL_WARENPOST", "DHL_WARENPOST_INTERNATIONAL_EV", "DPD_AT_RETURN_RETURN", "DPD_CLASSIC_RETURN", "DPD_EXPRESS_ONE_DAY", "DPD_EXPRESS_ONE_DAY_EARLY", "DPD_LOCAL_RETURN", "DPD_RETURN", "DPD_RETURNS", "DPD_STANDARD", "FEDEX_DOMESTIC_RETURN", "FEDEX_EUROPE_RETURN", "FEDEX_EXPRESS_ONE_DAY_EARLY", "FEDEX_INTERNATIONALCONNECT_RETURNS", "FEDEX_INTERNATIONAL_ECONOMY", "FEDEX_INTERNATIONAL_ECONOMY_RETURNS", "FEDEX_INTERNATIONAL_PRIORITY", "FEDEX_INTERNATIONAL_PRIORITY_RETURNS", "FEDEX_PRIORITY_RETURNS", "FEDEX_STANDARD", "FEDEX_STANDARD_RETURNS", "GLS_DE_BUSINESS_PARCEL_RETURN", "GLS_DE_EUROBUSINESS_RETURN", "GLS_ES_BUSINESSSMALLPARCEL_RETURN", "GLS_EU_RETURN", "GLS_EXPRESS_ONE_DAY", "GLS_PICK_AND_SHIP", "GLS_RETURNS", "GLS_STANDARD", "GO_ONE_DAY", "HERMES_DE_RETURN", "HERMES_RETURNS", "HERMES_STANDARD", "ILOXX_STANDARD", "PARCEL_ONE", "POSTNL_PAKJEGEMAK", "POSTNL_PAKJEGEMAK_AGECHECK_18", "POSTNL_SMALL_HOME_ADDRESS_ONLY_SIGNATURE", "POSTNL_SMALL_SIGNATURE", "POSTNL_STANDARD_HOME_ADDRESS_ONLY_SIGNATURE", "POSTNL_STANDARD_HOME_ADDRESS_ONLY_SIGNATURE_EVE", "POSTNL_STANDARD_SIGNATURE", "SENDCLOUD_LETTERRETURN", "TNT_ONE_DAY", "TNT_ONE_DAY_EARLY", "UPS_EXPEDITED", "UPS_EXPRESS_1200", "UPS_EXPRESS_ONE_DAY", "UPS_EXPRESS_ONE_DAY_EARLY", "UPS_EXPRESS_SAVER_RETURN", "UPS_RETURNS", "UPS_STANDARD", "UPS_STANDARD_RETURN"]).optional(), lastModifiedDate: z.number().int().optional(), length: z.number().int().optional(), name: z.string(), packagingWeight: z.string().optional(), positionNumber: z.number().int().optional(), saturdayDelivery: z.boolean().optional(), sendcloudContractId: z.string().optional(), sendcloudContractName: z.string().optional(), shippingCarrierAddition: z.string().optional(), shippingLabelsCount: z.number().int().optional(), shippingServiceProviderType: z.enum(["DHL", "SENDCLOUD", "SHIPCLOUD", "STANDARD"]), trackingUrl: z.string().optional(), width: z.number().int().optional()}); export const validateResponse = async ( schema: { readonly '~standard': { readonly validate: (value: unknown) => ({ readonly value: Output; readonly issues?: undefined } | { readonly issues: ReadonlyArray<{ readonly message: string; readonly path?: ReadonlyArray | undefined }> }) | Promise<{ readonly value: Output; readonly issues?: undefined } | { readonly issues: ReadonlyArray<{ readonly message: string; readonly path?: ReadonlyArray | undefined }> }> } }, value: unknown ): Promise => { const result = await schema['~standard'].validate(value) if (result.issues !== undefined) { const detail = result.issues .map(({ message, path }) => path?.length ? `${path.map((segment) => String(typeof segment === 'object' ? segment.key : segment)).join('.')}: ${message}` : message ) .join('; ') throw new Error(`Response does not match the schema: ${detail}`, { cause: { issues: result.issues } }) } return result.value }; /** * create a shippingCarrier * * POST /shippingCarrier */ export const createApiShippingCarrier = async (args: CreateApiShippingCarrierArgs, options: CreateApiShippingCarrierOptions) => { const {baseUrl, fetch: fetchFn = fetch, APIToken} = options ?? {} const query = new URLSearchParams() const headers = new Headers() headers.set('content-type', "application/json") headers.set('accept', "application/json") if (args.dryRun != null) query.append("dryRun", String(args.dryRun)) if (APIToken !== undefined) headers.set("AuthenticationToken", APIToken) const url = `${baseUrl.replace(/\/+$/, '')}/shippingCarrier${query.size > 0 ? `?${query}` : ''}` const res = await fetchFn(url, {method: "POST", headers, body: JSON.stringify(args.body)}) if (!res.ok) throw new Error(`Request failed with status ${res.status}`, {cause: {status: res.status, body: await res.text()}}) return validateResponse(shippingCarrier, await res.json()) };