/**
 * Paypal Server SDKLib
 *
 * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ).
 */

import { lazy, object, optional, Schema } from '../schema';
import {
  PayPalWalletCustomerRequest,
  payPalWalletCustomerRequestSchema,
} from './payPalWalletCustomerRequest';
import {
  PayPalWalletVaultInstruction,
  payPalWalletVaultInstructionSchema,
} from './payPalWalletVaultInstruction';

/** Additional attributes associated with the use of this PayPal Wallet. */
export interface PayPalWalletAttributes {
  customer?: PayPalWalletCustomerRequest;
  vault?: PayPalWalletVaultInstruction;
}

export const payPalWalletAttributesSchema: Schema<PayPalWalletAttributes> = object(
  {
    customer: [
      'customer',
      optional(lazy(() => payPalWalletCustomerRequestSchema)),
    ],
    vault: ['vault', optional(lazy(() => payPalWalletVaultInstructionSchema))],
  }
);
