/* * 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 { safeParse } from "../../lib/schemas.js"; import { Result as SafeParseResult } from "../../types/fp.js"; import * as types from "../../types/primitives.js"; import { AddonCadence, AddonCadence$inboundSchema, AddonCadence$outboundSchema, } from "./addon-cadence.js"; import { ProrationBehavior, ProrationBehavior$inboundSchema, ProrationBehavior$outboundSchema, } from "./proration-behavior.js"; import { SDKValidationError } from "./sdk-validation-error.js"; export type AddAddonRef = { addonId?: string | undefined; associationId?: string | undefined; cadence?: AddonCadence | undefined; prorationBehavior?: ProrationBehavior | undefined; startDate?: Date | undefined; }; /** @internal */ export const AddAddonRef$inboundSchema: z.ZodMiniType = z .pipe( z.object({ addon_id: types.optional(types.string()), association_id: types.optional(types.string()), cadence: types.optional(AddonCadence$inboundSchema), proration_behavior: types.optional(ProrationBehavior$inboundSchema), start_date: types.optional(types.date()), }), z.transform((v) => { return remap$(v, { "addon_id": "addonId", "association_id": "associationId", "proration_behavior": "prorationBehavior", "start_date": "startDate", }); }), ); /** @internal */ export type AddAddonRef$Outbound = { addon_id?: string | undefined; association_id?: string | undefined; cadence?: string | undefined; proration_behavior?: string | undefined; start_date?: string | undefined; }; /** @internal */ export const AddAddonRef$outboundSchema: z.ZodMiniType< AddAddonRef$Outbound, AddAddonRef > = z.pipe( z.object({ addonId: z.optional(z.string()), associationId: z.optional(z.string()), cadence: z.optional(AddonCadence$outboundSchema), prorationBehavior: z.optional(ProrationBehavior$outboundSchema), startDate: z.optional(z.pipe(z.date(), z.transform(v => v.toISOString()))), }), z.transform((v) => { return remap$(v, { addonId: "addon_id", associationId: "association_id", prorationBehavior: "proration_behavior", startDate: "start_date", }); }), ); export function addAddonRefToJSON(addAddonRef: AddAddonRef): string { return JSON.stringify(AddAddonRef$outboundSchema.parse(addAddonRef)); } export function addAddonRefFromJSON( jsonString: string, ): SafeParseResult { return safeParse( jsonString, (x) => AddAddonRef$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'AddAddonRef' from JSON`, ); }