/* * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ import * as z from "zod/v3"; import { remap as remap$ } from "../../lib/primitives.js"; import { safeParse } from "../../lib/schemas.js"; import { Result as SafeParseResult } from "../../types/fp.js"; import { SDKValidationError } from "../errors/sdkvalidationerror.js"; import { GooglePayPaymentOptionContext, GooglePayPaymentOptionContext$inboundSchema, } from "./googlepaypaymentoptioncontext.js"; import { Mode, Mode$inboundSchema } from "./mode.js"; import { PaymentOptionContext, PaymentOptionContext$inboundSchema, } from "./paymentoptioncontext.js"; import { WalletPaymentOptionContext, WalletPaymentOptionContext$inboundSchema, } from "./walletpaymentoptioncontext.js"; export type PaymentOptionContextContext = | GooglePayPaymentOptionContext | WalletPaymentOptionContext | PaymentOptionContext; export type PaymentOption = { type: "payment-option"; method: string; iconUrl?: string | null | undefined; mode: Mode; label?: string | null | undefined; canStorePaymentMethod: boolean; canDelayCapture: boolean; context?: | GooglePayPaymentOptionContext | WalletPaymentOptionContext | PaymentOptionContext | null | undefined; }; /** @internal */ export const PaymentOptionContextContext$inboundSchema: z.ZodType< PaymentOptionContextContext, z.ZodTypeDef, unknown > = z.union([ GooglePayPaymentOptionContext$inboundSchema, WalletPaymentOptionContext$inboundSchema, PaymentOptionContext$inboundSchema, ]); export function paymentOptionContextContextFromJSON( jsonString: string, ): SafeParseResult { return safeParse( jsonString, (x) => PaymentOptionContextContext$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'PaymentOptionContextContext' from JSON`, ); } /** @internal */ export const PaymentOption$inboundSchema: z.ZodType< PaymentOption, z.ZodTypeDef, unknown > = z.object({ type: z.literal("payment-option").default("payment-option"), method: z.string(), icon_url: z.nullable(z.string()).optional(), mode: Mode$inboundSchema, label: z.nullable(z.string()).optional(), can_store_payment_method: z.boolean(), can_delay_capture: z.boolean(), context: z.nullable( z.union([ GooglePayPaymentOptionContext$inboundSchema, WalletPaymentOptionContext$inboundSchema, PaymentOptionContext$inboundSchema, ]), ).optional(), }).transform((v) => { return remap$(v, { "icon_url": "iconUrl", "can_store_payment_method": "canStorePaymentMethod", "can_delay_capture": "canDelayCapture", }); }); export function paymentOptionFromJSON( jsonString: string, ): SafeParseResult { return safeParse( jsonString, (x) => PaymentOption$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'PaymentOption' from JSON`, ); }