/* * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ import * as z from "zod/v3"; import { safeParse } from "../../lib/schemas.js"; import { Result as SafeParseResult } from "../../types/fp.js"; import { SDKValidationError } from "../errors/sdkvalidationerror.js"; import { AmountUpdate, AmountUpdate$inboundSchema, AmountUpdate$Outbound, AmountUpdate$outboundSchema, } from "./amountupdate.js"; import { CreatePaymentLinkLineItemsUpdate, CreatePaymentLinkLineItemsUpdate$inboundSchema, CreatePaymentLinkLineItemsUpdate$Outbound, CreatePaymentLinkLineItemsUpdate$outboundSchema, } from "./createpaymentlinklineitemsupdate.js"; import { PaymentLinkCustomerOptions, PaymentLinkCustomerOptions$inboundSchema, PaymentLinkCustomerOptions$Outbound, PaymentLinkCustomerOptions$outboundSchema, } from "./paymentlinkcustomeroptions.js"; import { PaymentLinkDisplayOptionsUpdate, PaymentLinkDisplayOptionsUpdate$inboundSchema, PaymentLinkDisplayOptionsUpdate$Outbound, PaymentLinkDisplayOptionsUpdate$outboundSchema, } from "./paymentlinkdisplayoptionsupdate.js"; import { PaymentLinkPaymentDetailsUpdate, PaymentLinkPaymentDetailsUpdate$inboundSchema, PaymentLinkPaymentDetailsUpdate$Outbound, PaymentLinkPaymentDetailsUpdate$outboundSchema, } from "./paymentlinkpaymentdetailsupdate.js"; import { PaymentLinkPayoutDetailsUpdate, PaymentLinkPayoutDetailsUpdate$inboundSchema, PaymentLinkPayoutDetailsUpdate$Outbound, PaymentLinkPayoutDetailsUpdate$outboundSchema, } from "./paymentlinkpayoutdetailsupdate.js"; export type UpdatePaymentLink = { amount?: AmountUpdate | undefined; salesTaxAmount?: AmountUpdate | undefined; expiresOn?: Date | null | undefined; /** * Customizable display options for a payment link. */ display?: PaymentLinkDisplayOptionsUpdate | undefined; customer?: PaymentLinkCustomerOptions | undefined; /** * Options for payment links used to collect payment. */ payment?: PaymentLinkPaymentDetailsUpdate | undefined; payout?: PaymentLinkPayoutDetailsUpdate | undefined; /** * An optional collection of line items for a payment link. * * @remarks * When line items are provided, their total plus sales tax must equal the payment link amount. */ lineItems?: CreatePaymentLinkLineItemsUpdate | undefined; }; /** @internal */ export const UpdatePaymentLink$inboundSchema: z.ZodType< UpdatePaymentLink, z.ZodTypeDef, unknown > = z.object({ amount: AmountUpdate$inboundSchema.optional(), salesTaxAmount: AmountUpdate$inboundSchema.optional(), expiresOn: z.nullable( z.string().datetime({ offset: true }).transform(v => new Date(v)), ).optional(), display: PaymentLinkDisplayOptionsUpdate$inboundSchema.optional(), customer: PaymentLinkCustomerOptions$inboundSchema.optional(), payment: PaymentLinkPaymentDetailsUpdate$inboundSchema.optional(), payout: PaymentLinkPayoutDetailsUpdate$inboundSchema.optional(), lineItems: CreatePaymentLinkLineItemsUpdate$inboundSchema.optional(), }); /** @internal */ export type UpdatePaymentLink$Outbound = { amount?: AmountUpdate$Outbound | undefined; salesTaxAmount?: AmountUpdate$Outbound | undefined; expiresOn?: string | null | undefined; display?: PaymentLinkDisplayOptionsUpdate$Outbound | undefined; customer?: PaymentLinkCustomerOptions$Outbound | undefined; payment?: PaymentLinkPaymentDetailsUpdate$Outbound | undefined; payout?: PaymentLinkPayoutDetailsUpdate$Outbound | undefined; lineItems?: CreatePaymentLinkLineItemsUpdate$Outbound | undefined; }; /** @internal */ export const UpdatePaymentLink$outboundSchema: z.ZodType< UpdatePaymentLink$Outbound, z.ZodTypeDef, UpdatePaymentLink > = z.object({ amount: AmountUpdate$outboundSchema.optional(), salesTaxAmount: AmountUpdate$outboundSchema.optional(), expiresOn: z.nullable(z.date().transform(v => v.toISOString())).optional(), display: PaymentLinkDisplayOptionsUpdate$outboundSchema.optional(), customer: PaymentLinkCustomerOptions$outboundSchema.optional(), payment: PaymentLinkPaymentDetailsUpdate$outboundSchema.optional(), payout: PaymentLinkPayoutDetailsUpdate$outboundSchema.optional(), lineItems: CreatePaymentLinkLineItemsUpdate$outboundSchema.optional(), }); export function updatePaymentLinkToJSON( updatePaymentLink: UpdatePaymentLink, ): string { return JSON.stringify( UpdatePaymentLink$outboundSchema.parse(updatePaymentLink), ); } export function updatePaymentLinkFromJSON( jsonString: string, ): SafeParseResult { return safeParse( jsonString, (x) => UpdatePaymentLink$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'UpdatePaymentLink' from JSON`, ); }