/** * PayPal Server SDKLib * * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). */ import { lazy, object, optional, Schema } from '../schema.js'; import { BankRequest, bankRequestSchema } from './bankRequest.js'; import { SetupTokenRequestCard, setupTokenRequestCardSchema, } from './setupTokenRequestCard.js'; import { VaultApplePayRequest, vaultApplePayRequestSchema, } from './vaultApplePayRequest.js'; import { VaultPaypalWalletRequest, vaultPaypalWalletRequestSchema, } from './vaultPaypalWalletRequest.js'; import { VaultTokenRequest, vaultTokenRequestSchema, } from './vaultTokenRequest.js'; import { VaultVenmoRequest, vaultVenmoRequestSchema, } from './vaultVenmoRequest.js'; /** The payment method to vault with the instrument details. */ export interface SetupTokenRequestPaymentSource { /** A Resource representing a request to vault a Card. */ card?: SetupTokenRequestCard; /** A resource representing a request to vault PayPal Wallet. */ paypal?: VaultPaypalWalletRequest; /** A resource representing a request to vault Venmo. */ venmo?: VaultVenmoRequest; /** A resource representing a request to vault Apple Pay. */ applePay?: VaultApplePayRequest; /** The Tokenized Payment Source representing a Request to Vault a Token. */ token?: VaultTokenRequest; /** A Resource representing a request to vault a Bank used for ACH Debit. */ bank?: BankRequest; } export const setupTokenRequestPaymentSourceSchema: Schema = lazy( () => object({ card: ['card', optional(setupTokenRequestCardSchema)], paypal: ['paypal', optional(vaultPaypalWalletRequestSchema)], venmo: ['venmo', optional(vaultVenmoRequestSchema)], applePay: ['apple_pay', optional(vaultApplePayRequestSchema)], token: ['token', optional(vaultTokenRequestSchema)], bank: ['bank', optional(bankRequestSchema)], }) );