/**
 * Adyen Checkout API
 * Adyen Checkout API provides a simple and flexible way to initiate and authorise online payments. You can use the same integration for payments made with cards (including 3D Secure), mobile wallets, and local payment methods (for example, iDEAL and Sofort).  This API reference provides information on available endpoints and how to interact with them. To learn more about the API, visit [Checkout documentation](https://docs.adyen.com/online-payments).  ## Authentication Each request to the Checkout API must be signed with an API key. For this, obtain an API Key from your Customer Area, as described in [How to get the API key](https://docs.adyen.com/development-resources/api-credentials#generate-api-key). Then set this key to the `X-API-Key` header value, for example:  ``` curl -H \"Content-Type: application/json\" \\ -H \"X-API-Key: Your_Checkout_API_key\" \\ ... ``` Note that when going live, you need to generate a new API Key to access the [live endpoints](https://docs.adyen.com/development-resources/live-endpoints).  ## Versioning Checkout API supports versioning of its endpoints through a version suffix in the endpoint URL. This suffix has the following format: \"vXX\", where XX is the version number.  For example: ``` https://checkout-test.adyen.com/v68/payments ```
 *
 * The version of the OpenAPI document: 68
 * Contact: developer-experience@adyen.com
 *
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Do not edit the class manually.
 */ import { Amount } from './amount' ; import { CheckoutOrder } from './checkoutOrder' ; export class PaymentMethodsRequest { /**
    * This field contains additional data, which may be required for a particular payment request.  The `additionalData` object consists of entries, each of which includes the key and value.
    */ 'additionalData' ? : { [ key ] : string ; } ; /**
    * List of payment methods to be presented to the shopper. To refer to payment methods, use their `paymentMethod.type` from [Payment methods overview](https://docs.adyen.com/payment-methods).  Example: `\"allowedPaymentMethods\":[\"ideal\",\"giropay\"]`
    */ 'allowedPaymentMethods' ? : Array < string > ; 'amount' ? : Amount ; /**
    * List of payment methods to be hidden from the shopper. To refer to payment methods, use their `paymentMethod.type` from [Payment methods overview](https://docs.adyen.com/payment-methods).  Example: `\"blockedPaymentMethods\":[\"ideal\",\"giropay\"]`
    */ 'blockedPaymentMethods' ? : Array < string > ; /**
    * The platform where a payment transaction takes place. This field can be used for filtering out payment methods that are only available on specific platforms. Possible values: * iOS * Android * Web
    */ 'channel' ? : PaymentMethodsRequest . ChannelEnum ; /**
    * The shopper\'s country code.
    */ 'countryCode' ? : string ; /**
    * The merchant account identifier, with which you want to process the transaction.
    */ 'merchantAccount' : string ; 'order' ? : CheckoutOrder ; /**
    * The combination of a language code and a country code to specify the language to be used in the payment.
    */ 'shopperLocale' ? : string ; /**
    * Required for recurring payments.  Your reference to uniquely identify this shopper, for example user ID or account ID. Minimum length: 3 characters. > Your reference must not include personally identifiable information (PII), for example name or email address.
    */ 'shopperReference' ? : string ; /**
    * Boolean value indicating whether the card payment method should be split into separate debit and credit options.
    */ 'splitCardFundingSources' ? : boolean ; /**
    * The ecommerce or point-of-sale store that is processing the payment. Used in [partner arrangement integrations](https://docs.adyen.com/platforms/platforms-for-partners#route-payments) for Adyen for Platforms.
    */ 'store' ? : string ; static discriminator : string | undefined = undefined ; static attributeTypeMap : Array < { name : string ; baseName : string ; type : string ; } > = [ { "name" : "additionalData" , "baseName" : "additionalData" , "type" : "{ [key: string]: string; }" } , { "name" : "allowedPaymentMethods" , "baseName" : "allowedPaymentMethods" , "type" : "Array<string>" } , { "name" : "amount" , "baseName" : "amount" , "type" : "Amount" } , { "name" : "blockedPaymentMethods" , "baseName" : "blockedPaymentMethods" , "type" : "Array<string>" } , { "name" : "channel" , "baseName" : "channel" , "type" : "PaymentMethodsRequest.ChannelEnum" } , { "name" : "countryCode" , "baseName" : "countryCode" , "type" : "string" } , { "name" : "merchantAccount" , "baseName" : "merchantAccount" , "type" : "string" } , { "name" : "order" , "baseName" : "order" , "type" : "CheckoutOrder" } , { "name" : "shopperLocale" , "baseName" : "shopperLocale" , "type" : "string" } , { "name" : "shopperReference" , "baseName" : "shopperReference" , "type" : "string" } , { "name" : "splitCardFundingSources" , "baseName" : "splitCardFundingSources" , "type" : "boolean" } , { "name" : "store" , "baseName" : "store" , "type" : "string" } ] ; static getAttributeTypeMap ( ) { return PaymentMethodsRequest . attributeTypeMap ; } } export namespace PaymentMethodsRequest { export enum ChannelEnum { IOs = < any > 'iOS' , Android = < any > 'Android' , Web = < any > 'Web' } }