/* * 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 { SubscriptionStatus, SubscriptionStatus$outboundSchema, } from "./subscription-status.js"; export type UpdateSubscriptionRequest = { cancelAt?: Date | undefined; cancelAtPeriodEnd?: boolean | undefined; /** * ParentSubscriptionID sets or clears the parent subscription. Omit to leave unchanged; send "" to clear. */ parentSubscriptionId?: string | undefined; status?: SubscriptionStatus | undefined; }; /** @internal */ export type UpdateSubscriptionRequest$Outbound = { cancel_at?: string | undefined; cancel_at_period_end?: boolean | undefined; parent_subscription_id?: string | undefined; status?: string | undefined; }; /** @internal */ export const UpdateSubscriptionRequest$outboundSchema: z.ZodMiniType< UpdateSubscriptionRequest$Outbound, UpdateSubscriptionRequest > = z.pipe( z.object({ cancelAt: z.optional(z.pipe(z.date(), z.transform(v => v.toISOString()))), cancelAtPeriodEnd: z.optional(z.boolean()), parentSubscriptionId: z.optional(z.string()), status: z.optional(SubscriptionStatus$outboundSchema), }), z.transform((v) => { return remap$(v, { cancelAt: "cancel_at", cancelAtPeriodEnd: "cancel_at_period_end", parentSubscriptionId: "parent_subscription_id", }); }), ); export function updateSubscriptionRequestToJSON( updateSubscriptionRequest: UpdateSubscriptionRequest, ): string { return JSON.stringify( UpdateSubscriptionRequest$outboundSchema.parse(updateSubscriptionRequest), ); }