{-# LANGUAGE MultiWayIf #-}
-- CHANGE WITH CAUTION: This is a generated code file generated by https://github.com/Haskell-OpenAPI-Code-Generator/Haskell-OpenAPI-Client-Code-Generator.
{-# LANGUAGE OverloadedStrings #-}

-- | Contains the types generated from the schema PaymentSource
module StripeAPI.Types.PaymentSource where

import qualified Control.Monad.Fail
import qualified Data.Aeson
import qualified Data.Aeson as Data.Aeson.Encoding.Internal
import qualified Data.Aeson as Data.Aeson.Types
import qualified Data.Aeson as Data.Aeson.Types.FromJSON
import qualified Data.Aeson as Data.Aeson.Types.Internal
import qualified Data.Aeson as Data.Aeson.Types.ToJSON
import qualified Data.ByteString.Char8
import qualified Data.ByteString.Char8 as Data.ByteString.Internal
import qualified Data.Functor
import qualified Data.Scientific
import qualified Data.Text
import qualified Data.Text.Internal
import qualified Data.Time.Calendar as Data.Time.Calendar.Days
import qualified Data.Time.LocalTime as Data.Time.LocalTime.Internal.ZonedTime
import qualified GHC.Base
import qualified GHC.Classes
import qualified GHC.Int
import qualified GHC.Show
import qualified GHC.Types
import qualified StripeAPI.Common
import StripeAPI.TypeAlias
import {-# SOURCE #-} StripeAPI.Types.Account
import {-# SOURCE #-} StripeAPI.Types.AccountBacsDebitPaymentsSettings
import {-# SOURCE #-} StripeAPI.Types.AccountBrandingSettings
import {-# SOURCE #-} StripeAPI.Types.AccountBusinessProfile
import {-# SOURCE #-} StripeAPI.Types.AccountCapabilities
import {-# SOURCE #-} StripeAPI.Types.AccountCardIssuingSettings
import {-# SOURCE #-} StripeAPI.Types.AccountCardPaymentsSettings
import {-# SOURCE #-} StripeAPI.Types.AccountController
import {-# SOURCE #-} StripeAPI.Types.AccountDashboardSettings
import {-# SOURCE #-} StripeAPI.Types.AccountPaymentsSettings
import {-# SOURCE #-} StripeAPI.Types.AccountPayoutSettings
import {-# SOURCE #-} StripeAPI.Types.AccountRequirements
import {-# SOURCE #-} StripeAPI.Types.AccountSepaDebitPaymentsSettings
import {-# SOURCE #-} StripeAPI.Types.AccountSettings
import {-# SOURCE #-} StripeAPI.Types.AccountTosAcceptance
import {-# SOURCE #-} StripeAPI.Types.Address
import {-# SOURCE #-} StripeAPI.Types.AlipayAccount
import {-# SOURCE #-} StripeAPI.Types.BankAccount
import {-# SOURCE #-} StripeAPI.Types.BitcoinReceiver
import {-# SOURCE #-} StripeAPI.Types.BitcoinTransaction
import {-# SOURCE #-} StripeAPI.Types.Card
import {-# SOURCE #-} StripeAPI.Types.Customer
import {-# SOURCE #-} StripeAPI.Types.DeletedCustomer
import {-# SOURCE #-} StripeAPI.Types.LegalEntityCompany
import {-# SOURCE #-} StripeAPI.Types.Person
import {-# SOURCE #-} StripeAPI.Types.Recipient
import {-# SOURCE #-} StripeAPI.Types.Source
import {-# SOURCE #-} StripeAPI.Types.SourceCodeVerificationFlow
import {-# SOURCE #-} StripeAPI.Types.SourceOrder
import {-# SOURCE #-} StripeAPI.Types.SourceOwner
import {-# SOURCE #-} StripeAPI.Types.SourceReceiverFlow
import {-# SOURCE #-} StripeAPI.Types.SourceRedirectFlow
import {-# SOURCE #-} StripeAPI.Types.SourceTypeAchCreditTransfer
import {-# SOURCE #-} StripeAPI.Types.SourceTypeAchDebit
import {-# SOURCE #-} StripeAPI.Types.SourceTypeAcssDebit
import {-# SOURCE #-} StripeAPI.Types.SourceTypeAlipay
import {-# SOURCE #-} StripeAPI.Types.SourceTypeAuBecsDebit
import {-# SOURCE #-} StripeAPI.Types.SourceTypeBancontact
import {-# SOURCE #-} StripeAPI.Types.SourceTypeCard
import {-# SOURCE #-} StripeAPI.Types.SourceTypeCardPresent
import {-# SOURCE #-} StripeAPI.Types.SourceTypeEps
import {-# SOURCE #-} StripeAPI.Types.SourceTypeGiropay
import {-# SOURCE #-} StripeAPI.Types.SourceTypeIdeal
import {-# SOURCE #-} StripeAPI.Types.SourceTypeKlarna
import {-# SOURCE #-} StripeAPI.Types.SourceTypeMultibanco
import {-# SOURCE #-} StripeAPI.Types.SourceTypeP24
import {-# SOURCE #-} StripeAPI.Types.SourceTypeSepaDebit
import {-# SOURCE #-} StripeAPI.Types.SourceTypeSofort
import {-# SOURCE #-} StripeAPI.Types.SourceTypeThreeDSecure
import {-# SOURCE #-} StripeAPI.Types.SourceTypeWechat
import qualified Prelude as GHC.Integer.Type
import qualified Prelude as GHC.Maybe

-- | Defines the object schema located at @components.schemas.payment_source.anyOf@ in the specification.
data PaymentSource = PaymentSource
  { -- | account: The ID of the account that the bank account is associated with.
    PaymentSource -> Maybe PaymentSourceAccount'Variants
paymentSourceAccount :: (GHC.Maybe.Maybe PaymentSourceAccount'Variants),
    -- | account_holder_name: The name of the person or business that owns the bank account.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PaymentSource -> Maybe Text
paymentSourceAccountHolderName :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | account_holder_type: The type of entity that holds the account. This can be either \`individual\` or \`company\`.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PaymentSource -> Maybe Text
paymentSourceAccountHolderType :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | ach_credit_transfer
    PaymentSource -> Maybe SourceTypeAchCreditTransfer
paymentSourceAchCreditTransfer :: (GHC.Maybe.Maybe SourceTypeAchCreditTransfer),
    -- | ach_debit
    PaymentSource -> Maybe SourceTypeAchDebit
paymentSourceAchDebit :: (GHC.Maybe.Maybe SourceTypeAchDebit),
    -- | acss_debit
    PaymentSource -> Maybe SourceTypeAcssDebit
paymentSourceAcssDebit :: (GHC.Maybe.Maybe SourceTypeAcssDebit),
    -- | active: True when this bitcoin receiver has received a non-zero amount of bitcoin.
    PaymentSource -> Maybe Bool
paymentSourceActive :: (GHC.Maybe.Maybe GHC.Types.Bool),
    -- | address_city: City\/District\/Suburb\/Town\/Village.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PaymentSource -> Maybe Text
paymentSourceAddressCity :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | address_country: Billing address country, if provided when creating card.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PaymentSource -> Maybe Text
paymentSourceAddressCountry :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | address_line1: Address line 1 (Street address\/PO Box\/Company name).
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PaymentSource -> Maybe Text
paymentSourceAddressLine1 :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | address_line1_check: If \`address_line1\` was provided, results of the check: \`pass\`, \`fail\`, \`unavailable\`, or \`unchecked\`.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PaymentSource -> Maybe Text
paymentSourceAddressLine1Check :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | address_line2: Address line 2 (Apartment\/Suite\/Unit\/Building).
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PaymentSource -> Maybe Text
paymentSourceAddressLine2 :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | address_state: State\/County\/Province\/Region.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PaymentSource -> Maybe Text
paymentSourceAddressState :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | address_zip: ZIP or postal code.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PaymentSource -> Maybe Text
paymentSourceAddressZip :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | address_zip_check: If \`address_zip\` was provided, results of the check: \`pass\`, \`fail\`, \`unavailable\`, or \`unchecked\`.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PaymentSource -> Maybe Text
paymentSourceAddressZipCheck :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | alipay
    PaymentSource -> Maybe SourceTypeAlipay
paymentSourceAlipay :: (GHC.Maybe.Maybe SourceTypeAlipay),
    -- | amount: The amount of \`currency\` that you are collecting as payment.
    PaymentSource -> Maybe Int
paymentSourceAmount :: (GHC.Maybe.Maybe GHC.Types.Int),
    -- | amount_received: The amount of \`currency\` to which \`bitcoin_amount_received\` has been converted.
    PaymentSource -> Maybe Int
paymentSourceAmountReceived :: (GHC.Maybe.Maybe GHC.Types.Int),
    -- | au_becs_debit
    PaymentSource -> Maybe SourceTypeAuBecsDebit
paymentSourceAuBecsDebit :: (GHC.Maybe.Maybe SourceTypeAuBecsDebit),
    -- | available_payout_methods: A set of available payout methods for this bank account. Only values from this set should be passed as the \`method\` when creating a payout.
    PaymentSource -> Maybe [PaymentSourceAvailablePayoutMethods']
paymentSourceAvailablePayoutMethods :: (GHC.Maybe.Maybe ([PaymentSourceAvailablePayoutMethods'])),
    -- | bancontact
    PaymentSource -> Maybe SourceTypeBancontact
paymentSourceBancontact :: (GHC.Maybe.Maybe SourceTypeBancontact),
    -- | bank_name: Name of the bank associated with the routing number (e.g., \`WELLS FARGO\`).
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PaymentSource -> Maybe Text
paymentSourceBankName :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | bitcoin_amount: The amount of bitcoin that the customer should send to fill the receiver. The \`bitcoin_amount\` is denominated in Satoshi: there are 10^8 Satoshi in one bitcoin.
    PaymentSource -> Maybe Int
paymentSourceBitcoinAmount :: (GHC.Maybe.Maybe GHC.Types.Int),
    -- | bitcoin_amount_received: The amount of bitcoin that has been sent by the customer to this receiver.
    PaymentSource -> Maybe Int
paymentSourceBitcoinAmountReceived :: (GHC.Maybe.Maybe GHC.Types.Int),
    -- | bitcoin_uri: This URI can be displayed to the customer as a clickable link (to activate their bitcoin client) or as a QR code (for mobile wallets).
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PaymentSource -> Maybe Text
paymentSourceBitcoinUri :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | brand: Card brand. Can be \`American Express\`, \`Diners Club\`, \`Discover\`, \`JCB\`, \`MasterCard\`, \`UnionPay\`, \`Visa\`, or \`Unknown\`.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PaymentSource -> Maybe Text
paymentSourceBrand :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | business_profile: Business information about the account.
    PaymentSource -> Maybe PaymentSourceBusinessProfile'
paymentSourceBusinessProfile :: (GHC.Maybe.Maybe PaymentSourceBusinessProfile'),
    -- | business_type: The business type.
    PaymentSource -> Maybe PaymentSourceBusinessType'
paymentSourceBusinessType :: (GHC.Maybe.Maybe PaymentSourceBusinessType'),
    -- | capabilities:
    PaymentSource -> Maybe AccountCapabilities
paymentSourceCapabilities :: (GHC.Maybe.Maybe AccountCapabilities),
    -- | card
    PaymentSource -> Maybe SourceTypeCard
paymentSourceCard :: (GHC.Maybe.Maybe SourceTypeCard),
    -- | card_present
    PaymentSource -> Maybe SourceTypeCardPresent
paymentSourceCardPresent :: (GHC.Maybe.Maybe SourceTypeCardPresent),
    -- | charges_enabled: Whether the account can create live charges.
    PaymentSource -> Maybe Bool
paymentSourceChargesEnabled :: (GHC.Maybe.Maybe GHC.Types.Bool),
    -- | client_secret: The client secret of the source. Used for client-side retrieval using a publishable key.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PaymentSource -> Maybe Text
paymentSourceClientSecret :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | code_verification:
    PaymentSource -> Maybe SourceCodeVerificationFlow
paymentSourceCodeVerification :: (GHC.Maybe.Maybe SourceCodeVerificationFlow),
    -- | company:
    PaymentSource -> Maybe LegalEntityCompany
paymentSourceCompany :: (GHC.Maybe.Maybe LegalEntityCompany),
    -- | controller:
    PaymentSource -> Maybe AccountController
paymentSourceController :: (GHC.Maybe.Maybe AccountController),
    -- | country: The account\'s country.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PaymentSource -> Maybe Text
paymentSourceCountry :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | created: Time at which the object was created. Measured in seconds since the Unix epoch.
    PaymentSource -> Maybe Int
paymentSourceCreated :: (GHC.Maybe.Maybe GHC.Types.Int),
    -- | currency: Three-letter [ISO code for the currency](https:\/\/stripe.com\/docs\/payouts) paid out to the bank account.
    PaymentSource -> Maybe Text
paymentSourceCurrency :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | customer: The ID of the customer associated with this Alipay Account.
    PaymentSource -> Maybe PaymentSourceCustomer'Variants
paymentSourceCustomer :: (GHC.Maybe.Maybe PaymentSourceCustomer'Variants),
    -- | cvc_check: If a CVC was provided, results of the check: \`pass\`, \`fail\`, \`unavailable\`, or \`unchecked\`. A result of unchecked indicates that CVC was provided but hasn\'t been checked yet. Checks are typically performed when attaching a card to a Customer object, or when creating a charge. For more details, see [Check if a card is valid without a charge](https:\/\/support.stripe.com\/questions\/check-if-a-card-is-valid-without-a-charge).
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PaymentSource -> Maybe Text
paymentSourceCvcCheck :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | default_currency: Three-letter ISO currency code representing the default currency for the account. This must be a currency that [Stripe supports in the account\'s country](https:\/\/stripe.com\/docs\/payouts).
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PaymentSource -> Maybe Text
paymentSourceDefaultCurrency :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | default_for_currency: Whether this bank account is the default external account for its currency.
    PaymentSource -> Maybe Bool
paymentSourceDefaultForCurrency :: (GHC.Maybe.Maybe GHC.Types.Bool),
    -- | description: An arbitrary string attached to the object. Often useful for displaying to users.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PaymentSource -> Maybe Text
paymentSourceDescription :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | details_submitted: Whether account details have been submitted. Standard accounts cannot receive payouts before this is true.
    PaymentSource -> Maybe Bool
paymentSourceDetailsSubmitted :: (GHC.Maybe.Maybe GHC.Types.Bool),
    -- | dynamic_last4: (For tokenized numbers only.) The last four digits of the device account number.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PaymentSource -> Maybe Text
paymentSourceDynamicLast4 :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | email: An email address associated with the account. You can treat this as metadata: it is not used for authentication or messaging account holders.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PaymentSource -> Maybe Text
paymentSourceEmail :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | eps
    PaymentSource -> Maybe SourceTypeEps
paymentSourceEps :: (GHC.Maybe.Maybe SourceTypeEps),
    -- | exp_month: Two-digit number representing the card\'s expiration month.
    PaymentSource -> Maybe Int
paymentSourceExpMonth :: (GHC.Maybe.Maybe GHC.Types.Int),
    -- | exp_year: Four-digit number representing the card\'s expiration year.
    PaymentSource -> Maybe Int
paymentSourceExpYear :: (GHC.Maybe.Maybe GHC.Types.Int),
    -- | external_accounts: External accounts (bank accounts and debit cards) currently attached to this account
    PaymentSource -> Maybe PaymentSourceExternalAccounts'
paymentSourceExternalAccounts :: (GHC.Maybe.Maybe PaymentSourceExternalAccounts'),
    -- | filled: This flag is initially false and updates to true when the customer sends the \`bitcoin_amount\` to this receiver.
    PaymentSource -> Maybe Bool
paymentSourceFilled :: (GHC.Maybe.Maybe GHC.Types.Bool),
    -- | fingerprint: Uniquely identifies the account and will be the same across all Alipay account objects that are linked to the same Alipay account.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PaymentSource -> Maybe Text
paymentSourceFingerprint :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | flow: The authentication \`flow\` of the source. \`flow\` is one of \`redirect\`, \`receiver\`, \`code_verification\`, \`none\`.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PaymentSource -> Maybe Text
paymentSourceFlow :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | funding: Card funding type. Can be \`credit\`, \`debit\`, \`prepaid\`, or \`unknown\`.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PaymentSource -> Maybe Text
paymentSourceFunding :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | giropay
    PaymentSource -> Maybe SourceTypeGiropay
paymentSourceGiropay :: (GHC.Maybe.Maybe SourceTypeGiropay),
    -- | id: Unique identifier for the object.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PaymentSource -> Maybe Text
paymentSourceId :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | ideal
    PaymentSource -> Maybe SourceTypeIdeal
paymentSourceIdeal :: (GHC.Maybe.Maybe SourceTypeIdeal),
    -- | inbound_address: A bitcoin address that is specific to this receiver. The customer can send bitcoin to this address to fill the receiver.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PaymentSource -> Maybe Text
paymentSourceInboundAddress :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | individual: This is an object representing a person associated with a Stripe account.
    --
    -- A platform cannot access a Standard or Express account\'s persons after the account starts onboarding, such as after generating an account link for the account.
    -- See the [Standard onboarding](https:\/\/stripe.com\/docs\/connect\/standard-accounts) or [Express onboarding documentation](https:\/\/stripe.com\/docs\/connect\/express-accounts) for information about platform pre-filling and account onboarding steps.
    --
    -- Related guide: [Handling Identity Verification with the API](https:\/\/stripe.com\/docs\/connect\/identity-verification-api\#person-information).
    PaymentSource -> Maybe Person
paymentSourceIndividual :: (GHC.Maybe.Maybe Person),
    -- | klarna
    PaymentSource -> Maybe SourceTypeKlarna
paymentSourceKlarna :: (GHC.Maybe.Maybe SourceTypeKlarna),
    -- | last4: The last four digits of the bank account number.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PaymentSource -> Maybe Text
paymentSourceLast4 :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | livemode: Has the value \`true\` if the object exists in live mode or the value \`false\` if the object exists in test mode.
    PaymentSource -> Maybe Bool
paymentSourceLivemode :: (GHC.Maybe.Maybe GHC.Types.Bool),
    -- | metadata: Set of [key-value pairs](https:\/\/stripe.com\/docs\/api\/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
    PaymentSource -> Maybe Object
paymentSourceMetadata :: (GHC.Maybe.Maybe Data.Aeson.Types.Internal.Object),
    -- | multibanco
    PaymentSource -> Maybe SourceTypeMultibanco
paymentSourceMultibanco :: (GHC.Maybe.Maybe SourceTypeMultibanco),
    -- | name: Cardholder name.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PaymentSource -> Maybe Text
paymentSourceName :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | object: String representing the object\'s type. Objects of the same type share the same value.
    PaymentSource -> Maybe PaymentSourceObject'
paymentSourceObject :: (GHC.Maybe.Maybe PaymentSourceObject'),
    -- | owner: Information about the owner of the payment instrument that may be used or required by particular source types.
    PaymentSource -> Maybe PaymentSourceOwner'
paymentSourceOwner :: (GHC.Maybe.Maybe PaymentSourceOwner'),
    -- | p24
    PaymentSource -> Maybe SourceTypeP24
paymentSourceP24 :: (GHC.Maybe.Maybe SourceTypeP24),
    -- | payment: The ID of the payment created from the receiver, if any. Hidden when viewing the receiver with a publishable key.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PaymentSource -> Maybe Text
paymentSourcePayment :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | payment_amount: If the Alipay account object is not reusable, the exact amount that you can create a charge for.
    PaymentSource -> Maybe Int
paymentSourcePaymentAmount :: (GHC.Maybe.Maybe GHC.Types.Int),
    -- | payment_currency: If the Alipay account object is not reusable, the exact currency that you can create a charge for.
    PaymentSource -> Maybe Text
paymentSourcePaymentCurrency :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | payouts_enabled: Whether Stripe can send payouts to this account.
    PaymentSource -> Maybe Bool
paymentSourcePayoutsEnabled :: (GHC.Maybe.Maybe GHC.Types.Bool),
    -- | receiver:
    PaymentSource -> Maybe SourceReceiverFlow
paymentSourceReceiver :: (GHC.Maybe.Maybe SourceReceiverFlow),
    -- | recipient: The recipient that this card belongs to. This attribute will not be in the card object if the card belongs to a customer or account instead.
    PaymentSource -> Maybe PaymentSourceRecipient'Variants
paymentSourceRecipient :: (GHC.Maybe.Maybe PaymentSourceRecipient'Variants),
    -- | redirect:
    PaymentSource -> Maybe SourceRedirectFlow
paymentSourceRedirect :: (GHC.Maybe.Maybe SourceRedirectFlow),
    -- | refund_address: The refund address of this bitcoin receiver.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PaymentSource -> Maybe Text
paymentSourceRefundAddress :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | requirements:
    PaymentSource -> Maybe AccountRequirements
paymentSourceRequirements :: (GHC.Maybe.Maybe AccountRequirements),
    -- | reusable: True if you can create multiple payments using this account. If the account is reusable, then you can freely choose the amount of each payment.
    PaymentSource -> Maybe Bool
paymentSourceReusable :: (GHC.Maybe.Maybe GHC.Types.Bool),
    -- | routing_number: The routing transit number for the bank account.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PaymentSource -> Maybe Text
paymentSourceRoutingNumber :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | sepa_debit
    PaymentSource -> Maybe SourceTypeSepaDebit
paymentSourceSepaDebit :: (GHC.Maybe.Maybe SourceTypeSepaDebit),
    -- | settings: Options for customizing how the account functions within Stripe.
    PaymentSource -> Maybe PaymentSourceSettings'
paymentSourceSettings :: (GHC.Maybe.Maybe PaymentSourceSettings'),
    -- | sofort
    PaymentSource -> Maybe SourceTypeSofort
paymentSourceSofort :: (GHC.Maybe.Maybe SourceTypeSofort),
    -- | source_order:
    PaymentSource -> Maybe SourceOrder
paymentSourceSourceOrder :: (GHC.Maybe.Maybe SourceOrder),
    -- | statement_descriptor: Extra information about a source. This will appear on your customer\'s statement every time you charge the source.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PaymentSource -> Maybe Text
paymentSourceStatementDescriptor :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | status: For bank accounts, possible values are \`new\`, \`validated\`, \`verified\`, \`verification_failed\`, or \`errored\`. A bank account that hasn\'t had any activity or validation performed is \`new\`. If Stripe can determine that the bank account exists, its status will be \`validated\`. Note that there often isn’t enough information to know (e.g., for smaller credit unions), and the validation is not always run. If customer bank account verification has succeeded, the bank account status will be \`verified\`. If the verification failed for any reason, such as microdeposit failure, the status will be \`verification_failed\`. If a transfer sent to this bank account fails, we\'ll set the status to \`errored\` and will not continue to send transfers until the bank details are updated.
    --
    -- For external accounts, possible values are \`new\` and \`errored\`. Validations aren\'t run against external accounts because they\'re only used for payouts. This means the other statuses don\'t apply. If a transfer fails, the status is set to \`errored\` and transfers are stopped until account details are updated.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PaymentSource -> Maybe Text
paymentSourceStatus :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | three_d_secure
    PaymentSource -> Maybe SourceTypeThreeDSecure
paymentSourceThreeDSecure :: (GHC.Maybe.Maybe SourceTypeThreeDSecure),
    -- | tokenization_method: If the card number is tokenized, this is the method that was used. Can be \`android_pay\` (includes Google Pay), \`apple_pay\`, \`masterpass\`, \`visa_checkout\`, or null.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PaymentSource -> Maybe Text
paymentSourceTokenizationMethod :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | tos_acceptance:
    PaymentSource -> Maybe AccountTosAcceptance
paymentSourceTosAcceptance :: (GHC.Maybe.Maybe AccountTosAcceptance),
    -- | transactions: A list with one entry for each time that the customer sent bitcoin to the receiver. Hidden when viewing the receiver with a publishable key.
    PaymentSource -> Maybe PaymentSourceTransactions'
paymentSourceTransactions :: (GHC.Maybe.Maybe PaymentSourceTransactions'),
    -- | type: The Stripe account type. Can be \`standard\`, \`express\`, or \`custom\`.
    PaymentSource -> Maybe PaymentSourceType'
paymentSourceType :: (GHC.Maybe.Maybe PaymentSourceType'),
    -- | uncaptured_funds: This receiver contains uncaptured funds that can be used for a payment or refunded.
    PaymentSource -> Maybe Bool
paymentSourceUncapturedFunds :: (GHC.Maybe.Maybe GHC.Types.Bool),
    -- | usage: Either \`reusable\` or \`single_use\`. Whether this source should be reusable or not. Some source types may or may not be reusable by construction, while others may leave the option at creation. If an incompatible value is passed, an error will be returned.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PaymentSource -> Maybe Text
paymentSourceUsage :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | used: Whether this Alipay account object has ever been used for a payment.
    PaymentSource -> Maybe Bool
paymentSourceUsed :: (GHC.Maybe.Maybe GHC.Types.Bool),
    -- | used_for_payment: Indicate if this source is used for payment.
    PaymentSource -> Maybe Bool
paymentSourceUsedForPayment :: (GHC.Maybe.Maybe GHC.Types.Bool),
    -- | username: The username for the Alipay account.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PaymentSource -> Maybe Text
paymentSourceUsername :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | wechat
    PaymentSource -> Maybe SourceTypeWechat
paymentSourceWechat :: (GHC.Maybe.Maybe SourceTypeWechat)
  }
  deriving
    ( Int -> PaymentSource -> ShowS
[PaymentSource] -> ShowS
PaymentSource -> String
(Int -> PaymentSource -> ShowS)
-> (PaymentSource -> String)
-> ([PaymentSource] -> ShowS)
-> Show PaymentSource
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PaymentSource] -> ShowS
$cshowList :: [PaymentSource] -> ShowS
show :: PaymentSource -> String
$cshow :: PaymentSource -> String
showsPrec :: Int -> PaymentSource -> ShowS
$cshowsPrec :: Int -> PaymentSource -> ShowS
GHC.Show.Show,
      PaymentSource -> PaymentSource -> Bool
(PaymentSource -> PaymentSource -> Bool)
-> (PaymentSource -> PaymentSource -> Bool) -> Eq PaymentSource
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PaymentSource -> PaymentSource -> Bool
$c/= :: PaymentSource -> PaymentSource -> Bool
== :: PaymentSource -> PaymentSource -> Bool
$c== :: PaymentSource -> PaymentSource -> Bool
GHC.Classes.Eq
    )

instance Data.Aeson.Types.ToJSON.ToJSON PaymentSource where
  toJSON :: PaymentSource -> Value
toJSON PaymentSource
obj = [Pair] -> Value
Data.Aeson.Types.Internal.object (Text
"account" Text -> Maybe PaymentSourceAccount'Variants -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe PaymentSourceAccount'Variants
paymentSourceAccount PaymentSource
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"account_holder_name" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe Text
paymentSourceAccountHolderName PaymentSource
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"account_holder_type" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe Text
paymentSourceAccountHolderType PaymentSource
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"ach_credit_transfer" Text -> Maybe SourceTypeAchCreditTransfer -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe SourceTypeAchCreditTransfer
paymentSourceAchCreditTransfer PaymentSource
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"ach_debit" Text -> Maybe SourceTypeAchDebit -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe SourceTypeAchDebit
paymentSourceAchDebit PaymentSource
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"acss_debit" Text -> Maybe SourceTypeAcssDebit -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe SourceTypeAcssDebit
paymentSourceAcssDebit PaymentSource
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"active" Text -> Maybe Bool -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe Bool
paymentSourceActive PaymentSource
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"address_city" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe Text
paymentSourceAddressCity PaymentSource
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"address_country" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe Text
paymentSourceAddressCountry PaymentSource
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"address_line1" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe Text
paymentSourceAddressLine1 PaymentSource
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"address_line1_check" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe Text
paymentSourceAddressLine1Check PaymentSource
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"address_line2" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe Text
paymentSourceAddressLine2 PaymentSource
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"address_state" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe Text
paymentSourceAddressState PaymentSource
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"address_zip" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe Text
paymentSourceAddressZip PaymentSource
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"address_zip_check" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe Text
paymentSourceAddressZipCheck PaymentSource
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"alipay" Text -> Maybe SourceTypeAlipay -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe SourceTypeAlipay
paymentSourceAlipay PaymentSource
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"amount" Text -> Maybe Int -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe Int
paymentSourceAmount PaymentSource
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"amount_received" Text -> Maybe Int -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe Int
paymentSourceAmountReceived PaymentSource
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"au_becs_debit" Text -> Maybe SourceTypeAuBecsDebit -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe SourceTypeAuBecsDebit
paymentSourceAuBecsDebit PaymentSource
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"available_payout_methods" Text -> Maybe [PaymentSourceAvailablePayoutMethods'] -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe [PaymentSourceAvailablePayoutMethods']
paymentSourceAvailablePayoutMethods PaymentSource
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"bancontact" Text -> Maybe SourceTypeBancontact -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe SourceTypeBancontact
paymentSourceBancontact PaymentSource
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"bank_name" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe Text
paymentSourceBankName PaymentSource
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"bitcoin_amount" Text -> Maybe Int -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe Int
paymentSourceBitcoinAmount PaymentSource
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"bitcoin_amount_received" Text -> Maybe Int -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe Int
paymentSourceBitcoinAmountReceived PaymentSource
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"bitcoin_uri" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe Text
paymentSourceBitcoinUri PaymentSource
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"brand" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe Text
paymentSourceBrand PaymentSource
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"business_profile" Text -> Maybe PaymentSourceBusinessProfile' -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe PaymentSourceBusinessProfile'
paymentSourceBusinessProfile PaymentSource
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"business_type" Text -> Maybe PaymentSourceBusinessType' -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe PaymentSourceBusinessType'
paymentSourceBusinessType PaymentSource
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"capabilities" Text -> Maybe AccountCapabilities -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe AccountCapabilities
paymentSourceCapabilities PaymentSource
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"card" Text -> Maybe SourceTypeCard -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe SourceTypeCard
paymentSourceCard PaymentSource
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"card_present" Text -> Maybe SourceTypeCardPresent -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe SourceTypeCardPresent
paymentSourceCardPresent PaymentSource
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"charges_enabled" Text -> Maybe Bool -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe Bool
paymentSourceChargesEnabled PaymentSource
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"client_secret" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe Text
paymentSourceClientSecret PaymentSource
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"code_verification" Text -> Maybe SourceCodeVerificationFlow -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe SourceCodeVerificationFlow
paymentSourceCodeVerification PaymentSource
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"company" Text -> Maybe LegalEntityCompany -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe LegalEntityCompany
paymentSourceCompany PaymentSource
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"controller" Text -> Maybe AccountController -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe AccountController
paymentSourceController PaymentSource
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"country" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe Text
paymentSourceCountry PaymentSource
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"created" Text -> Maybe Int -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe Int
paymentSourceCreated PaymentSource
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"currency" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe Text
paymentSourceCurrency PaymentSource
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"customer" Text -> Maybe PaymentSourceCustomer'Variants -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe PaymentSourceCustomer'Variants
paymentSourceCustomer PaymentSource
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"cvc_check" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe Text
paymentSourceCvcCheck PaymentSource
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"default_currency" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe Text
paymentSourceDefaultCurrency PaymentSource
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"default_for_currency" Text -> Maybe Bool -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe Bool
paymentSourceDefaultForCurrency PaymentSource
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"description" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe Text
paymentSourceDescription PaymentSource
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"details_submitted" Text -> Maybe Bool -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe Bool
paymentSourceDetailsSubmitted PaymentSource
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"dynamic_last4" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe Text
paymentSourceDynamicLast4 PaymentSource
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"email" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe Text
paymentSourceEmail PaymentSource
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"eps" Text -> Maybe SourceTypeEps -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe SourceTypeEps
paymentSourceEps PaymentSource
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"exp_month" Text -> Maybe Int -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe Int
paymentSourceExpMonth PaymentSource
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"exp_year" Text -> Maybe Int -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe Int
paymentSourceExpYear PaymentSource
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"external_accounts" Text -> Maybe PaymentSourceExternalAccounts' -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe PaymentSourceExternalAccounts'
paymentSourceExternalAccounts PaymentSource
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"filled" Text -> Maybe Bool -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe Bool
paymentSourceFilled PaymentSource
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"fingerprint" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe Text
paymentSourceFingerprint PaymentSource
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"flow" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe Text
paymentSourceFlow PaymentSource
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"funding" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe Text
paymentSourceFunding PaymentSource
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"giropay" Text -> Maybe SourceTypeGiropay -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe SourceTypeGiropay
paymentSourceGiropay PaymentSource
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"id" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe Text
paymentSourceId PaymentSource
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"ideal" Text -> Maybe SourceTypeIdeal -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe SourceTypeIdeal
paymentSourceIdeal PaymentSource
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"inbound_address" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe Text
paymentSourceInboundAddress PaymentSource
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"individual" Text -> Maybe Person -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe Person
paymentSourceIndividual PaymentSource
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"klarna" Text -> Maybe SourceTypeKlarna -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe SourceTypeKlarna
paymentSourceKlarna PaymentSource
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"last4" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe Text
paymentSourceLast4 PaymentSource
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"livemode" Text -> Maybe Bool -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe Bool
paymentSourceLivemode PaymentSource
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"metadata" Text -> Maybe Object -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe Object
paymentSourceMetadata PaymentSource
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"multibanco" Text -> Maybe SourceTypeMultibanco -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe SourceTypeMultibanco
paymentSourceMultibanco PaymentSource
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"name" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe Text
paymentSourceName PaymentSource
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"object" Text -> Maybe PaymentSourceObject' -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe PaymentSourceObject'
paymentSourceObject PaymentSource
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"owner" Text -> Maybe PaymentSourceOwner' -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe PaymentSourceOwner'
paymentSourceOwner PaymentSource
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"p24" Text -> Maybe SourceTypeP24 -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe SourceTypeP24
paymentSourceP24 PaymentSource
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"payment" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe Text
paymentSourcePayment PaymentSource
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"payment_amount" Text -> Maybe Int -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe Int
paymentSourcePaymentAmount PaymentSource
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"payment_currency" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe Text
paymentSourcePaymentCurrency PaymentSource
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"payouts_enabled" Text -> Maybe Bool -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe Bool
paymentSourcePayoutsEnabled PaymentSource
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"receiver" Text -> Maybe SourceReceiverFlow -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe SourceReceiverFlow
paymentSourceReceiver PaymentSource
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"recipient" Text -> Maybe PaymentSourceRecipient'Variants -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe PaymentSourceRecipient'Variants
paymentSourceRecipient PaymentSource
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"redirect" Text -> Maybe SourceRedirectFlow -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe SourceRedirectFlow
paymentSourceRedirect PaymentSource
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"refund_address" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe Text
paymentSourceRefundAddress PaymentSource
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"requirements" Text -> Maybe AccountRequirements -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe AccountRequirements
paymentSourceRequirements PaymentSource
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"reusable" Text -> Maybe Bool -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe Bool
paymentSourceReusable PaymentSource
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"routing_number" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe Text
paymentSourceRoutingNumber PaymentSource
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"sepa_debit" Text -> Maybe SourceTypeSepaDebit -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe SourceTypeSepaDebit
paymentSourceSepaDebit PaymentSource
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"settings" Text -> Maybe PaymentSourceSettings' -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe PaymentSourceSettings'
paymentSourceSettings PaymentSource
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"sofort" Text -> Maybe SourceTypeSofort -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe SourceTypeSofort
paymentSourceSofort PaymentSource
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"source_order" Text -> Maybe SourceOrder -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe SourceOrder
paymentSourceSourceOrder PaymentSource
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"statement_descriptor" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe Text
paymentSourceStatementDescriptor PaymentSource
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"status" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe Text
paymentSourceStatus PaymentSource
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"three_d_secure" Text -> Maybe SourceTypeThreeDSecure -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe SourceTypeThreeDSecure
paymentSourceThreeDSecure PaymentSource
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"tokenization_method" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe Text
paymentSourceTokenizationMethod PaymentSource
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"tos_acceptance" Text -> Maybe AccountTosAcceptance -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe AccountTosAcceptance
paymentSourceTosAcceptance PaymentSource
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"transactions" Text -> Maybe PaymentSourceTransactions' -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe PaymentSourceTransactions'
paymentSourceTransactions PaymentSource
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"type" Text -> Maybe PaymentSourceType' -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe PaymentSourceType'
paymentSourceType PaymentSource
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"uncaptured_funds" Text -> Maybe Bool -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe Bool
paymentSourceUncapturedFunds PaymentSource
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"usage" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe Text
paymentSourceUsage PaymentSource
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"used" Text -> Maybe Bool -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe Bool
paymentSourceUsed PaymentSource
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"used_for_payment" Text -> Maybe Bool -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe Bool
paymentSourceUsedForPayment PaymentSource
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"username" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe Text
paymentSourceUsername PaymentSource
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"wechat" Text -> Maybe SourceTypeWechat -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe SourceTypeWechat
paymentSourceWechat PaymentSource
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: PaymentSource -> Encoding
toEncoding PaymentSource
obj = Series -> Encoding
Data.Aeson.Encoding.Internal.pairs ((Text
"account" Text -> Maybe PaymentSourceAccount'Variants -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe PaymentSourceAccount'Variants
paymentSourceAccount PaymentSource
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"account_holder_name" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe Text
paymentSourceAccountHolderName PaymentSource
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"account_holder_type" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe Text
paymentSourceAccountHolderType PaymentSource
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"ach_credit_transfer" Text -> Maybe SourceTypeAchCreditTransfer -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe SourceTypeAchCreditTransfer
paymentSourceAchCreditTransfer PaymentSource
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"ach_debit" Text -> Maybe SourceTypeAchDebit -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe SourceTypeAchDebit
paymentSourceAchDebit PaymentSource
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"acss_debit" Text -> Maybe SourceTypeAcssDebit -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe SourceTypeAcssDebit
paymentSourceAcssDebit PaymentSource
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"active" Text -> Maybe Bool -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe Bool
paymentSourceActive PaymentSource
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"address_city" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe Text
paymentSourceAddressCity PaymentSource
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"address_country" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe Text
paymentSourceAddressCountry PaymentSource
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"address_line1" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe Text
paymentSourceAddressLine1 PaymentSource
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"address_line1_check" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe Text
paymentSourceAddressLine1Check PaymentSource
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"address_line2" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe Text
paymentSourceAddressLine2 PaymentSource
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"address_state" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe Text
paymentSourceAddressState PaymentSource
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"address_zip" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe Text
paymentSourceAddressZip PaymentSource
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"address_zip_check" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe Text
paymentSourceAddressZipCheck PaymentSource
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"alipay" Text -> Maybe SourceTypeAlipay -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe SourceTypeAlipay
paymentSourceAlipay PaymentSource
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"amount" Text -> Maybe Int -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe Int
paymentSourceAmount PaymentSource
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"amount_received" Text -> Maybe Int -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe Int
paymentSourceAmountReceived PaymentSource
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"au_becs_debit" Text -> Maybe SourceTypeAuBecsDebit -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe SourceTypeAuBecsDebit
paymentSourceAuBecsDebit PaymentSource
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"available_payout_methods" Text -> Maybe [PaymentSourceAvailablePayoutMethods'] -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe [PaymentSourceAvailablePayoutMethods']
paymentSourceAvailablePayoutMethods PaymentSource
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"bancontact" Text -> Maybe SourceTypeBancontact -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe SourceTypeBancontact
paymentSourceBancontact PaymentSource
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"bank_name" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe Text
paymentSourceBankName PaymentSource
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"bitcoin_amount" Text -> Maybe Int -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe Int
paymentSourceBitcoinAmount PaymentSource
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"bitcoin_amount_received" Text -> Maybe Int -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe Int
paymentSourceBitcoinAmountReceived PaymentSource
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"bitcoin_uri" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe Text
paymentSourceBitcoinUri PaymentSource
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"brand" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe Text
paymentSourceBrand PaymentSource
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"business_profile" Text -> Maybe PaymentSourceBusinessProfile' -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe PaymentSourceBusinessProfile'
paymentSourceBusinessProfile PaymentSource
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"business_type" Text -> Maybe PaymentSourceBusinessType' -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe PaymentSourceBusinessType'
paymentSourceBusinessType PaymentSource
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"capabilities" Text -> Maybe AccountCapabilities -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe AccountCapabilities
paymentSourceCapabilities PaymentSource
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"card" Text -> Maybe SourceTypeCard -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe SourceTypeCard
paymentSourceCard PaymentSource
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"card_present" Text -> Maybe SourceTypeCardPresent -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe SourceTypeCardPresent
paymentSourceCardPresent PaymentSource
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"charges_enabled" Text -> Maybe Bool -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe Bool
paymentSourceChargesEnabled PaymentSource
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"client_secret" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe Text
paymentSourceClientSecret PaymentSource
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"code_verification" Text -> Maybe SourceCodeVerificationFlow -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe SourceCodeVerificationFlow
paymentSourceCodeVerification PaymentSource
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"company" Text -> Maybe LegalEntityCompany -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe LegalEntityCompany
paymentSourceCompany PaymentSource
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"controller" Text -> Maybe AccountController -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe AccountController
paymentSourceController PaymentSource
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"country" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe Text
paymentSourceCountry PaymentSource
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"created" Text -> Maybe Int -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe Int
paymentSourceCreated PaymentSource
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"currency" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe Text
paymentSourceCurrency PaymentSource
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"customer" Text -> Maybe PaymentSourceCustomer'Variants -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe PaymentSourceCustomer'Variants
paymentSourceCustomer PaymentSource
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"cvc_check" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe Text
paymentSourceCvcCheck PaymentSource
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"default_currency" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe Text
paymentSourceDefaultCurrency PaymentSource
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"default_for_currency" Text -> Maybe Bool -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe Bool
paymentSourceDefaultForCurrency PaymentSource
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"description" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe Text
paymentSourceDescription PaymentSource
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"details_submitted" Text -> Maybe Bool -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe Bool
paymentSourceDetailsSubmitted PaymentSource
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"dynamic_last4" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe Text
paymentSourceDynamicLast4 PaymentSource
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"email" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe Text
paymentSourceEmail PaymentSource
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"eps" Text -> Maybe SourceTypeEps -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe SourceTypeEps
paymentSourceEps PaymentSource
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"exp_month" Text -> Maybe Int -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe Int
paymentSourceExpMonth PaymentSource
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"exp_year" Text -> Maybe Int -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe Int
paymentSourceExpYear PaymentSource
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"external_accounts" Text -> Maybe PaymentSourceExternalAccounts' -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe PaymentSourceExternalAccounts'
paymentSourceExternalAccounts PaymentSource
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"filled" Text -> Maybe Bool -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe Bool
paymentSourceFilled PaymentSource
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"fingerprint" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe Text
paymentSourceFingerprint PaymentSource
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"flow" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe Text
paymentSourceFlow PaymentSource
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"funding" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe Text
paymentSourceFunding PaymentSource
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"giropay" Text -> Maybe SourceTypeGiropay -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe SourceTypeGiropay
paymentSourceGiropay PaymentSource
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"id" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe Text
paymentSourceId PaymentSource
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"ideal" Text -> Maybe SourceTypeIdeal -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe SourceTypeIdeal
paymentSourceIdeal PaymentSource
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"inbound_address" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe Text
paymentSourceInboundAddress PaymentSource
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"individual" Text -> Maybe Person -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe Person
paymentSourceIndividual PaymentSource
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"klarna" Text -> Maybe SourceTypeKlarna -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe SourceTypeKlarna
paymentSourceKlarna PaymentSource
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"last4" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe Text
paymentSourceLast4 PaymentSource
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"livemode" Text -> Maybe Bool -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe Bool
paymentSourceLivemode PaymentSource
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"metadata" Text -> Maybe Object -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe Object
paymentSourceMetadata PaymentSource
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"multibanco" Text -> Maybe SourceTypeMultibanco -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe SourceTypeMultibanco
paymentSourceMultibanco PaymentSource
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"name" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe Text
paymentSourceName PaymentSource
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"object" Text -> Maybe PaymentSourceObject' -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe PaymentSourceObject'
paymentSourceObject PaymentSource
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"owner" Text -> Maybe PaymentSourceOwner' -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe PaymentSourceOwner'
paymentSourceOwner PaymentSource
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"p24" Text -> Maybe SourceTypeP24 -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe SourceTypeP24
paymentSourceP24 PaymentSource
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"payment" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe Text
paymentSourcePayment PaymentSource
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"payment_amount" Text -> Maybe Int -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe Int
paymentSourcePaymentAmount PaymentSource
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"payment_currency" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe Text
paymentSourcePaymentCurrency PaymentSource
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"payouts_enabled" Text -> Maybe Bool -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe Bool
paymentSourcePayoutsEnabled PaymentSource
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"receiver" Text -> Maybe SourceReceiverFlow -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe SourceReceiverFlow
paymentSourceReceiver PaymentSource
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"recipient" Text -> Maybe PaymentSourceRecipient'Variants -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe PaymentSourceRecipient'Variants
paymentSourceRecipient PaymentSource
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"redirect" Text -> Maybe SourceRedirectFlow -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe SourceRedirectFlow
paymentSourceRedirect PaymentSource
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"refund_address" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe Text
paymentSourceRefundAddress PaymentSource
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"requirements" Text -> Maybe AccountRequirements -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe AccountRequirements
paymentSourceRequirements PaymentSource
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"reusable" Text -> Maybe Bool -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe Bool
paymentSourceReusable PaymentSource
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"routing_number" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe Text
paymentSourceRoutingNumber PaymentSource
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"sepa_debit" Text -> Maybe SourceTypeSepaDebit -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe SourceTypeSepaDebit
paymentSourceSepaDebit PaymentSource
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"settings" Text -> Maybe PaymentSourceSettings' -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe PaymentSourceSettings'
paymentSourceSettings PaymentSource
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"sofort" Text -> Maybe SourceTypeSofort -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe SourceTypeSofort
paymentSourceSofort PaymentSource
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"source_order" Text -> Maybe SourceOrder -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe SourceOrder
paymentSourceSourceOrder PaymentSource
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"statement_descriptor" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe Text
paymentSourceStatementDescriptor PaymentSource
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"status" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe Text
paymentSourceStatus PaymentSource
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"three_d_secure" Text -> Maybe SourceTypeThreeDSecure -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe SourceTypeThreeDSecure
paymentSourceThreeDSecure PaymentSource
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"tokenization_method" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe Text
paymentSourceTokenizationMethod PaymentSource
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"tos_acceptance" Text -> Maybe AccountTosAcceptance -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe AccountTosAcceptance
paymentSourceTosAcceptance PaymentSource
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"transactions" Text -> Maybe PaymentSourceTransactions' -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe PaymentSourceTransactions'
paymentSourceTransactions PaymentSource
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"type" Text -> Maybe PaymentSourceType' -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe PaymentSourceType'
paymentSourceType PaymentSource
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"uncaptured_funds" Text -> Maybe Bool -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe Bool
paymentSourceUncapturedFunds PaymentSource
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"usage" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe Text
paymentSourceUsage PaymentSource
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"used" Text -> Maybe Bool -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe Bool
paymentSourceUsed PaymentSource
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"used_for_payment" Text -> Maybe Bool -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe Bool
paymentSourceUsedForPayment PaymentSource
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"username" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe Text
paymentSourceUsername PaymentSource
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> (Text
"wechat" Text -> Maybe SourceTypeWechat -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSource -> Maybe SourceTypeWechat
paymentSourceWechat PaymentSource
obj)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))

instance Data.Aeson.Types.FromJSON.FromJSON PaymentSource where
  parseJSON :: Value -> Parser PaymentSource
parseJSON = String
-> (Object -> Parser PaymentSource)
-> Value
-> Parser PaymentSource
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.Aeson.Types.FromJSON.withObject String
"PaymentSource" (\Object
obj -> (((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((Maybe PaymentSourceAccount'Variants
 -> Maybe Text
 -> Maybe Text
 -> Maybe SourceTypeAchCreditTransfer
 -> Maybe SourceTypeAchDebit
 -> Maybe SourceTypeAcssDebit
 -> Maybe Bool
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe SourceTypeAlipay
 -> Maybe Int
 -> Maybe Int
 -> Maybe SourceTypeAuBecsDebit
 -> Maybe [PaymentSourceAvailablePayoutMethods']
 -> Maybe SourceTypeBancontact
 -> Maybe Text
 -> Maybe Int
 -> Maybe Int
 -> Maybe Text
 -> Maybe Text
 -> Maybe PaymentSourceBusinessProfile'
 -> Maybe PaymentSourceBusinessType'
 -> Maybe AccountCapabilities
 -> Maybe SourceTypeCard
 -> Maybe SourceTypeCardPresent
 -> Maybe Bool
 -> Maybe Text
 -> Maybe SourceCodeVerificationFlow
 -> Maybe LegalEntityCompany
 -> Maybe AccountController
 -> Maybe Text
 -> Maybe Int
 -> Maybe Text
 -> Maybe PaymentSourceCustomer'Variants
 -> Maybe Text
 -> Maybe Text
 -> Maybe Bool
 -> Maybe Text
 -> Maybe Bool
 -> Maybe Text
 -> Maybe Text
 -> Maybe SourceTypeEps
 -> Maybe Int
 -> Maybe Int
 -> Maybe PaymentSourceExternalAccounts'
 -> Maybe Bool
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe SourceTypeGiropay
 -> Maybe Text
 -> Maybe SourceTypeIdeal
 -> Maybe Text
 -> Maybe Person
 -> Maybe SourceTypeKlarna
 -> Maybe Text
 -> Maybe Bool
 -> Maybe Object
 -> Maybe SourceTypeMultibanco
 -> Maybe Text
 -> Maybe PaymentSourceObject'
 -> Maybe PaymentSourceOwner'
 -> Maybe SourceTypeP24
 -> Maybe Text
 -> Maybe Int
 -> Maybe Text
 -> Maybe Bool
 -> Maybe SourceReceiverFlow
 -> Maybe PaymentSourceRecipient'Variants
 -> Maybe SourceRedirectFlow
 -> Maybe Text
 -> Maybe AccountRequirements
 -> Maybe Bool
 -> Maybe Text
 -> Maybe SourceTypeSepaDebit
 -> Maybe PaymentSourceSettings'
 -> Maybe SourceTypeSofort
 -> Maybe SourceOrder
 -> Maybe Text
 -> Maybe Text
 -> Maybe SourceTypeThreeDSecure
 -> Maybe Text
 -> Maybe AccountTosAcceptance
 -> Maybe PaymentSourceTransactions'
 -> Maybe PaymentSourceType'
 -> Maybe Bool
 -> Maybe Text
 -> Maybe Bool
 -> Maybe Bool
 -> Maybe Text
 -> Maybe SourceTypeWechat
 -> PaymentSource)
-> Parser
     (Maybe PaymentSourceAccount'Variants
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeAchCreditTransfer
      -> Maybe SourceTypeAchDebit
      -> Maybe SourceTypeAcssDebit
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeAlipay
      -> Maybe Int
      -> Maybe Int
      -> Maybe SourceTypeAuBecsDebit
      -> Maybe [PaymentSourceAvailablePayoutMethods']
      -> Maybe SourceTypeBancontact
      -> Maybe Text
      -> Maybe Int
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe PaymentSourceBusinessProfile'
      -> Maybe PaymentSourceBusinessType'
      -> Maybe AccountCapabilities
      -> Maybe SourceTypeCard
      -> Maybe SourceTypeCardPresent
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceCodeVerificationFlow
      -> Maybe LegalEntityCompany
      -> Maybe AccountController
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe PaymentSourceCustomer'Variants
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeEps
      -> Maybe Int
      -> Maybe Int
      -> Maybe PaymentSourceExternalAccounts'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeGiropay
      -> Maybe Text
      -> Maybe SourceTypeIdeal
      -> Maybe Text
      -> Maybe Person
      -> Maybe SourceTypeKlarna
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Object
      -> Maybe SourceTypeMultibanco
      -> Maybe Text
      -> Maybe PaymentSourceObject'
      -> Maybe PaymentSourceOwner'
      -> Maybe SourceTypeP24
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe Bool
      -> Maybe SourceReceiverFlow
      -> Maybe PaymentSourceRecipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe AccountRequirements
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe PaymentSourceSettings'
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe AccountTosAcceptance
      -> Maybe PaymentSourceTransactions'
      -> Maybe PaymentSourceType'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> PaymentSource)
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure Maybe PaymentSourceAccount'Variants
-> Maybe Text
-> Maybe Text
-> Maybe SourceTypeAchCreditTransfer
-> Maybe SourceTypeAchDebit
-> Maybe SourceTypeAcssDebit
-> Maybe Bool
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe SourceTypeAlipay
-> Maybe Int
-> Maybe Int
-> Maybe SourceTypeAuBecsDebit
-> Maybe [PaymentSourceAvailablePayoutMethods']
-> Maybe SourceTypeBancontact
-> Maybe Text
-> Maybe Int
-> Maybe Int
-> Maybe Text
-> Maybe Text
-> Maybe PaymentSourceBusinessProfile'
-> Maybe PaymentSourceBusinessType'
-> Maybe AccountCapabilities
-> Maybe SourceTypeCard
-> Maybe SourceTypeCardPresent
-> Maybe Bool
-> Maybe Text
-> Maybe SourceCodeVerificationFlow
-> Maybe LegalEntityCompany
-> Maybe AccountController
-> Maybe Text
-> Maybe Int
-> Maybe Text
-> Maybe PaymentSourceCustomer'Variants
-> Maybe Text
-> Maybe Text
-> Maybe Bool
-> Maybe Text
-> Maybe Bool
-> Maybe Text
-> Maybe Text
-> Maybe SourceTypeEps
-> Maybe Int
-> Maybe Int
-> Maybe PaymentSourceExternalAccounts'
-> Maybe Bool
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe SourceTypeGiropay
-> Maybe Text
-> Maybe SourceTypeIdeal
-> Maybe Text
-> Maybe Person
-> Maybe SourceTypeKlarna
-> Maybe Text
-> Maybe Bool
-> Maybe Object
-> Maybe SourceTypeMultibanco
-> Maybe Text
-> Maybe PaymentSourceObject'
-> Maybe PaymentSourceOwner'
-> Maybe SourceTypeP24
-> Maybe Text
-> Maybe Int
-> Maybe Text
-> Maybe Bool
-> Maybe SourceReceiverFlow
-> Maybe PaymentSourceRecipient'Variants
-> Maybe SourceRedirectFlow
-> Maybe Text
-> Maybe AccountRequirements
-> Maybe Bool
-> Maybe Text
-> Maybe SourceTypeSepaDebit
-> Maybe PaymentSourceSettings'
-> Maybe SourceTypeSofort
-> Maybe SourceOrder
-> Maybe Text
-> Maybe Text
-> Maybe SourceTypeThreeDSecure
-> Maybe Text
-> Maybe AccountTosAcceptance
-> Maybe PaymentSourceTransactions'
-> Maybe PaymentSourceType'
-> Maybe Bool
-> Maybe Text
-> Maybe Bool
-> Maybe Bool
-> Maybe Text
-> Maybe SourceTypeWechat
-> PaymentSource
PaymentSource Parser
  (Maybe PaymentSourceAccount'Variants
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeAchCreditTransfer
   -> Maybe SourceTypeAchDebit
   -> Maybe SourceTypeAcssDebit
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeAlipay
   -> Maybe Int
   -> Maybe Int
   -> Maybe SourceTypeAuBecsDebit
   -> Maybe [PaymentSourceAvailablePayoutMethods']
   -> Maybe SourceTypeBancontact
   -> Maybe Text
   -> Maybe Int
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe PaymentSourceBusinessProfile'
   -> Maybe PaymentSourceBusinessType'
   -> Maybe AccountCapabilities
   -> Maybe SourceTypeCard
   -> Maybe SourceTypeCardPresent
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceCodeVerificationFlow
   -> Maybe LegalEntityCompany
   -> Maybe AccountController
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe PaymentSourceCustomer'Variants
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeEps
   -> Maybe Int
   -> Maybe Int
   -> Maybe PaymentSourceExternalAccounts'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeGiropay
   -> Maybe Text
   -> Maybe SourceTypeIdeal
   -> Maybe Text
   -> Maybe Person
   -> Maybe SourceTypeKlarna
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Object
   -> Maybe SourceTypeMultibanco
   -> Maybe Text
   -> Maybe PaymentSourceObject'
   -> Maybe PaymentSourceOwner'
   -> Maybe SourceTypeP24
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe Bool
   -> Maybe SourceReceiverFlow
   -> Maybe PaymentSourceRecipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe AccountRequirements
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe PaymentSourceSettings'
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe AccountTosAcceptance
   -> Maybe PaymentSourceTransactions'
   -> Maybe PaymentSourceType'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> PaymentSource)
-> Parser (Maybe PaymentSourceAccount'Variants)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeAchCreditTransfer
      -> Maybe SourceTypeAchDebit
      -> Maybe SourceTypeAcssDebit
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeAlipay
      -> Maybe Int
      -> Maybe Int
      -> Maybe SourceTypeAuBecsDebit
      -> Maybe [PaymentSourceAvailablePayoutMethods']
      -> Maybe SourceTypeBancontact
      -> Maybe Text
      -> Maybe Int
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe PaymentSourceBusinessProfile'
      -> Maybe PaymentSourceBusinessType'
      -> Maybe AccountCapabilities
      -> Maybe SourceTypeCard
      -> Maybe SourceTypeCardPresent
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceCodeVerificationFlow
      -> Maybe LegalEntityCompany
      -> Maybe AccountController
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe PaymentSourceCustomer'Variants
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeEps
      -> Maybe Int
      -> Maybe Int
      -> Maybe PaymentSourceExternalAccounts'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeGiropay
      -> Maybe Text
      -> Maybe SourceTypeIdeal
      -> Maybe Text
      -> Maybe Person
      -> Maybe SourceTypeKlarna
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Object
      -> Maybe SourceTypeMultibanco
      -> Maybe Text
      -> Maybe PaymentSourceObject'
      -> Maybe PaymentSourceOwner'
      -> Maybe SourceTypeP24
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe Bool
      -> Maybe SourceReceiverFlow
      -> Maybe PaymentSourceRecipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe AccountRequirements
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe PaymentSourceSettings'
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe AccountTosAcceptance
      -> Maybe PaymentSourceTransactions'
      -> Maybe PaymentSourceType'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> PaymentSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe PaymentSourceAccount'Variants)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"account")) Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeAchCreditTransfer
   -> Maybe SourceTypeAchDebit
   -> Maybe SourceTypeAcssDebit
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeAlipay
   -> Maybe Int
   -> Maybe Int
   -> Maybe SourceTypeAuBecsDebit
   -> Maybe [PaymentSourceAvailablePayoutMethods']
   -> Maybe SourceTypeBancontact
   -> Maybe Text
   -> Maybe Int
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe PaymentSourceBusinessProfile'
   -> Maybe PaymentSourceBusinessType'
   -> Maybe AccountCapabilities
   -> Maybe SourceTypeCard
   -> Maybe SourceTypeCardPresent
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceCodeVerificationFlow
   -> Maybe LegalEntityCompany
   -> Maybe AccountController
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe PaymentSourceCustomer'Variants
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeEps
   -> Maybe Int
   -> Maybe Int
   -> Maybe PaymentSourceExternalAccounts'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeGiropay
   -> Maybe Text
   -> Maybe SourceTypeIdeal
   -> Maybe Text
   -> Maybe Person
   -> Maybe SourceTypeKlarna
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Object
   -> Maybe SourceTypeMultibanco
   -> Maybe Text
   -> Maybe PaymentSourceObject'
   -> Maybe PaymentSourceOwner'
   -> Maybe SourceTypeP24
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe Bool
   -> Maybe SourceReceiverFlow
   -> Maybe PaymentSourceRecipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe AccountRequirements
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe PaymentSourceSettings'
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe AccountTosAcceptance
   -> Maybe PaymentSourceTransactions'
   -> Maybe PaymentSourceType'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> PaymentSource)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe SourceTypeAchCreditTransfer
      -> Maybe SourceTypeAchDebit
      -> Maybe SourceTypeAcssDebit
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeAlipay
      -> Maybe Int
      -> Maybe Int
      -> Maybe SourceTypeAuBecsDebit
      -> Maybe [PaymentSourceAvailablePayoutMethods']
      -> Maybe SourceTypeBancontact
      -> Maybe Text
      -> Maybe Int
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe PaymentSourceBusinessProfile'
      -> Maybe PaymentSourceBusinessType'
      -> Maybe AccountCapabilities
      -> Maybe SourceTypeCard
      -> Maybe SourceTypeCardPresent
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceCodeVerificationFlow
      -> Maybe LegalEntityCompany
      -> Maybe AccountController
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe PaymentSourceCustomer'Variants
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeEps
      -> Maybe Int
      -> Maybe Int
      -> Maybe PaymentSourceExternalAccounts'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeGiropay
      -> Maybe Text
      -> Maybe SourceTypeIdeal
      -> Maybe Text
      -> Maybe Person
      -> Maybe SourceTypeKlarna
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Object
      -> Maybe SourceTypeMultibanco
      -> Maybe Text
      -> Maybe PaymentSourceObject'
      -> Maybe PaymentSourceOwner'
      -> Maybe SourceTypeP24
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe Bool
      -> Maybe SourceReceiverFlow
      -> Maybe PaymentSourceRecipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe AccountRequirements
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe PaymentSourceSettings'
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe AccountTosAcceptance
      -> Maybe PaymentSourceTransactions'
      -> Maybe PaymentSourceType'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> PaymentSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"account_holder_name")) Parser
  (Maybe Text
   -> Maybe SourceTypeAchCreditTransfer
   -> Maybe SourceTypeAchDebit
   -> Maybe SourceTypeAcssDebit
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeAlipay
   -> Maybe Int
   -> Maybe Int
   -> Maybe SourceTypeAuBecsDebit
   -> Maybe [PaymentSourceAvailablePayoutMethods']
   -> Maybe SourceTypeBancontact
   -> Maybe Text
   -> Maybe Int
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe PaymentSourceBusinessProfile'
   -> Maybe PaymentSourceBusinessType'
   -> Maybe AccountCapabilities
   -> Maybe SourceTypeCard
   -> Maybe SourceTypeCardPresent
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceCodeVerificationFlow
   -> Maybe LegalEntityCompany
   -> Maybe AccountController
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe PaymentSourceCustomer'Variants
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeEps
   -> Maybe Int
   -> Maybe Int
   -> Maybe PaymentSourceExternalAccounts'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeGiropay
   -> Maybe Text
   -> Maybe SourceTypeIdeal
   -> Maybe Text
   -> Maybe Person
   -> Maybe SourceTypeKlarna
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Object
   -> Maybe SourceTypeMultibanco
   -> Maybe Text
   -> Maybe PaymentSourceObject'
   -> Maybe PaymentSourceOwner'
   -> Maybe SourceTypeP24
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe Bool
   -> Maybe SourceReceiverFlow
   -> Maybe PaymentSourceRecipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe AccountRequirements
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe PaymentSourceSettings'
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe AccountTosAcceptance
   -> Maybe PaymentSourceTransactions'
   -> Maybe PaymentSourceType'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> PaymentSource)
-> Parser (Maybe Text)
-> Parser
     (Maybe SourceTypeAchCreditTransfer
      -> Maybe SourceTypeAchDebit
      -> Maybe SourceTypeAcssDebit
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeAlipay
      -> Maybe Int
      -> Maybe Int
      -> Maybe SourceTypeAuBecsDebit
      -> Maybe [PaymentSourceAvailablePayoutMethods']
      -> Maybe SourceTypeBancontact
      -> Maybe Text
      -> Maybe Int
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe PaymentSourceBusinessProfile'
      -> Maybe PaymentSourceBusinessType'
      -> Maybe AccountCapabilities
      -> Maybe SourceTypeCard
      -> Maybe SourceTypeCardPresent
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceCodeVerificationFlow
      -> Maybe LegalEntityCompany
      -> Maybe AccountController
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe PaymentSourceCustomer'Variants
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeEps
      -> Maybe Int
      -> Maybe Int
      -> Maybe PaymentSourceExternalAccounts'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeGiropay
      -> Maybe Text
      -> Maybe SourceTypeIdeal
      -> Maybe Text
      -> Maybe Person
      -> Maybe SourceTypeKlarna
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Object
      -> Maybe SourceTypeMultibanco
      -> Maybe Text
      -> Maybe PaymentSourceObject'
      -> Maybe PaymentSourceOwner'
      -> Maybe SourceTypeP24
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe Bool
      -> Maybe SourceReceiverFlow
      -> Maybe PaymentSourceRecipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe AccountRequirements
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe PaymentSourceSettings'
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe AccountTosAcceptance
      -> Maybe PaymentSourceTransactions'
      -> Maybe PaymentSourceType'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> PaymentSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"account_holder_type")) Parser
  (Maybe SourceTypeAchCreditTransfer
   -> Maybe SourceTypeAchDebit
   -> Maybe SourceTypeAcssDebit
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeAlipay
   -> Maybe Int
   -> Maybe Int
   -> Maybe SourceTypeAuBecsDebit
   -> Maybe [PaymentSourceAvailablePayoutMethods']
   -> Maybe SourceTypeBancontact
   -> Maybe Text
   -> Maybe Int
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe PaymentSourceBusinessProfile'
   -> Maybe PaymentSourceBusinessType'
   -> Maybe AccountCapabilities
   -> Maybe SourceTypeCard
   -> Maybe SourceTypeCardPresent
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceCodeVerificationFlow
   -> Maybe LegalEntityCompany
   -> Maybe AccountController
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe PaymentSourceCustomer'Variants
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeEps
   -> Maybe Int
   -> Maybe Int
   -> Maybe PaymentSourceExternalAccounts'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeGiropay
   -> Maybe Text
   -> Maybe SourceTypeIdeal
   -> Maybe Text
   -> Maybe Person
   -> Maybe SourceTypeKlarna
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Object
   -> Maybe SourceTypeMultibanco
   -> Maybe Text
   -> Maybe PaymentSourceObject'
   -> Maybe PaymentSourceOwner'
   -> Maybe SourceTypeP24
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe Bool
   -> Maybe SourceReceiverFlow
   -> Maybe PaymentSourceRecipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe AccountRequirements
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe PaymentSourceSettings'
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe AccountTosAcceptance
   -> Maybe PaymentSourceTransactions'
   -> Maybe PaymentSourceType'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> PaymentSource)
-> Parser (Maybe SourceTypeAchCreditTransfer)
-> Parser
     (Maybe SourceTypeAchDebit
      -> Maybe SourceTypeAcssDebit
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeAlipay
      -> Maybe Int
      -> Maybe Int
      -> Maybe SourceTypeAuBecsDebit
      -> Maybe [PaymentSourceAvailablePayoutMethods']
      -> Maybe SourceTypeBancontact
      -> Maybe Text
      -> Maybe Int
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe PaymentSourceBusinessProfile'
      -> Maybe PaymentSourceBusinessType'
      -> Maybe AccountCapabilities
      -> Maybe SourceTypeCard
      -> Maybe SourceTypeCardPresent
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceCodeVerificationFlow
      -> Maybe LegalEntityCompany
      -> Maybe AccountController
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe PaymentSourceCustomer'Variants
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeEps
      -> Maybe Int
      -> Maybe Int
      -> Maybe PaymentSourceExternalAccounts'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeGiropay
      -> Maybe Text
      -> Maybe SourceTypeIdeal
      -> Maybe Text
      -> Maybe Person
      -> Maybe SourceTypeKlarna
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Object
      -> Maybe SourceTypeMultibanco
      -> Maybe Text
      -> Maybe PaymentSourceObject'
      -> Maybe PaymentSourceOwner'
      -> Maybe SourceTypeP24
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe Bool
      -> Maybe SourceReceiverFlow
      -> Maybe PaymentSourceRecipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe AccountRequirements
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe PaymentSourceSettings'
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe AccountTosAcceptance
      -> Maybe PaymentSourceTransactions'
      -> Maybe PaymentSourceType'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> PaymentSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe SourceTypeAchCreditTransfer)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"ach_credit_transfer")) Parser
  (Maybe SourceTypeAchDebit
   -> Maybe SourceTypeAcssDebit
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeAlipay
   -> Maybe Int
   -> Maybe Int
   -> Maybe SourceTypeAuBecsDebit
   -> Maybe [PaymentSourceAvailablePayoutMethods']
   -> Maybe SourceTypeBancontact
   -> Maybe Text
   -> Maybe Int
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe PaymentSourceBusinessProfile'
   -> Maybe PaymentSourceBusinessType'
   -> Maybe AccountCapabilities
   -> Maybe SourceTypeCard
   -> Maybe SourceTypeCardPresent
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceCodeVerificationFlow
   -> Maybe LegalEntityCompany
   -> Maybe AccountController
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe PaymentSourceCustomer'Variants
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeEps
   -> Maybe Int
   -> Maybe Int
   -> Maybe PaymentSourceExternalAccounts'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeGiropay
   -> Maybe Text
   -> Maybe SourceTypeIdeal
   -> Maybe Text
   -> Maybe Person
   -> Maybe SourceTypeKlarna
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Object
   -> Maybe SourceTypeMultibanco
   -> Maybe Text
   -> Maybe PaymentSourceObject'
   -> Maybe PaymentSourceOwner'
   -> Maybe SourceTypeP24
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe Bool
   -> Maybe SourceReceiverFlow
   -> Maybe PaymentSourceRecipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe AccountRequirements
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe PaymentSourceSettings'
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe AccountTosAcceptance
   -> Maybe PaymentSourceTransactions'
   -> Maybe PaymentSourceType'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> PaymentSource)
-> Parser (Maybe SourceTypeAchDebit)
-> Parser
     (Maybe SourceTypeAcssDebit
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeAlipay
      -> Maybe Int
      -> Maybe Int
      -> Maybe SourceTypeAuBecsDebit
      -> Maybe [PaymentSourceAvailablePayoutMethods']
      -> Maybe SourceTypeBancontact
      -> Maybe Text
      -> Maybe Int
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe PaymentSourceBusinessProfile'
      -> Maybe PaymentSourceBusinessType'
      -> Maybe AccountCapabilities
      -> Maybe SourceTypeCard
      -> Maybe SourceTypeCardPresent
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceCodeVerificationFlow
      -> Maybe LegalEntityCompany
      -> Maybe AccountController
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe PaymentSourceCustomer'Variants
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeEps
      -> Maybe Int
      -> Maybe Int
      -> Maybe PaymentSourceExternalAccounts'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeGiropay
      -> Maybe Text
      -> Maybe SourceTypeIdeal
      -> Maybe Text
      -> Maybe Person
      -> Maybe SourceTypeKlarna
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Object
      -> Maybe SourceTypeMultibanco
      -> Maybe Text
      -> Maybe PaymentSourceObject'
      -> Maybe PaymentSourceOwner'
      -> Maybe SourceTypeP24
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe Bool
      -> Maybe SourceReceiverFlow
      -> Maybe PaymentSourceRecipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe AccountRequirements
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe PaymentSourceSettings'
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe AccountTosAcceptance
      -> Maybe PaymentSourceTransactions'
      -> Maybe PaymentSourceType'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> PaymentSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe SourceTypeAchDebit)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"ach_debit")) Parser
  (Maybe SourceTypeAcssDebit
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeAlipay
   -> Maybe Int
   -> Maybe Int
   -> Maybe SourceTypeAuBecsDebit
   -> Maybe [PaymentSourceAvailablePayoutMethods']
   -> Maybe SourceTypeBancontact
   -> Maybe Text
   -> Maybe Int
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe PaymentSourceBusinessProfile'
   -> Maybe PaymentSourceBusinessType'
   -> Maybe AccountCapabilities
   -> Maybe SourceTypeCard
   -> Maybe SourceTypeCardPresent
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceCodeVerificationFlow
   -> Maybe LegalEntityCompany
   -> Maybe AccountController
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe PaymentSourceCustomer'Variants
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeEps
   -> Maybe Int
   -> Maybe Int
   -> Maybe PaymentSourceExternalAccounts'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeGiropay
   -> Maybe Text
   -> Maybe SourceTypeIdeal
   -> Maybe Text
   -> Maybe Person
   -> Maybe SourceTypeKlarna
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Object
   -> Maybe SourceTypeMultibanco
   -> Maybe Text
   -> Maybe PaymentSourceObject'
   -> Maybe PaymentSourceOwner'
   -> Maybe SourceTypeP24
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe Bool
   -> Maybe SourceReceiverFlow
   -> Maybe PaymentSourceRecipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe AccountRequirements
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe PaymentSourceSettings'
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe AccountTosAcceptance
   -> Maybe PaymentSourceTransactions'
   -> Maybe PaymentSourceType'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> PaymentSource)
-> Parser (Maybe SourceTypeAcssDebit)
-> Parser
     (Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeAlipay
      -> Maybe Int
      -> Maybe Int
      -> Maybe SourceTypeAuBecsDebit
      -> Maybe [PaymentSourceAvailablePayoutMethods']
      -> Maybe SourceTypeBancontact
      -> Maybe Text
      -> Maybe Int
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe PaymentSourceBusinessProfile'
      -> Maybe PaymentSourceBusinessType'
      -> Maybe AccountCapabilities
      -> Maybe SourceTypeCard
      -> Maybe SourceTypeCardPresent
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceCodeVerificationFlow
      -> Maybe LegalEntityCompany
      -> Maybe AccountController
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe PaymentSourceCustomer'Variants
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeEps
      -> Maybe Int
      -> Maybe Int
      -> Maybe PaymentSourceExternalAccounts'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeGiropay
      -> Maybe Text
      -> Maybe SourceTypeIdeal
      -> Maybe Text
      -> Maybe Person
      -> Maybe SourceTypeKlarna
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Object
      -> Maybe SourceTypeMultibanco
      -> Maybe Text
      -> Maybe PaymentSourceObject'
      -> Maybe PaymentSourceOwner'
      -> Maybe SourceTypeP24
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe Bool
      -> Maybe SourceReceiverFlow
      -> Maybe PaymentSourceRecipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe AccountRequirements
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe PaymentSourceSettings'
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe AccountTosAcceptance
      -> Maybe PaymentSourceTransactions'
      -> Maybe PaymentSourceType'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> PaymentSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe SourceTypeAcssDebit)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"acss_debit")) Parser
  (Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeAlipay
   -> Maybe Int
   -> Maybe Int
   -> Maybe SourceTypeAuBecsDebit
   -> Maybe [PaymentSourceAvailablePayoutMethods']
   -> Maybe SourceTypeBancontact
   -> Maybe Text
   -> Maybe Int
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe PaymentSourceBusinessProfile'
   -> Maybe PaymentSourceBusinessType'
   -> Maybe AccountCapabilities
   -> Maybe SourceTypeCard
   -> Maybe SourceTypeCardPresent
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceCodeVerificationFlow
   -> Maybe LegalEntityCompany
   -> Maybe AccountController
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe PaymentSourceCustomer'Variants
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeEps
   -> Maybe Int
   -> Maybe Int
   -> Maybe PaymentSourceExternalAccounts'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeGiropay
   -> Maybe Text
   -> Maybe SourceTypeIdeal
   -> Maybe Text
   -> Maybe Person
   -> Maybe SourceTypeKlarna
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Object
   -> Maybe SourceTypeMultibanco
   -> Maybe Text
   -> Maybe PaymentSourceObject'
   -> Maybe PaymentSourceOwner'
   -> Maybe SourceTypeP24
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe Bool
   -> Maybe SourceReceiverFlow
   -> Maybe PaymentSourceRecipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe AccountRequirements
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe PaymentSourceSettings'
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe AccountTosAcceptance
   -> Maybe PaymentSourceTransactions'
   -> Maybe PaymentSourceType'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> PaymentSource)
-> Parser (Maybe Bool)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeAlipay
      -> Maybe Int
      -> Maybe Int
      -> Maybe SourceTypeAuBecsDebit
      -> Maybe [PaymentSourceAvailablePayoutMethods']
      -> Maybe SourceTypeBancontact
      -> Maybe Text
      -> Maybe Int
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe PaymentSourceBusinessProfile'
      -> Maybe PaymentSourceBusinessType'
      -> Maybe AccountCapabilities
      -> Maybe SourceTypeCard
      -> Maybe SourceTypeCardPresent
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceCodeVerificationFlow
      -> Maybe LegalEntityCompany
      -> Maybe AccountController
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe PaymentSourceCustomer'Variants
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeEps
      -> Maybe Int
      -> Maybe Int
      -> Maybe PaymentSourceExternalAccounts'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeGiropay
      -> Maybe Text
      -> Maybe SourceTypeIdeal
      -> Maybe Text
      -> Maybe Person
      -> Maybe SourceTypeKlarna
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Object
      -> Maybe SourceTypeMultibanco
      -> Maybe Text
      -> Maybe PaymentSourceObject'
      -> Maybe PaymentSourceOwner'
      -> Maybe SourceTypeP24
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe Bool
      -> Maybe SourceReceiverFlow
      -> Maybe PaymentSourceRecipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe AccountRequirements
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe PaymentSourceSettings'
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe AccountTosAcceptance
      -> Maybe PaymentSourceTransactions'
      -> Maybe PaymentSourceType'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> PaymentSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"active")) Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeAlipay
   -> Maybe Int
   -> Maybe Int
   -> Maybe SourceTypeAuBecsDebit
   -> Maybe [PaymentSourceAvailablePayoutMethods']
   -> Maybe SourceTypeBancontact
   -> Maybe Text
   -> Maybe Int
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe PaymentSourceBusinessProfile'
   -> Maybe PaymentSourceBusinessType'
   -> Maybe AccountCapabilities
   -> Maybe SourceTypeCard
   -> Maybe SourceTypeCardPresent
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceCodeVerificationFlow
   -> Maybe LegalEntityCompany
   -> Maybe AccountController
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe PaymentSourceCustomer'Variants
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeEps
   -> Maybe Int
   -> Maybe Int
   -> Maybe PaymentSourceExternalAccounts'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeGiropay
   -> Maybe Text
   -> Maybe SourceTypeIdeal
   -> Maybe Text
   -> Maybe Person
   -> Maybe SourceTypeKlarna
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Object
   -> Maybe SourceTypeMultibanco
   -> Maybe Text
   -> Maybe PaymentSourceObject'
   -> Maybe PaymentSourceOwner'
   -> Maybe SourceTypeP24
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe Bool
   -> Maybe SourceReceiverFlow
   -> Maybe PaymentSourceRecipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe AccountRequirements
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe PaymentSourceSettings'
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe AccountTosAcceptance
   -> Maybe PaymentSourceTransactions'
   -> Maybe PaymentSourceType'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> PaymentSource)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeAlipay
      -> Maybe Int
      -> Maybe Int
      -> Maybe SourceTypeAuBecsDebit
      -> Maybe [PaymentSourceAvailablePayoutMethods']
      -> Maybe SourceTypeBancontact
      -> Maybe Text
      -> Maybe Int
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe PaymentSourceBusinessProfile'
      -> Maybe PaymentSourceBusinessType'
      -> Maybe AccountCapabilities
      -> Maybe SourceTypeCard
      -> Maybe SourceTypeCardPresent
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceCodeVerificationFlow
      -> Maybe LegalEntityCompany
      -> Maybe AccountController
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe PaymentSourceCustomer'Variants
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeEps
      -> Maybe Int
      -> Maybe Int
      -> Maybe PaymentSourceExternalAccounts'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeGiropay
      -> Maybe Text
      -> Maybe SourceTypeIdeal
      -> Maybe Text
      -> Maybe Person
      -> Maybe SourceTypeKlarna
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Object
      -> Maybe SourceTypeMultibanco
      -> Maybe Text
      -> Maybe PaymentSourceObject'
      -> Maybe PaymentSourceOwner'
      -> Maybe SourceTypeP24
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe Bool
      -> Maybe SourceReceiverFlow
      -> Maybe PaymentSourceRecipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe AccountRequirements
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe PaymentSourceSettings'
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe AccountTosAcceptance
      -> Maybe PaymentSourceTransactions'
      -> Maybe PaymentSourceType'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> PaymentSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"address_city")) Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeAlipay
   -> Maybe Int
   -> Maybe Int
   -> Maybe SourceTypeAuBecsDebit
   -> Maybe [PaymentSourceAvailablePayoutMethods']
   -> Maybe SourceTypeBancontact
   -> Maybe Text
   -> Maybe Int
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe PaymentSourceBusinessProfile'
   -> Maybe PaymentSourceBusinessType'
   -> Maybe AccountCapabilities
   -> Maybe SourceTypeCard
   -> Maybe SourceTypeCardPresent
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceCodeVerificationFlow
   -> Maybe LegalEntityCompany
   -> Maybe AccountController
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe PaymentSourceCustomer'Variants
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeEps
   -> Maybe Int
   -> Maybe Int
   -> Maybe PaymentSourceExternalAccounts'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeGiropay
   -> Maybe Text
   -> Maybe SourceTypeIdeal
   -> Maybe Text
   -> Maybe Person
   -> Maybe SourceTypeKlarna
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Object
   -> Maybe SourceTypeMultibanco
   -> Maybe Text
   -> Maybe PaymentSourceObject'
   -> Maybe PaymentSourceOwner'
   -> Maybe SourceTypeP24
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe Bool
   -> Maybe SourceReceiverFlow
   -> Maybe PaymentSourceRecipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe AccountRequirements
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe PaymentSourceSettings'
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe AccountTosAcceptance
   -> Maybe PaymentSourceTransactions'
   -> Maybe PaymentSourceType'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> PaymentSource)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeAlipay
      -> Maybe Int
      -> Maybe Int
      -> Maybe SourceTypeAuBecsDebit
      -> Maybe [PaymentSourceAvailablePayoutMethods']
      -> Maybe SourceTypeBancontact
      -> Maybe Text
      -> Maybe Int
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe PaymentSourceBusinessProfile'
      -> Maybe PaymentSourceBusinessType'
      -> Maybe AccountCapabilities
      -> Maybe SourceTypeCard
      -> Maybe SourceTypeCardPresent
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceCodeVerificationFlow
      -> Maybe LegalEntityCompany
      -> Maybe AccountController
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe PaymentSourceCustomer'Variants
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeEps
      -> Maybe Int
      -> Maybe Int
      -> Maybe PaymentSourceExternalAccounts'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeGiropay
      -> Maybe Text
      -> Maybe SourceTypeIdeal
      -> Maybe Text
      -> Maybe Person
      -> Maybe SourceTypeKlarna
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Object
      -> Maybe SourceTypeMultibanco
      -> Maybe Text
      -> Maybe PaymentSourceObject'
      -> Maybe PaymentSourceOwner'
      -> Maybe SourceTypeP24
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe Bool
      -> Maybe SourceReceiverFlow
      -> Maybe PaymentSourceRecipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe AccountRequirements
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe PaymentSourceSettings'
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe AccountTosAcceptance
      -> Maybe PaymentSourceTransactions'
      -> Maybe PaymentSourceType'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> PaymentSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"address_country")) Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeAlipay
   -> Maybe Int
   -> Maybe Int
   -> Maybe SourceTypeAuBecsDebit
   -> Maybe [PaymentSourceAvailablePayoutMethods']
   -> Maybe SourceTypeBancontact
   -> Maybe Text
   -> Maybe Int
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe PaymentSourceBusinessProfile'
   -> Maybe PaymentSourceBusinessType'
   -> Maybe AccountCapabilities
   -> Maybe SourceTypeCard
   -> Maybe SourceTypeCardPresent
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceCodeVerificationFlow
   -> Maybe LegalEntityCompany
   -> Maybe AccountController
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe PaymentSourceCustomer'Variants
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeEps
   -> Maybe Int
   -> Maybe Int
   -> Maybe PaymentSourceExternalAccounts'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeGiropay
   -> Maybe Text
   -> Maybe SourceTypeIdeal
   -> Maybe Text
   -> Maybe Person
   -> Maybe SourceTypeKlarna
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Object
   -> Maybe SourceTypeMultibanco
   -> Maybe Text
   -> Maybe PaymentSourceObject'
   -> Maybe PaymentSourceOwner'
   -> Maybe SourceTypeP24
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe Bool
   -> Maybe SourceReceiverFlow
   -> Maybe PaymentSourceRecipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe AccountRequirements
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe PaymentSourceSettings'
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe AccountTosAcceptance
   -> Maybe PaymentSourceTransactions'
   -> Maybe PaymentSourceType'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> PaymentSource)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeAlipay
      -> Maybe Int
      -> Maybe Int
      -> Maybe SourceTypeAuBecsDebit
      -> Maybe [PaymentSourceAvailablePayoutMethods']
      -> Maybe SourceTypeBancontact
      -> Maybe Text
      -> Maybe Int
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe PaymentSourceBusinessProfile'
      -> Maybe PaymentSourceBusinessType'
      -> Maybe AccountCapabilities
      -> Maybe SourceTypeCard
      -> Maybe SourceTypeCardPresent
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceCodeVerificationFlow
      -> Maybe LegalEntityCompany
      -> Maybe AccountController
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe PaymentSourceCustomer'Variants
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeEps
      -> Maybe Int
      -> Maybe Int
      -> Maybe PaymentSourceExternalAccounts'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeGiropay
      -> Maybe Text
      -> Maybe SourceTypeIdeal
      -> Maybe Text
      -> Maybe Person
      -> Maybe SourceTypeKlarna
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Object
      -> Maybe SourceTypeMultibanco
      -> Maybe Text
      -> Maybe PaymentSourceObject'
      -> Maybe PaymentSourceOwner'
      -> Maybe SourceTypeP24
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe Bool
      -> Maybe SourceReceiverFlow
      -> Maybe PaymentSourceRecipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe AccountRequirements
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe PaymentSourceSettings'
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe AccountTosAcceptance
      -> Maybe PaymentSourceTransactions'
      -> Maybe PaymentSourceType'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> PaymentSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"address_line1")) Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeAlipay
   -> Maybe Int
   -> Maybe Int
   -> Maybe SourceTypeAuBecsDebit
   -> Maybe [PaymentSourceAvailablePayoutMethods']
   -> Maybe SourceTypeBancontact
   -> Maybe Text
   -> Maybe Int
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe PaymentSourceBusinessProfile'
   -> Maybe PaymentSourceBusinessType'
   -> Maybe AccountCapabilities
   -> Maybe SourceTypeCard
   -> Maybe SourceTypeCardPresent
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceCodeVerificationFlow
   -> Maybe LegalEntityCompany
   -> Maybe AccountController
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe PaymentSourceCustomer'Variants
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeEps
   -> Maybe Int
   -> Maybe Int
   -> Maybe PaymentSourceExternalAccounts'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeGiropay
   -> Maybe Text
   -> Maybe SourceTypeIdeal
   -> Maybe Text
   -> Maybe Person
   -> Maybe SourceTypeKlarna
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Object
   -> Maybe SourceTypeMultibanco
   -> Maybe Text
   -> Maybe PaymentSourceObject'
   -> Maybe PaymentSourceOwner'
   -> Maybe SourceTypeP24
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe Bool
   -> Maybe SourceReceiverFlow
   -> Maybe PaymentSourceRecipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe AccountRequirements
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe PaymentSourceSettings'
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe AccountTosAcceptance
   -> Maybe PaymentSourceTransactions'
   -> Maybe PaymentSourceType'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> PaymentSource)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeAlipay
      -> Maybe Int
      -> Maybe Int
      -> Maybe SourceTypeAuBecsDebit
      -> Maybe [PaymentSourceAvailablePayoutMethods']
      -> Maybe SourceTypeBancontact
      -> Maybe Text
      -> Maybe Int
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe PaymentSourceBusinessProfile'
      -> Maybe PaymentSourceBusinessType'
      -> Maybe AccountCapabilities
      -> Maybe SourceTypeCard
      -> Maybe SourceTypeCardPresent
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceCodeVerificationFlow
      -> Maybe LegalEntityCompany
      -> Maybe AccountController
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe PaymentSourceCustomer'Variants
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeEps
      -> Maybe Int
      -> Maybe Int
      -> Maybe PaymentSourceExternalAccounts'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeGiropay
      -> Maybe Text
      -> Maybe SourceTypeIdeal
      -> Maybe Text
      -> Maybe Person
      -> Maybe SourceTypeKlarna
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Object
      -> Maybe SourceTypeMultibanco
      -> Maybe Text
      -> Maybe PaymentSourceObject'
      -> Maybe PaymentSourceOwner'
      -> Maybe SourceTypeP24
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe Bool
      -> Maybe SourceReceiverFlow
      -> Maybe PaymentSourceRecipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe AccountRequirements
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe PaymentSourceSettings'
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe AccountTosAcceptance
      -> Maybe PaymentSourceTransactions'
      -> Maybe PaymentSourceType'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> PaymentSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"address_line1_check")) Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeAlipay
   -> Maybe Int
   -> Maybe Int
   -> Maybe SourceTypeAuBecsDebit
   -> Maybe [PaymentSourceAvailablePayoutMethods']
   -> Maybe SourceTypeBancontact
   -> Maybe Text
   -> Maybe Int
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe PaymentSourceBusinessProfile'
   -> Maybe PaymentSourceBusinessType'
   -> Maybe AccountCapabilities
   -> Maybe SourceTypeCard
   -> Maybe SourceTypeCardPresent
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceCodeVerificationFlow
   -> Maybe LegalEntityCompany
   -> Maybe AccountController
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe PaymentSourceCustomer'Variants
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeEps
   -> Maybe Int
   -> Maybe Int
   -> Maybe PaymentSourceExternalAccounts'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeGiropay
   -> Maybe Text
   -> Maybe SourceTypeIdeal
   -> Maybe Text
   -> Maybe Person
   -> Maybe SourceTypeKlarna
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Object
   -> Maybe SourceTypeMultibanco
   -> Maybe Text
   -> Maybe PaymentSourceObject'
   -> Maybe PaymentSourceOwner'
   -> Maybe SourceTypeP24
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe Bool
   -> Maybe SourceReceiverFlow
   -> Maybe PaymentSourceRecipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe AccountRequirements
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe PaymentSourceSettings'
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe AccountTosAcceptance
   -> Maybe PaymentSourceTransactions'
   -> Maybe PaymentSourceType'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> PaymentSource)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeAlipay
      -> Maybe Int
      -> Maybe Int
      -> Maybe SourceTypeAuBecsDebit
      -> Maybe [PaymentSourceAvailablePayoutMethods']
      -> Maybe SourceTypeBancontact
      -> Maybe Text
      -> Maybe Int
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe PaymentSourceBusinessProfile'
      -> Maybe PaymentSourceBusinessType'
      -> Maybe AccountCapabilities
      -> Maybe SourceTypeCard
      -> Maybe SourceTypeCardPresent
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceCodeVerificationFlow
      -> Maybe LegalEntityCompany
      -> Maybe AccountController
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe PaymentSourceCustomer'Variants
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeEps
      -> Maybe Int
      -> Maybe Int
      -> Maybe PaymentSourceExternalAccounts'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeGiropay
      -> Maybe Text
      -> Maybe SourceTypeIdeal
      -> Maybe Text
      -> Maybe Person
      -> Maybe SourceTypeKlarna
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Object
      -> Maybe SourceTypeMultibanco
      -> Maybe Text
      -> Maybe PaymentSourceObject'
      -> Maybe PaymentSourceOwner'
      -> Maybe SourceTypeP24
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe Bool
      -> Maybe SourceReceiverFlow
      -> Maybe PaymentSourceRecipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe AccountRequirements
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe PaymentSourceSettings'
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe AccountTosAcceptance
      -> Maybe PaymentSourceTransactions'
      -> Maybe PaymentSourceType'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> PaymentSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"address_line2")) Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeAlipay
   -> Maybe Int
   -> Maybe Int
   -> Maybe SourceTypeAuBecsDebit
   -> Maybe [PaymentSourceAvailablePayoutMethods']
   -> Maybe SourceTypeBancontact
   -> Maybe Text
   -> Maybe Int
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe PaymentSourceBusinessProfile'
   -> Maybe PaymentSourceBusinessType'
   -> Maybe AccountCapabilities
   -> Maybe SourceTypeCard
   -> Maybe SourceTypeCardPresent
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceCodeVerificationFlow
   -> Maybe LegalEntityCompany
   -> Maybe AccountController
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe PaymentSourceCustomer'Variants
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeEps
   -> Maybe Int
   -> Maybe Int
   -> Maybe PaymentSourceExternalAccounts'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeGiropay
   -> Maybe Text
   -> Maybe SourceTypeIdeal
   -> Maybe Text
   -> Maybe Person
   -> Maybe SourceTypeKlarna
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Object
   -> Maybe SourceTypeMultibanco
   -> Maybe Text
   -> Maybe PaymentSourceObject'
   -> Maybe PaymentSourceOwner'
   -> Maybe SourceTypeP24
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe Bool
   -> Maybe SourceReceiverFlow
   -> Maybe PaymentSourceRecipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe AccountRequirements
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe PaymentSourceSettings'
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe AccountTosAcceptance
   -> Maybe PaymentSourceTransactions'
   -> Maybe PaymentSourceType'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> PaymentSource)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeAlipay
      -> Maybe Int
      -> Maybe Int
      -> Maybe SourceTypeAuBecsDebit
      -> Maybe [PaymentSourceAvailablePayoutMethods']
      -> Maybe SourceTypeBancontact
      -> Maybe Text
      -> Maybe Int
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe PaymentSourceBusinessProfile'
      -> Maybe PaymentSourceBusinessType'
      -> Maybe AccountCapabilities
      -> Maybe SourceTypeCard
      -> Maybe SourceTypeCardPresent
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceCodeVerificationFlow
      -> Maybe LegalEntityCompany
      -> Maybe AccountController
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe PaymentSourceCustomer'Variants
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeEps
      -> Maybe Int
      -> Maybe Int
      -> Maybe PaymentSourceExternalAccounts'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeGiropay
      -> Maybe Text
      -> Maybe SourceTypeIdeal
      -> Maybe Text
      -> Maybe Person
      -> Maybe SourceTypeKlarna
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Object
      -> Maybe SourceTypeMultibanco
      -> Maybe Text
      -> Maybe PaymentSourceObject'
      -> Maybe PaymentSourceOwner'
      -> Maybe SourceTypeP24
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe Bool
      -> Maybe SourceReceiverFlow
      -> Maybe PaymentSourceRecipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe AccountRequirements
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe PaymentSourceSettings'
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe AccountTosAcceptance
      -> Maybe PaymentSourceTransactions'
      -> Maybe PaymentSourceType'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> PaymentSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"address_state")) Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeAlipay
   -> Maybe Int
   -> Maybe Int
   -> Maybe SourceTypeAuBecsDebit
   -> Maybe [PaymentSourceAvailablePayoutMethods']
   -> Maybe SourceTypeBancontact
   -> Maybe Text
   -> Maybe Int
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe PaymentSourceBusinessProfile'
   -> Maybe PaymentSourceBusinessType'
   -> Maybe AccountCapabilities
   -> Maybe SourceTypeCard
   -> Maybe SourceTypeCardPresent
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceCodeVerificationFlow
   -> Maybe LegalEntityCompany
   -> Maybe AccountController
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe PaymentSourceCustomer'Variants
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeEps
   -> Maybe Int
   -> Maybe Int
   -> Maybe PaymentSourceExternalAccounts'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeGiropay
   -> Maybe Text
   -> Maybe SourceTypeIdeal
   -> Maybe Text
   -> Maybe Person
   -> Maybe SourceTypeKlarna
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Object
   -> Maybe SourceTypeMultibanco
   -> Maybe Text
   -> Maybe PaymentSourceObject'
   -> Maybe PaymentSourceOwner'
   -> Maybe SourceTypeP24
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe Bool
   -> Maybe SourceReceiverFlow
   -> Maybe PaymentSourceRecipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe AccountRequirements
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe PaymentSourceSettings'
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe AccountTosAcceptance
   -> Maybe PaymentSourceTransactions'
   -> Maybe PaymentSourceType'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> PaymentSource)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe SourceTypeAlipay
      -> Maybe Int
      -> Maybe Int
      -> Maybe SourceTypeAuBecsDebit
      -> Maybe [PaymentSourceAvailablePayoutMethods']
      -> Maybe SourceTypeBancontact
      -> Maybe Text
      -> Maybe Int
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe PaymentSourceBusinessProfile'
      -> Maybe PaymentSourceBusinessType'
      -> Maybe AccountCapabilities
      -> Maybe SourceTypeCard
      -> Maybe SourceTypeCardPresent
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceCodeVerificationFlow
      -> Maybe LegalEntityCompany
      -> Maybe AccountController
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe PaymentSourceCustomer'Variants
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeEps
      -> Maybe Int
      -> Maybe Int
      -> Maybe PaymentSourceExternalAccounts'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeGiropay
      -> Maybe Text
      -> Maybe SourceTypeIdeal
      -> Maybe Text
      -> Maybe Person
      -> Maybe SourceTypeKlarna
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Object
      -> Maybe SourceTypeMultibanco
      -> Maybe Text
      -> Maybe PaymentSourceObject'
      -> Maybe PaymentSourceOwner'
      -> Maybe SourceTypeP24
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe Bool
      -> Maybe SourceReceiverFlow
      -> Maybe PaymentSourceRecipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe AccountRequirements
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe PaymentSourceSettings'
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe AccountTosAcceptance
      -> Maybe PaymentSourceTransactions'
      -> Maybe PaymentSourceType'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> PaymentSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"address_zip")) Parser
  (Maybe Text
   -> Maybe SourceTypeAlipay
   -> Maybe Int
   -> Maybe Int
   -> Maybe SourceTypeAuBecsDebit
   -> Maybe [PaymentSourceAvailablePayoutMethods']
   -> Maybe SourceTypeBancontact
   -> Maybe Text
   -> Maybe Int
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe PaymentSourceBusinessProfile'
   -> Maybe PaymentSourceBusinessType'
   -> Maybe AccountCapabilities
   -> Maybe SourceTypeCard
   -> Maybe SourceTypeCardPresent
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceCodeVerificationFlow
   -> Maybe LegalEntityCompany
   -> Maybe AccountController
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe PaymentSourceCustomer'Variants
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeEps
   -> Maybe Int
   -> Maybe Int
   -> Maybe PaymentSourceExternalAccounts'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeGiropay
   -> Maybe Text
   -> Maybe SourceTypeIdeal
   -> Maybe Text
   -> Maybe Person
   -> Maybe SourceTypeKlarna
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Object
   -> Maybe SourceTypeMultibanco
   -> Maybe Text
   -> Maybe PaymentSourceObject'
   -> Maybe PaymentSourceOwner'
   -> Maybe SourceTypeP24
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe Bool
   -> Maybe SourceReceiverFlow
   -> Maybe PaymentSourceRecipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe AccountRequirements
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe PaymentSourceSettings'
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe AccountTosAcceptance
   -> Maybe PaymentSourceTransactions'
   -> Maybe PaymentSourceType'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> PaymentSource)
-> Parser (Maybe Text)
-> Parser
     (Maybe SourceTypeAlipay
      -> Maybe Int
      -> Maybe Int
      -> Maybe SourceTypeAuBecsDebit
      -> Maybe [PaymentSourceAvailablePayoutMethods']
      -> Maybe SourceTypeBancontact
      -> Maybe Text
      -> Maybe Int
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe PaymentSourceBusinessProfile'
      -> Maybe PaymentSourceBusinessType'
      -> Maybe AccountCapabilities
      -> Maybe SourceTypeCard
      -> Maybe SourceTypeCardPresent
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceCodeVerificationFlow
      -> Maybe LegalEntityCompany
      -> Maybe AccountController
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe PaymentSourceCustomer'Variants
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeEps
      -> Maybe Int
      -> Maybe Int
      -> Maybe PaymentSourceExternalAccounts'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeGiropay
      -> Maybe Text
      -> Maybe SourceTypeIdeal
      -> Maybe Text
      -> Maybe Person
      -> Maybe SourceTypeKlarna
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Object
      -> Maybe SourceTypeMultibanco
      -> Maybe Text
      -> Maybe PaymentSourceObject'
      -> Maybe PaymentSourceOwner'
      -> Maybe SourceTypeP24
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe Bool
      -> Maybe SourceReceiverFlow
      -> Maybe PaymentSourceRecipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe AccountRequirements
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe PaymentSourceSettings'
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe AccountTosAcceptance
      -> Maybe PaymentSourceTransactions'
      -> Maybe PaymentSourceType'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> PaymentSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"address_zip_check")) Parser
  (Maybe SourceTypeAlipay
   -> Maybe Int
   -> Maybe Int
   -> Maybe SourceTypeAuBecsDebit
   -> Maybe [PaymentSourceAvailablePayoutMethods']
   -> Maybe SourceTypeBancontact
   -> Maybe Text
   -> Maybe Int
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe PaymentSourceBusinessProfile'
   -> Maybe PaymentSourceBusinessType'
   -> Maybe AccountCapabilities
   -> Maybe SourceTypeCard
   -> Maybe SourceTypeCardPresent
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceCodeVerificationFlow
   -> Maybe LegalEntityCompany
   -> Maybe AccountController
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe PaymentSourceCustomer'Variants
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeEps
   -> Maybe Int
   -> Maybe Int
   -> Maybe PaymentSourceExternalAccounts'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeGiropay
   -> Maybe Text
   -> Maybe SourceTypeIdeal
   -> Maybe Text
   -> Maybe Person
   -> Maybe SourceTypeKlarna
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Object
   -> Maybe SourceTypeMultibanco
   -> Maybe Text
   -> Maybe PaymentSourceObject'
   -> Maybe PaymentSourceOwner'
   -> Maybe SourceTypeP24
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe Bool
   -> Maybe SourceReceiverFlow
   -> Maybe PaymentSourceRecipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe AccountRequirements
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe PaymentSourceSettings'
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe AccountTosAcceptance
   -> Maybe PaymentSourceTransactions'
   -> Maybe PaymentSourceType'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> PaymentSource)
-> Parser (Maybe SourceTypeAlipay)
-> Parser
     (Maybe Int
      -> Maybe Int
      -> Maybe SourceTypeAuBecsDebit
      -> Maybe [PaymentSourceAvailablePayoutMethods']
      -> Maybe SourceTypeBancontact
      -> Maybe Text
      -> Maybe Int
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe PaymentSourceBusinessProfile'
      -> Maybe PaymentSourceBusinessType'
      -> Maybe AccountCapabilities
      -> Maybe SourceTypeCard
      -> Maybe SourceTypeCardPresent
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceCodeVerificationFlow
      -> Maybe LegalEntityCompany
      -> Maybe AccountController
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe PaymentSourceCustomer'Variants
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeEps
      -> Maybe Int
      -> Maybe Int
      -> Maybe PaymentSourceExternalAccounts'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeGiropay
      -> Maybe Text
      -> Maybe SourceTypeIdeal
      -> Maybe Text
      -> Maybe Person
      -> Maybe SourceTypeKlarna
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Object
      -> Maybe SourceTypeMultibanco
      -> Maybe Text
      -> Maybe PaymentSourceObject'
      -> Maybe PaymentSourceOwner'
      -> Maybe SourceTypeP24
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe Bool
      -> Maybe SourceReceiverFlow
      -> Maybe PaymentSourceRecipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe AccountRequirements
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe PaymentSourceSettings'
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe AccountTosAcceptance
      -> Maybe PaymentSourceTransactions'
      -> Maybe PaymentSourceType'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> PaymentSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe SourceTypeAlipay)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"alipay")) Parser
  (Maybe Int
   -> Maybe Int
   -> Maybe SourceTypeAuBecsDebit
   -> Maybe [PaymentSourceAvailablePayoutMethods']
   -> Maybe SourceTypeBancontact
   -> Maybe Text
   -> Maybe Int
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe PaymentSourceBusinessProfile'
   -> Maybe PaymentSourceBusinessType'
   -> Maybe AccountCapabilities
   -> Maybe SourceTypeCard
   -> Maybe SourceTypeCardPresent
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceCodeVerificationFlow
   -> Maybe LegalEntityCompany
   -> Maybe AccountController
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe PaymentSourceCustomer'Variants
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeEps
   -> Maybe Int
   -> Maybe Int
   -> Maybe PaymentSourceExternalAccounts'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeGiropay
   -> Maybe Text
   -> Maybe SourceTypeIdeal
   -> Maybe Text
   -> Maybe Person
   -> Maybe SourceTypeKlarna
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Object
   -> Maybe SourceTypeMultibanco
   -> Maybe Text
   -> Maybe PaymentSourceObject'
   -> Maybe PaymentSourceOwner'
   -> Maybe SourceTypeP24
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe Bool
   -> Maybe SourceReceiverFlow
   -> Maybe PaymentSourceRecipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe AccountRequirements
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe PaymentSourceSettings'
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe AccountTosAcceptance
   -> Maybe PaymentSourceTransactions'
   -> Maybe PaymentSourceType'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> PaymentSource)
-> Parser (Maybe Int)
-> Parser
     (Maybe Int
      -> Maybe SourceTypeAuBecsDebit
      -> Maybe [PaymentSourceAvailablePayoutMethods']
      -> Maybe SourceTypeBancontact
      -> Maybe Text
      -> Maybe Int
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe PaymentSourceBusinessProfile'
      -> Maybe PaymentSourceBusinessType'
      -> Maybe AccountCapabilities
      -> Maybe SourceTypeCard
      -> Maybe SourceTypeCardPresent
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceCodeVerificationFlow
      -> Maybe LegalEntityCompany
      -> Maybe AccountController
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe PaymentSourceCustomer'Variants
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeEps
      -> Maybe Int
      -> Maybe Int
      -> Maybe PaymentSourceExternalAccounts'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeGiropay
      -> Maybe Text
      -> Maybe SourceTypeIdeal
      -> Maybe Text
      -> Maybe Person
      -> Maybe SourceTypeKlarna
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Object
      -> Maybe SourceTypeMultibanco
      -> Maybe Text
      -> Maybe PaymentSourceObject'
      -> Maybe PaymentSourceOwner'
      -> Maybe SourceTypeP24
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe Bool
      -> Maybe SourceReceiverFlow
      -> Maybe PaymentSourceRecipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe AccountRequirements
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe PaymentSourceSettings'
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe AccountTosAcceptance
      -> Maybe PaymentSourceTransactions'
      -> Maybe PaymentSourceType'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> PaymentSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"amount")) Parser
  (Maybe Int
   -> Maybe SourceTypeAuBecsDebit
   -> Maybe [PaymentSourceAvailablePayoutMethods']
   -> Maybe SourceTypeBancontact
   -> Maybe Text
   -> Maybe Int
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe PaymentSourceBusinessProfile'
   -> Maybe PaymentSourceBusinessType'
   -> Maybe AccountCapabilities
   -> Maybe SourceTypeCard
   -> Maybe SourceTypeCardPresent
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceCodeVerificationFlow
   -> Maybe LegalEntityCompany
   -> Maybe AccountController
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe PaymentSourceCustomer'Variants
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeEps
   -> Maybe Int
   -> Maybe Int
   -> Maybe PaymentSourceExternalAccounts'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeGiropay
   -> Maybe Text
   -> Maybe SourceTypeIdeal
   -> Maybe Text
   -> Maybe Person
   -> Maybe SourceTypeKlarna
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Object
   -> Maybe SourceTypeMultibanco
   -> Maybe Text
   -> Maybe PaymentSourceObject'
   -> Maybe PaymentSourceOwner'
   -> Maybe SourceTypeP24
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe Bool
   -> Maybe SourceReceiverFlow
   -> Maybe PaymentSourceRecipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe AccountRequirements
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe PaymentSourceSettings'
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe AccountTosAcceptance
   -> Maybe PaymentSourceTransactions'
   -> Maybe PaymentSourceType'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> PaymentSource)
-> Parser (Maybe Int)
-> Parser
     (Maybe SourceTypeAuBecsDebit
      -> Maybe [PaymentSourceAvailablePayoutMethods']
      -> Maybe SourceTypeBancontact
      -> Maybe Text
      -> Maybe Int
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe PaymentSourceBusinessProfile'
      -> Maybe PaymentSourceBusinessType'
      -> Maybe AccountCapabilities
      -> Maybe SourceTypeCard
      -> Maybe SourceTypeCardPresent
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceCodeVerificationFlow
      -> Maybe LegalEntityCompany
      -> Maybe AccountController
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe PaymentSourceCustomer'Variants
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeEps
      -> Maybe Int
      -> Maybe Int
      -> Maybe PaymentSourceExternalAccounts'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeGiropay
      -> Maybe Text
      -> Maybe SourceTypeIdeal
      -> Maybe Text
      -> Maybe Person
      -> Maybe SourceTypeKlarna
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Object
      -> Maybe SourceTypeMultibanco
      -> Maybe Text
      -> Maybe PaymentSourceObject'
      -> Maybe PaymentSourceOwner'
      -> Maybe SourceTypeP24
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe Bool
      -> Maybe SourceReceiverFlow
      -> Maybe PaymentSourceRecipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe AccountRequirements
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe PaymentSourceSettings'
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe AccountTosAcceptance
      -> Maybe PaymentSourceTransactions'
      -> Maybe PaymentSourceType'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> PaymentSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"amount_received")) Parser
  (Maybe SourceTypeAuBecsDebit
   -> Maybe [PaymentSourceAvailablePayoutMethods']
   -> Maybe SourceTypeBancontact
   -> Maybe Text
   -> Maybe Int
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe PaymentSourceBusinessProfile'
   -> Maybe PaymentSourceBusinessType'
   -> Maybe AccountCapabilities
   -> Maybe SourceTypeCard
   -> Maybe SourceTypeCardPresent
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceCodeVerificationFlow
   -> Maybe LegalEntityCompany
   -> Maybe AccountController
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe PaymentSourceCustomer'Variants
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeEps
   -> Maybe Int
   -> Maybe Int
   -> Maybe PaymentSourceExternalAccounts'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeGiropay
   -> Maybe Text
   -> Maybe SourceTypeIdeal
   -> Maybe Text
   -> Maybe Person
   -> Maybe SourceTypeKlarna
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Object
   -> Maybe SourceTypeMultibanco
   -> Maybe Text
   -> Maybe PaymentSourceObject'
   -> Maybe PaymentSourceOwner'
   -> Maybe SourceTypeP24
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe Bool
   -> Maybe SourceReceiverFlow
   -> Maybe PaymentSourceRecipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe AccountRequirements
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe PaymentSourceSettings'
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe AccountTosAcceptance
   -> Maybe PaymentSourceTransactions'
   -> Maybe PaymentSourceType'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> PaymentSource)
-> Parser (Maybe SourceTypeAuBecsDebit)
-> Parser
     (Maybe [PaymentSourceAvailablePayoutMethods']
      -> Maybe SourceTypeBancontact
      -> Maybe Text
      -> Maybe Int
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe PaymentSourceBusinessProfile'
      -> Maybe PaymentSourceBusinessType'
      -> Maybe AccountCapabilities
      -> Maybe SourceTypeCard
      -> Maybe SourceTypeCardPresent
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceCodeVerificationFlow
      -> Maybe LegalEntityCompany
      -> Maybe AccountController
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe PaymentSourceCustomer'Variants
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeEps
      -> Maybe Int
      -> Maybe Int
      -> Maybe PaymentSourceExternalAccounts'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeGiropay
      -> Maybe Text
      -> Maybe SourceTypeIdeal
      -> Maybe Text
      -> Maybe Person
      -> Maybe SourceTypeKlarna
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Object
      -> Maybe SourceTypeMultibanco
      -> Maybe Text
      -> Maybe PaymentSourceObject'
      -> Maybe PaymentSourceOwner'
      -> Maybe SourceTypeP24
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe Bool
      -> Maybe SourceReceiverFlow
      -> Maybe PaymentSourceRecipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe AccountRequirements
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe PaymentSourceSettings'
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe AccountTosAcceptance
      -> Maybe PaymentSourceTransactions'
      -> Maybe PaymentSourceType'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> PaymentSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe SourceTypeAuBecsDebit)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"au_becs_debit")) Parser
  (Maybe [PaymentSourceAvailablePayoutMethods']
   -> Maybe SourceTypeBancontact
   -> Maybe Text
   -> Maybe Int
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe PaymentSourceBusinessProfile'
   -> Maybe PaymentSourceBusinessType'
   -> Maybe AccountCapabilities
   -> Maybe SourceTypeCard
   -> Maybe SourceTypeCardPresent
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceCodeVerificationFlow
   -> Maybe LegalEntityCompany
   -> Maybe AccountController
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe PaymentSourceCustomer'Variants
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeEps
   -> Maybe Int
   -> Maybe Int
   -> Maybe PaymentSourceExternalAccounts'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeGiropay
   -> Maybe Text
   -> Maybe SourceTypeIdeal
   -> Maybe Text
   -> Maybe Person
   -> Maybe SourceTypeKlarna
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Object
   -> Maybe SourceTypeMultibanco
   -> Maybe Text
   -> Maybe PaymentSourceObject'
   -> Maybe PaymentSourceOwner'
   -> Maybe SourceTypeP24
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe Bool
   -> Maybe SourceReceiverFlow
   -> Maybe PaymentSourceRecipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe AccountRequirements
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe PaymentSourceSettings'
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe AccountTosAcceptance
   -> Maybe PaymentSourceTransactions'
   -> Maybe PaymentSourceType'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> PaymentSource)
-> Parser (Maybe [PaymentSourceAvailablePayoutMethods'])
-> Parser
     (Maybe SourceTypeBancontact
      -> Maybe Text
      -> Maybe Int
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe PaymentSourceBusinessProfile'
      -> Maybe PaymentSourceBusinessType'
      -> Maybe AccountCapabilities
      -> Maybe SourceTypeCard
      -> Maybe SourceTypeCardPresent
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceCodeVerificationFlow
      -> Maybe LegalEntityCompany
      -> Maybe AccountController
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe PaymentSourceCustomer'Variants
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeEps
      -> Maybe Int
      -> Maybe Int
      -> Maybe PaymentSourceExternalAccounts'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeGiropay
      -> Maybe Text
      -> Maybe SourceTypeIdeal
      -> Maybe Text
      -> Maybe Person
      -> Maybe SourceTypeKlarna
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Object
      -> Maybe SourceTypeMultibanco
      -> Maybe Text
      -> Maybe PaymentSourceObject'
      -> Maybe PaymentSourceOwner'
      -> Maybe SourceTypeP24
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe Bool
      -> Maybe SourceReceiverFlow
      -> Maybe PaymentSourceRecipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe AccountRequirements
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe PaymentSourceSettings'
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe AccountTosAcceptance
      -> Maybe PaymentSourceTransactions'
      -> Maybe PaymentSourceType'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> PaymentSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text -> Parser (Maybe [PaymentSourceAvailablePayoutMethods'])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"available_payout_methods")) Parser
  (Maybe SourceTypeBancontact
   -> Maybe Text
   -> Maybe Int
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe PaymentSourceBusinessProfile'
   -> Maybe PaymentSourceBusinessType'
   -> Maybe AccountCapabilities
   -> Maybe SourceTypeCard
   -> Maybe SourceTypeCardPresent
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceCodeVerificationFlow
   -> Maybe LegalEntityCompany
   -> Maybe AccountController
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe PaymentSourceCustomer'Variants
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeEps
   -> Maybe Int
   -> Maybe Int
   -> Maybe PaymentSourceExternalAccounts'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeGiropay
   -> Maybe Text
   -> Maybe SourceTypeIdeal
   -> Maybe Text
   -> Maybe Person
   -> Maybe SourceTypeKlarna
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Object
   -> Maybe SourceTypeMultibanco
   -> Maybe Text
   -> Maybe PaymentSourceObject'
   -> Maybe PaymentSourceOwner'
   -> Maybe SourceTypeP24
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe Bool
   -> Maybe SourceReceiverFlow
   -> Maybe PaymentSourceRecipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe AccountRequirements
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe PaymentSourceSettings'
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe AccountTosAcceptance
   -> Maybe PaymentSourceTransactions'
   -> Maybe PaymentSourceType'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> PaymentSource)
-> Parser (Maybe SourceTypeBancontact)
-> Parser
     (Maybe Text
      -> Maybe Int
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe PaymentSourceBusinessProfile'
      -> Maybe PaymentSourceBusinessType'
      -> Maybe AccountCapabilities
      -> Maybe SourceTypeCard
      -> Maybe SourceTypeCardPresent
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceCodeVerificationFlow
      -> Maybe LegalEntityCompany
      -> Maybe AccountController
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe PaymentSourceCustomer'Variants
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeEps
      -> Maybe Int
      -> Maybe Int
      -> Maybe PaymentSourceExternalAccounts'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeGiropay
      -> Maybe Text
      -> Maybe SourceTypeIdeal
      -> Maybe Text
      -> Maybe Person
      -> Maybe SourceTypeKlarna
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Object
      -> Maybe SourceTypeMultibanco
      -> Maybe Text
      -> Maybe PaymentSourceObject'
      -> Maybe PaymentSourceOwner'
      -> Maybe SourceTypeP24
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe Bool
      -> Maybe SourceReceiverFlow
      -> Maybe PaymentSourceRecipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe AccountRequirements
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe PaymentSourceSettings'
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe AccountTosAcceptance
      -> Maybe PaymentSourceTransactions'
      -> Maybe PaymentSourceType'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> PaymentSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe SourceTypeBancontact)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"bancontact")) Parser
  (Maybe Text
   -> Maybe Int
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe PaymentSourceBusinessProfile'
   -> Maybe PaymentSourceBusinessType'
   -> Maybe AccountCapabilities
   -> Maybe SourceTypeCard
   -> Maybe SourceTypeCardPresent
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceCodeVerificationFlow
   -> Maybe LegalEntityCompany
   -> Maybe AccountController
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe PaymentSourceCustomer'Variants
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeEps
   -> Maybe Int
   -> Maybe Int
   -> Maybe PaymentSourceExternalAccounts'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeGiropay
   -> Maybe Text
   -> Maybe SourceTypeIdeal
   -> Maybe Text
   -> Maybe Person
   -> Maybe SourceTypeKlarna
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Object
   -> Maybe SourceTypeMultibanco
   -> Maybe Text
   -> Maybe PaymentSourceObject'
   -> Maybe PaymentSourceOwner'
   -> Maybe SourceTypeP24
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe Bool
   -> Maybe SourceReceiverFlow
   -> Maybe PaymentSourceRecipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe AccountRequirements
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe PaymentSourceSettings'
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe AccountTosAcceptance
   -> Maybe PaymentSourceTransactions'
   -> Maybe PaymentSourceType'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> PaymentSource)
-> Parser (Maybe Text)
-> Parser
     (Maybe Int
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe PaymentSourceBusinessProfile'
      -> Maybe PaymentSourceBusinessType'
      -> Maybe AccountCapabilities
      -> Maybe SourceTypeCard
      -> Maybe SourceTypeCardPresent
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceCodeVerificationFlow
      -> Maybe LegalEntityCompany
      -> Maybe AccountController
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe PaymentSourceCustomer'Variants
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeEps
      -> Maybe Int
      -> Maybe Int
      -> Maybe PaymentSourceExternalAccounts'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeGiropay
      -> Maybe Text
      -> Maybe SourceTypeIdeal
      -> Maybe Text
      -> Maybe Person
      -> Maybe SourceTypeKlarna
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Object
      -> Maybe SourceTypeMultibanco
      -> Maybe Text
      -> Maybe PaymentSourceObject'
      -> Maybe PaymentSourceOwner'
      -> Maybe SourceTypeP24
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe Bool
      -> Maybe SourceReceiverFlow
      -> Maybe PaymentSourceRecipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe AccountRequirements
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe PaymentSourceSettings'
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe AccountTosAcceptance
      -> Maybe PaymentSourceTransactions'
      -> Maybe PaymentSourceType'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> PaymentSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"bank_name")) Parser
  (Maybe Int
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe PaymentSourceBusinessProfile'
   -> Maybe PaymentSourceBusinessType'
   -> Maybe AccountCapabilities
   -> Maybe SourceTypeCard
   -> Maybe SourceTypeCardPresent
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceCodeVerificationFlow
   -> Maybe LegalEntityCompany
   -> Maybe AccountController
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe PaymentSourceCustomer'Variants
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeEps
   -> Maybe Int
   -> Maybe Int
   -> Maybe PaymentSourceExternalAccounts'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeGiropay
   -> Maybe Text
   -> Maybe SourceTypeIdeal
   -> Maybe Text
   -> Maybe Person
   -> Maybe SourceTypeKlarna
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Object
   -> Maybe SourceTypeMultibanco
   -> Maybe Text
   -> Maybe PaymentSourceObject'
   -> Maybe PaymentSourceOwner'
   -> Maybe SourceTypeP24
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe Bool
   -> Maybe SourceReceiverFlow
   -> Maybe PaymentSourceRecipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe AccountRequirements
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe PaymentSourceSettings'
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe AccountTosAcceptance
   -> Maybe PaymentSourceTransactions'
   -> Maybe PaymentSourceType'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> PaymentSource)
-> Parser (Maybe Int)
-> Parser
     (Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe PaymentSourceBusinessProfile'
      -> Maybe PaymentSourceBusinessType'
      -> Maybe AccountCapabilities
      -> Maybe SourceTypeCard
      -> Maybe SourceTypeCardPresent
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceCodeVerificationFlow
      -> Maybe LegalEntityCompany
      -> Maybe AccountController
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe PaymentSourceCustomer'Variants
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeEps
      -> Maybe Int
      -> Maybe Int
      -> Maybe PaymentSourceExternalAccounts'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeGiropay
      -> Maybe Text
      -> Maybe SourceTypeIdeal
      -> Maybe Text
      -> Maybe Person
      -> Maybe SourceTypeKlarna
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Object
      -> Maybe SourceTypeMultibanco
      -> Maybe Text
      -> Maybe PaymentSourceObject'
      -> Maybe PaymentSourceOwner'
      -> Maybe SourceTypeP24
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe Bool
      -> Maybe SourceReceiverFlow
      -> Maybe PaymentSourceRecipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe AccountRequirements
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe PaymentSourceSettings'
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe AccountTosAcceptance
      -> Maybe PaymentSourceTransactions'
      -> Maybe PaymentSourceType'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> PaymentSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"bitcoin_amount")) Parser
  (Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe PaymentSourceBusinessProfile'
   -> Maybe PaymentSourceBusinessType'
   -> Maybe AccountCapabilities
   -> Maybe SourceTypeCard
   -> Maybe SourceTypeCardPresent
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceCodeVerificationFlow
   -> Maybe LegalEntityCompany
   -> Maybe AccountController
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe PaymentSourceCustomer'Variants
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeEps
   -> Maybe Int
   -> Maybe Int
   -> Maybe PaymentSourceExternalAccounts'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeGiropay
   -> Maybe Text
   -> Maybe SourceTypeIdeal
   -> Maybe Text
   -> Maybe Person
   -> Maybe SourceTypeKlarna
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Object
   -> Maybe SourceTypeMultibanco
   -> Maybe Text
   -> Maybe PaymentSourceObject'
   -> Maybe PaymentSourceOwner'
   -> Maybe SourceTypeP24
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe Bool
   -> Maybe SourceReceiverFlow
   -> Maybe PaymentSourceRecipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe AccountRequirements
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe PaymentSourceSettings'
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe AccountTosAcceptance
   -> Maybe PaymentSourceTransactions'
   -> Maybe PaymentSourceType'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> PaymentSource)
-> Parser (Maybe Int)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe PaymentSourceBusinessProfile'
      -> Maybe PaymentSourceBusinessType'
      -> Maybe AccountCapabilities
      -> Maybe SourceTypeCard
      -> Maybe SourceTypeCardPresent
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceCodeVerificationFlow
      -> Maybe LegalEntityCompany
      -> Maybe AccountController
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe PaymentSourceCustomer'Variants
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeEps
      -> Maybe Int
      -> Maybe Int
      -> Maybe PaymentSourceExternalAccounts'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeGiropay
      -> Maybe Text
      -> Maybe SourceTypeIdeal
      -> Maybe Text
      -> Maybe Person
      -> Maybe SourceTypeKlarna
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Object
      -> Maybe SourceTypeMultibanco
      -> Maybe Text
      -> Maybe PaymentSourceObject'
      -> Maybe PaymentSourceOwner'
      -> Maybe SourceTypeP24
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe Bool
      -> Maybe SourceReceiverFlow
      -> Maybe PaymentSourceRecipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe AccountRequirements
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe PaymentSourceSettings'
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe AccountTosAcceptance
      -> Maybe PaymentSourceTransactions'
      -> Maybe PaymentSourceType'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> PaymentSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"bitcoin_amount_received")) Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe PaymentSourceBusinessProfile'
   -> Maybe PaymentSourceBusinessType'
   -> Maybe AccountCapabilities
   -> Maybe SourceTypeCard
   -> Maybe SourceTypeCardPresent
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceCodeVerificationFlow
   -> Maybe LegalEntityCompany
   -> Maybe AccountController
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe PaymentSourceCustomer'Variants
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeEps
   -> Maybe Int
   -> Maybe Int
   -> Maybe PaymentSourceExternalAccounts'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeGiropay
   -> Maybe Text
   -> Maybe SourceTypeIdeal
   -> Maybe Text
   -> Maybe Person
   -> Maybe SourceTypeKlarna
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Object
   -> Maybe SourceTypeMultibanco
   -> Maybe Text
   -> Maybe PaymentSourceObject'
   -> Maybe PaymentSourceOwner'
   -> Maybe SourceTypeP24
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe Bool
   -> Maybe SourceReceiverFlow
   -> Maybe PaymentSourceRecipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe AccountRequirements
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe PaymentSourceSettings'
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe AccountTosAcceptance
   -> Maybe PaymentSourceTransactions'
   -> Maybe PaymentSourceType'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> PaymentSource)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe PaymentSourceBusinessProfile'
      -> Maybe PaymentSourceBusinessType'
      -> Maybe AccountCapabilities
      -> Maybe SourceTypeCard
      -> Maybe SourceTypeCardPresent
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceCodeVerificationFlow
      -> Maybe LegalEntityCompany
      -> Maybe AccountController
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe PaymentSourceCustomer'Variants
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeEps
      -> Maybe Int
      -> Maybe Int
      -> Maybe PaymentSourceExternalAccounts'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeGiropay
      -> Maybe Text
      -> Maybe SourceTypeIdeal
      -> Maybe Text
      -> Maybe Person
      -> Maybe SourceTypeKlarna
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Object
      -> Maybe SourceTypeMultibanco
      -> Maybe Text
      -> Maybe PaymentSourceObject'
      -> Maybe PaymentSourceOwner'
      -> Maybe SourceTypeP24
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe Bool
      -> Maybe SourceReceiverFlow
      -> Maybe PaymentSourceRecipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe AccountRequirements
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe PaymentSourceSettings'
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe AccountTosAcceptance
      -> Maybe PaymentSourceTransactions'
      -> Maybe PaymentSourceType'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> PaymentSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"bitcoin_uri")) Parser
  (Maybe Text
   -> Maybe PaymentSourceBusinessProfile'
   -> Maybe PaymentSourceBusinessType'
   -> Maybe AccountCapabilities
   -> Maybe SourceTypeCard
   -> Maybe SourceTypeCardPresent
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceCodeVerificationFlow
   -> Maybe LegalEntityCompany
   -> Maybe AccountController
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe PaymentSourceCustomer'Variants
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeEps
   -> Maybe Int
   -> Maybe Int
   -> Maybe PaymentSourceExternalAccounts'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeGiropay
   -> Maybe Text
   -> Maybe SourceTypeIdeal
   -> Maybe Text
   -> Maybe Person
   -> Maybe SourceTypeKlarna
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Object
   -> Maybe SourceTypeMultibanco
   -> Maybe Text
   -> Maybe PaymentSourceObject'
   -> Maybe PaymentSourceOwner'
   -> Maybe SourceTypeP24
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe Bool
   -> Maybe SourceReceiverFlow
   -> Maybe PaymentSourceRecipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe AccountRequirements
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe PaymentSourceSettings'
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe AccountTosAcceptance
   -> Maybe PaymentSourceTransactions'
   -> Maybe PaymentSourceType'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> PaymentSource)
-> Parser (Maybe Text)
-> Parser
     (Maybe PaymentSourceBusinessProfile'
      -> Maybe PaymentSourceBusinessType'
      -> Maybe AccountCapabilities
      -> Maybe SourceTypeCard
      -> Maybe SourceTypeCardPresent
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceCodeVerificationFlow
      -> Maybe LegalEntityCompany
      -> Maybe AccountController
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe PaymentSourceCustomer'Variants
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeEps
      -> Maybe Int
      -> Maybe Int
      -> Maybe PaymentSourceExternalAccounts'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeGiropay
      -> Maybe Text
      -> Maybe SourceTypeIdeal
      -> Maybe Text
      -> Maybe Person
      -> Maybe SourceTypeKlarna
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Object
      -> Maybe SourceTypeMultibanco
      -> Maybe Text
      -> Maybe PaymentSourceObject'
      -> Maybe PaymentSourceOwner'
      -> Maybe SourceTypeP24
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe Bool
      -> Maybe SourceReceiverFlow
      -> Maybe PaymentSourceRecipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe AccountRequirements
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe PaymentSourceSettings'
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe AccountTosAcceptance
      -> Maybe PaymentSourceTransactions'
      -> Maybe PaymentSourceType'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> PaymentSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"brand")) Parser
  (Maybe PaymentSourceBusinessProfile'
   -> Maybe PaymentSourceBusinessType'
   -> Maybe AccountCapabilities
   -> Maybe SourceTypeCard
   -> Maybe SourceTypeCardPresent
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceCodeVerificationFlow
   -> Maybe LegalEntityCompany
   -> Maybe AccountController
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe PaymentSourceCustomer'Variants
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeEps
   -> Maybe Int
   -> Maybe Int
   -> Maybe PaymentSourceExternalAccounts'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeGiropay
   -> Maybe Text
   -> Maybe SourceTypeIdeal
   -> Maybe Text
   -> Maybe Person
   -> Maybe SourceTypeKlarna
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Object
   -> Maybe SourceTypeMultibanco
   -> Maybe Text
   -> Maybe PaymentSourceObject'
   -> Maybe PaymentSourceOwner'
   -> Maybe SourceTypeP24
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe Bool
   -> Maybe SourceReceiverFlow
   -> Maybe PaymentSourceRecipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe AccountRequirements
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe PaymentSourceSettings'
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe AccountTosAcceptance
   -> Maybe PaymentSourceTransactions'
   -> Maybe PaymentSourceType'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> PaymentSource)
-> Parser (Maybe PaymentSourceBusinessProfile')
-> Parser
     (Maybe PaymentSourceBusinessType'
      -> Maybe AccountCapabilities
      -> Maybe SourceTypeCard
      -> Maybe SourceTypeCardPresent
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceCodeVerificationFlow
      -> Maybe LegalEntityCompany
      -> Maybe AccountController
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe PaymentSourceCustomer'Variants
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeEps
      -> Maybe Int
      -> Maybe Int
      -> Maybe PaymentSourceExternalAccounts'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeGiropay
      -> Maybe Text
      -> Maybe SourceTypeIdeal
      -> Maybe Text
      -> Maybe Person
      -> Maybe SourceTypeKlarna
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Object
      -> Maybe SourceTypeMultibanco
      -> Maybe Text
      -> Maybe PaymentSourceObject'
      -> Maybe PaymentSourceOwner'
      -> Maybe SourceTypeP24
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe Bool
      -> Maybe SourceReceiverFlow
      -> Maybe PaymentSourceRecipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe AccountRequirements
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe PaymentSourceSettings'
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe AccountTosAcceptance
      -> Maybe PaymentSourceTransactions'
      -> Maybe PaymentSourceType'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> PaymentSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe PaymentSourceBusinessProfile')
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"business_profile")) Parser
  (Maybe PaymentSourceBusinessType'
   -> Maybe AccountCapabilities
   -> Maybe SourceTypeCard
   -> Maybe SourceTypeCardPresent
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceCodeVerificationFlow
   -> Maybe LegalEntityCompany
   -> Maybe AccountController
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe PaymentSourceCustomer'Variants
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeEps
   -> Maybe Int
   -> Maybe Int
   -> Maybe PaymentSourceExternalAccounts'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeGiropay
   -> Maybe Text
   -> Maybe SourceTypeIdeal
   -> Maybe Text
   -> Maybe Person
   -> Maybe SourceTypeKlarna
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Object
   -> Maybe SourceTypeMultibanco
   -> Maybe Text
   -> Maybe PaymentSourceObject'
   -> Maybe PaymentSourceOwner'
   -> Maybe SourceTypeP24
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe Bool
   -> Maybe SourceReceiverFlow
   -> Maybe PaymentSourceRecipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe AccountRequirements
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe PaymentSourceSettings'
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe AccountTosAcceptance
   -> Maybe PaymentSourceTransactions'
   -> Maybe PaymentSourceType'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> PaymentSource)
-> Parser (Maybe PaymentSourceBusinessType')
-> Parser
     (Maybe AccountCapabilities
      -> Maybe SourceTypeCard
      -> Maybe SourceTypeCardPresent
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceCodeVerificationFlow
      -> Maybe LegalEntityCompany
      -> Maybe AccountController
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe PaymentSourceCustomer'Variants
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeEps
      -> Maybe Int
      -> Maybe Int
      -> Maybe PaymentSourceExternalAccounts'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeGiropay
      -> Maybe Text
      -> Maybe SourceTypeIdeal
      -> Maybe Text
      -> Maybe Person
      -> Maybe SourceTypeKlarna
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Object
      -> Maybe SourceTypeMultibanco
      -> Maybe Text
      -> Maybe PaymentSourceObject'
      -> Maybe PaymentSourceOwner'
      -> Maybe SourceTypeP24
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe Bool
      -> Maybe SourceReceiverFlow
      -> Maybe PaymentSourceRecipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe AccountRequirements
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe PaymentSourceSettings'
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe AccountTosAcceptance
      -> Maybe PaymentSourceTransactions'
      -> Maybe PaymentSourceType'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> PaymentSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe PaymentSourceBusinessType')
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"business_type")) Parser
  (Maybe AccountCapabilities
   -> Maybe SourceTypeCard
   -> Maybe SourceTypeCardPresent
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceCodeVerificationFlow
   -> Maybe LegalEntityCompany
   -> Maybe AccountController
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe PaymentSourceCustomer'Variants
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeEps
   -> Maybe Int
   -> Maybe Int
   -> Maybe PaymentSourceExternalAccounts'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeGiropay
   -> Maybe Text
   -> Maybe SourceTypeIdeal
   -> Maybe Text
   -> Maybe Person
   -> Maybe SourceTypeKlarna
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Object
   -> Maybe SourceTypeMultibanco
   -> Maybe Text
   -> Maybe PaymentSourceObject'
   -> Maybe PaymentSourceOwner'
   -> Maybe SourceTypeP24
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe Bool
   -> Maybe SourceReceiverFlow
   -> Maybe PaymentSourceRecipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe AccountRequirements
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe PaymentSourceSettings'
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe AccountTosAcceptance
   -> Maybe PaymentSourceTransactions'
   -> Maybe PaymentSourceType'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> PaymentSource)
-> Parser (Maybe AccountCapabilities)
-> Parser
     (Maybe SourceTypeCard
      -> Maybe SourceTypeCardPresent
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceCodeVerificationFlow
      -> Maybe LegalEntityCompany
      -> Maybe AccountController
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe PaymentSourceCustomer'Variants
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeEps
      -> Maybe Int
      -> Maybe Int
      -> Maybe PaymentSourceExternalAccounts'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeGiropay
      -> Maybe Text
      -> Maybe SourceTypeIdeal
      -> Maybe Text
      -> Maybe Person
      -> Maybe SourceTypeKlarna
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Object
      -> Maybe SourceTypeMultibanco
      -> Maybe Text
      -> Maybe PaymentSourceObject'
      -> Maybe PaymentSourceOwner'
      -> Maybe SourceTypeP24
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe Bool
      -> Maybe SourceReceiverFlow
      -> Maybe PaymentSourceRecipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe AccountRequirements
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe PaymentSourceSettings'
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe AccountTosAcceptance
      -> Maybe PaymentSourceTransactions'
      -> Maybe PaymentSourceType'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> PaymentSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe AccountCapabilities)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"capabilities")) Parser
  (Maybe SourceTypeCard
   -> Maybe SourceTypeCardPresent
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceCodeVerificationFlow
   -> Maybe LegalEntityCompany
   -> Maybe AccountController
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe PaymentSourceCustomer'Variants
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeEps
   -> Maybe Int
   -> Maybe Int
   -> Maybe PaymentSourceExternalAccounts'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeGiropay
   -> Maybe Text
   -> Maybe SourceTypeIdeal
   -> Maybe Text
   -> Maybe Person
   -> Maybe SourceTypeKlarna
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Object
   -> Maybe SourceTypeMultibanco
   -> Maybe Text
   -> Maybe PaymentSourceObject'
   -> Maybe PaymentSourceOwner'
   -> Maybe SourceTypeP24
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe Bool
   -> Maybe SourceReceiverFlow
   -> Maybe PaymentSourceRecipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe AccountRequirements
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe PaymentSourceSettings'
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe AccountTosAcceptance
   -> Maybe PaymentSourceTransactions'
   -> Maybe PaymentSourceType'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> PaymentSource)
-> Parser (Maybe SourceTypeCard)
-> Parser
     (Maybe SourceTypeCardPresent
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceCodeVerificationFlow
      -> Maybe LegalEntityCompany
      -> Maybe AccountController
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe PaymentSourceCustomer'Variants
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeEps
      -> Maybe Int
      -> Maybe Int
      -> Maybe PaymentSourceExternalAccounts'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeGiropay
      -> Maybe Text
      -> Maybe SourceTypeIdeal
      -> Maybe Text
      -> Maybe Person
      -> Maybe SourceTypeKlarna
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Object
      -> Maybe SourceTypeMultibanco
      -> Maybe Text
      -> Maybe PaymentSourceObject'
      -> Maybe PaymentSourceOwner'
      -> Maybe SourceTypeP24
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe Bool
      -> Maybe SourceReceiverFlow
      -> Maybe PaymentSourceRecipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe AccountRequirements
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe PaymentSourceSettings'
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe AccountTosAcceptance
      -> Maybe PaymentSourceTransactions'
      -> Maybe PaymentSourceType'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> PaymentSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe SourceTypeCard)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"card")) Parser
  (Maybe SourceTypeCardPresent
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceCodeVerificationFlow
   -> Maybe LegalEntityCompany
   -> Maybe AccountController
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe PaymentSourceCustomer'Variants
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeEps
   -> Maybe Int
   -> Maybe Int
   -> Maybe PaymentSourceExternalAccounts'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeGiropay
   -> Maybe Text
   -> Maybe SourceTypeIdeal
   -> Maybe Text
   -> Maybe Person
   -> Maybe SourceTypeKlarna
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Object
   -> Maybe SourceTypeMultibanco
   -> Maybe Text
   -> Maybe PaymentSourceObject'
   -> Maybe PaymentSourceOwner'
   -> Maybe SourceTypeP24
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe Bool
   -> Maybe SourceReceiverFlow
   -> Maybe PaymentSourceRecipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe AccountRequirements
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe PaymentSourceSettings'
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe AccountTosAcceptance
   -> Maybe PaymentSourceTransactions'
   -> Maybe PaymentSourceType'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> PaymentSource)
-> Parser (Maybe SourceTypeCardPresent)
-> Parser
     (Maybe Bool
      -> Maybe Text
      -> Maybe SourceCodeVerificationFlow
      -> Maybe LegalEntityCompany
      -> Maybe AccountController
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe PaymentSourceCustomer'Variants
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeEps
      -> Maybe Int
      -> Maybe Int
      -> Maybe PaymentSourceExternalAccounts'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeGiropay
      -> Maybe Text
      -> Maybe SourceTypeIdeal
      -> Maybe Text
      -> Maybe Person
      -> Maybe SourceTypeKlarna
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Object
      -> Maybe SourceTypeMultibanco
      -> Maybe Text
      -> Maybe PaymentSourceObject'
      -> Maybe PaymentSourceOwner'
      -> Maybe SourceTypeP24
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe Bool
      -> Maybe SourceReceiverFlow
      -> Maybe PaymentSourceRecipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe AccountRequirements
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe PaymentSourceSettings'
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe AccountTosAcceptance
      -> Maybe PaymentSourceTransactions'
      -> Maybe PaymentSourceType'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> PaymentSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe SourceTypeCardPresent)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"card_present")) Parser
  (Maybe Bool
   -> Maybe Text
   -> Maybe SourceCodeVerificationFlow
   -> Maybe LegalEntityCompany
   -> Maybe AccountController
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe PaymentSourceCustomer'Variants
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeEps
   -> Maybe Int
   -> Maybe Int
   -> Maybe PaymentSourceExternalAccounts'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeGiropay
   -> Maybe Text
   -> Maybe SourceTypeIdeal
   -> Maybe Text
   -> Maybe Person
   -> Maybe SourceTypeKlarna
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Object
   -> Maybe SourceTypeMultibanco
   -> Maybe Text
   -> Maybe PaymentSourceObject'
   -> Maybe PaymentSourceOwner'
   -> Maybe SourceTypeP24
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe Bool
   -> Maybe SourceReceiverFlow
   -> Maybe PaymentSourceRecipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe AccountRequirements
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe PaymentSourceSettings'
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe AccountTosAcceptance
   -> Maybe PaymentSourceTransactions'
   -> Maybe PaymentSourceType'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> PaymentSource)
-> Parser (Maybe Bool)
-> Parser
     (Maybe Text
      -> Maybe SourceCodeVerificationFlow
      -> Maybe LegalEntityCompany
      -> Maybe AccountController
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe PaymentSourceCustomer'Variants
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeEps
      -> Maybe Int
      -> Maybe Int
      -> Maybe PaymentSourceExternalAccounts'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeGiropay
      -> Maybe Text
      -> Maybe SourceTypeIdeal
      -> Maybe Text
      -> Maybe Person
      -> Maybe SourceTypeKlarna
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Object
      -> Maybe SourceTypeMultibanco
      -> Maybe Text
      -> Maybe PaymentSourceObject'
      -> Maybe PaymentSourceOwner'
      -> Maybe SourceTypeP24
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe Bool
      -> Maybe SourceReceiverFlow
      -> Maybe PaymentSourceRecipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe AccountRequirements
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe PaymentSourceSettings'
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe AccountTosAcceptance
      -> Maybe PaymentSourceTransactions'
      -> Maybe PaymentSourceType'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> PaymentSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"charges_enabled")) Parser
  (Maybe Text
   -> Maybe SourceCodeVerificationFlow
   -> Maybe LegalEntityCompany
   -> Maybe AccountController
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe PaymentSourceCustomer'Variants
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeEps
   -> Maybe Int
   -> Maybe Int
   -> Maybe PaymentSourceExternalAccounts'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeGiropay
   -> Maybe Text
   -> Maybe SourceTypeIdeal
   -> Maybe Text
   -> Maybe Person
   -> Maybe SourceTypeKlarna
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Object
   -> Maybe SourceTypeMultibanco
   -> Maybe Text
   -> Maybe PaymentSourceObject'
   -> Maybe PaymentSourceOwner'
   -> Maybe SourceTypeP24
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe Bool
   -> Maybe SourceReceiverFlow
   -> Maybe PaymentSourceRecipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe AccountRequirements
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe PaymentSourceSettings'
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe AccountTosAcceptance
   -> Maybe PaymentSourceTransactions'
   -> Maybe PaymentSourceType'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> PaymentSource)
-> Parser (Maybe Text)
-> Parser
     (Maybe SourceCodeVerificationFlow
      -> Maybe LegalEntityCompany
      -> Maybe AccountController
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe PaymentSourceCustomer'Variants
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeEps
      -> Maybe Int
      -> Maybe Int
      -> Maybe PaymentSourceExternalAccounts'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeGiropay
      -> Maybe Text
      -> Maybe SourceTypeIdeal
      -> Maybe Text
      -> Maybe Person
      -> Maybe SourceTypeKlarna
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Object
      -> Maybe SourceTypeMultibanco
      -> Maybe Text
      -> Maybe PaymentSourceObject'
      -> Maybe PaymentSourceOwner'
      -> Maybe SourceTypeP24
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe Bool
      -> Maybe SourceReceiverFlow
      -> Maybe PaymentSourceRecipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe AccountRequirements
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe PaymentSourceSettings'
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe AccountTosAcceptance
      -> Maybe PaymentSourceTransactions'
      -> Maybe PaymentSourceType'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> PaymentSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"client_secret")) Parser
  (Maybe SourceCodeVerificationFlow
   -> Maybe LegalEntityCompany
   -> Maybe AccountController
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe PaymentSourceCustomer'Variants
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeEps
   -> Maybe Int
   -> Maybe Int
   -> Maybe PaymentSourceExternalAccounts'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeGiropay
   -> Maybe Text
   -> Maybe SourceTypeIdeal
   -> Maybe Text
   -> Maybe Person
   -> Maybe SourceTypeKlarna
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Object
   -> Maybe SourceTypeMultibanco
   -> Maybe Text
   -> Maybe PaymentSourceObject'
   -> Maybe PaymentSourceOwner'
   -> Maybe SourceTypeP24
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe Bool
   -> Maybe SourceReceiverFlow
   -> Maybe PaymentSourceRecipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe AccountRequirements
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe PaymentSourceSettings'
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe AccountTosAcceptance
   -> Maybe PaymentSourceTransactions'
   -> Maybe PaymentSourceType'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> PaymentSource)
-> Parser (Maybe SourceCodeVerificationFlow)
-> Parser
     (Maybe LegalEntityCompany
      -> Maybe AccountController
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe PaymentSourceCustomer'Variants
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeEps
      -> Maybe Int
      -> Maybe Int
      -> Maybe PaymentSourceExternalAccounts'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeGiropay
      -> Maybe Text
      -> Maybe SourceTypeIdeal
      -> Maybe Text
      -> Maybe Person
      -> Maybe SourceTypeKlarna
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Object
      -> Maybe SourceTypeMultibanco
      -> Maybe Text
      -> Maybe PaymentSourceObject'
      -> Maybe PaymentSourceOwner'
      -> Maybe SourceTypeP24
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe Bool
      -> Maybe SourceReceiverFlow
      -> Maybe PaymentSourceRecipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe AccountRequirements
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe PaymentSourceSettings'
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe AccountTosAcceptance
      -> Maybe PaymentSourceTransactions'
      -> Maybe PaymentSourceType'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> PaymentSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe SourceCodeVerificationFlow)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"code_verification")) Parser
  (Maybe LegalEntityCompany
   -> Maybe AccountController
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe PaymentSourceCustomer'Variants
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeEps
   -> Maybe Int
   -> Maybe Int
   -> Maybe PaymentSourceExternalAccounts'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeGiropay
   -> Maybe Text
   -> Maybe SourceTypeIdeal
   -> Maybe Text
   -> Maybe Person
   -> Maybe SourceTypeKlarna
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Object
   -> Maybe SourceTypeMultibanco
   -> Maybe Text
   -> Maybe PaymentSourceObject'
   -> Maybe PaymentSourceOwner'
   -> Maybe SourceTypeP24
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe Bool
   -> Maybe SourceReceiverFlow
   -> Maybe PaymentSourceRecipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe AccountRequirements
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe PaymentSourceSettings'
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe AccountTosAcceptance
   -> Maybe PaymentSourceTransactions'
   -> Maybe PaymentSourceType'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> PaymentSource)
-> Parser (Maybe LegalEntityCompany)
-> Parser
     (Maybe AccountController
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe PaymentSourceCustomer'Variants
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeEps
      -> Maybe Int
      -> Maybe Int
      -> Maybe PaymentSourceExternalAccounts'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeGiropay
      -> Maybe Text
      -> Maybe SourceTypeIdeal
      -> Maybe Text
      -> Maybe Person
      -> Maybe SourceTypeKlarna
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Object
      -> Maybe SourceTypeMultibanco
      -> Maybe Text
      -> Maybe PaymentSourceObject'
      -> Maybe PaymentSourceOwner'
      -> Maybe SourceTypeP24
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe Bool
      -> Maybe SourceReceiverFlow
      -> Maybe PaymentSourceRecipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe AccountRequirements
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe PaymentSourceSettings'
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe AccountTosAcceptance
      -> Maybe PaymentSourceTransactions'
      -> Maybe PaymentSourceType'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> PaymentSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe LegalEntityCompany)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"company")) Parser
  (Maybe AccountController
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe PaymentSourceCustomer'Variants
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeEps
   -> Maybe Int
   -> Maybe Int
   -> Maybe PaymentSourceExternalAccounts'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeGiropay
   -> Maybe Text
   -> Maybe SourceTypeIdeal
   -> Maybe Text
   -> Maybe Person
   -> Maybe SourceTypeKlarna
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Object
   -> Maybe SourceTypeMultibanco
   -> Maybe Text
   -> Maybe PaymentSourceObject'
   -> Maybe PaymentSourceOwner'
   -> Maybe SourceTypeP24
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe Bool
   -> Maybe SourceReceiverFlow
   -> Maybe PaymentSourceRecipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe AccountRequirements
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe PaymentSourceSettings'
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe AccountTosAcceptance
   -> Maybe PaymentSourceTransactions'
   -> Maybe PaymentSourceType'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> PaymentSource)
-> Parser (Maybe AccountController)
-> Parser
     (Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe PaymentSourceCustomer'Variants
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeEps
      -> Maybe Int
      -> Maybe Int
      -> Maybe PaymentSourceExternalAccounts'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeGiropay
      -> Maybe Text
      -> Maybe SourceTypeIdeal
      -> Maybe Text
      -> Maybe Person
      -> Maybe SourceTypeKlarna
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Object
      -> Maybe SourceTypeMultibanco
      -> Maybe Text
      -> Maybe PaymentSourceObject'
      -> Maybe PaymentSourceOwner'
      -> Maybe SourceTypeP24
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe Bool
      -> Maybe SourceReceiverFlow
      -> Maybe PaymentSourceRecipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe AccountRequirements
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe PaymentSourceSettings'
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe AccountTosAcceptance
      -> Maybe PaymentSourceTransactions'
      -> Maybe PaymentSourceType'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> PaymentSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe AccountController)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"controller")) Parser
  (Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe PaymentSourceCustomer'Variants
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeEps
   -> Maybe Int
   -> Maybe Int
   -> Maybe PaymentSourceExternalAccounts'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeGiropay
   -> Maybe Text
   -> Maybe SourceTypeIdeal
   -> Maybe Text
   -> Maybe Person
   -> Maybe SourceTypeKlarna
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Object
   -> Maybe SourceTypeMultibanco
   -> Maybe Text
   -> Maybe PaymentSourceObject'
   -> Maybe PaymentSourceOwner'
   -> Maybe SourceTypeP24
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe Bool
   -> Maybe SourceReceiverFlow
   -> Maybe PaymentSourceRecipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe AccountRequirements
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe PaymentSourceSettings'
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe AccountTosAcceptance
   -> Maybe PaymentSourceTransactions'
   -> Maybe PaymentSourceType'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> PaymentSource)
-> Parser (Maybe Text)
-> Parser
     (Maybe Int
      -> Maybe Text
      -> Maybe PaymentSourceCustomer'Variants
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeEps
      -> Maybe Int
      -> Maybe Int
      -> Maybe PaymentSourceExternalAccounts'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeGiropay
      -> Maybe Text
      -> Maybe SourceTypeIdeal
      -> Maybe Text
      -> Maybe Person
      -> Maybe SourceTypeKlarna
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Object
      -> Maybe SourceTypeMultibanco
      -> Maybe Text
      -> Maybe PaymentSourceObject'
      -> Maybe PaymentSourceOwner'
      -> Maybe SourceTypeP24
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe Bool
      -> Maybe SourceReceiverFlow
      -> Maybe PaymentSourceRecipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe AccountRequirements
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe PaymentSourceSettings'
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe AccountTosAcceptance
      -> Maybe PaymentSourceTransactions'
      -> Maybe PaymentSourceType'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> PaymentSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"country")) Parser
  (Maybe Int
   -> Maybe Text
   -> Maybe PaymentSourceCustomer'Variants
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeEps
   -> Maybe Int
   -> Maybe Int
   -> Maybe PaymentSourceExternalAccounts'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeGiropay
   -> Maybe Text
   -> Maybe SourceTypeIdeal
   -> Maybe Text
   -> Maybe Person
   -> Maybe SourceTypeKlarna
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Object
   -> Maybe SourceTypeMultibanco
   -> Maybe Text
   -> Maybe PaymentSourceObject'
   -> Maybe PaymentSourceOwner'
   -> Maybe SourceTypeP24
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe Bool
   -> Maybe SourceReceiverFlow
   -> Maybe PaymentSourceRecipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe AccountRequirements
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe PaymentSourceSettings'
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe AccountTosAcceptance
   -> Maybe PaymentSourceTransactions'
   -> Maybe PaymentSourceType'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> PaymentSource)
-> Parser (Maybe Int)
-> Parser
     (Maybe Text
      -> Maybe PaymentSourceCustomer'Variants
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeEps
      -> Maybe Int
      -> Maybe Int
      -> Maybe PaymentSourceExternalAccounts'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeGiropay
      -> Maybe Text
      -> Maybe SourceTypeIdeal
      -> Maybe Text
      -> Maybe Person
      -> Maybe SourceTypeKlarna
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Object
      -> Maybe SourceTypeMultibanco
      -> Maybe Text
      -> Maybe PaymentSourceObject'
      -> Maybe PaymentSourceOwner'
      -> Maybe SourceTypeP24
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe Bool
      -> Maybe SourceReceiverFlow
      -> Maybe PaymentSourceRecipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe AccountRequirements
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe PaymentSourceSettings'
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe AccountTosAcceptance
      -> Maybe PaymentSourceTransactions'
      -> Maybe PaymentSourceType'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> PaymentSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"created")) Parser
  (Maybe Text
   -> Maybe PaymentSourceCustomer'Variants
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeEps
   -> Maybe Int
   -> Maybe Int
   -> Maybe PaymentSourceExternalAccounts'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeGiropay
   -> Maybe Text
   -> Maybe SourceTypeIdeal
   -> Maybe Text
   -> Maybe Person
   -> Maybe SourceTypeKlarna
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Object
   -> Maybe SourceTypeMultibanco
   -> Maybe Text
   -> Maybe PaymentSourceObject'
   -> Maybe PaymentSourceOwner'
   -> Maybe SourceTypeP24
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe Bool
   -> Maybe SourceReceiverFlow
   -> Maybe PaymentSourceRecipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe AccountRequirements
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe PaymentSourceSettings'
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe AccountTosAcceptance
   -> Maybe PaymentSourceTransactions'
   -> Maybe PaymentSourceType'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> PaymentSource)
-> Parser (Maybe Text)
-> Parser
     (Maybe PaymentSourceCustomer'Variants
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeEps
      -> Maybe Int
      -> Maybe Int
      -> Maybe PaymentSourceExternalAccounts'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeGiropay
      -> Maybe Text
      -> Maybe SourceTypeIdeal
      -> Maybe Text
      -> Maybe Person
      -> Maybe SourceTypeKlarna
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Object
      -> Maybe SourceTypeMultibanco
      -> Maybe Text
      -> Maybe PaymentSourceObject'
      -> Maybe PaymentSourceOwner'
      -> Maybe SourceTypeP24
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe Bool
      -> Maybe SourceReceiverFlow
      -> Maybe PaymentSourceRecipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe AccountRequirements
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe PaymentSourceSettings'
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe AccountTosAcceptance
      -> Maybe PaymentSourceTransactions'
      -> Maybe PaymentSourceType'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> PaymentSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"currency")) Parser
  (Maybe PaymentSourceCustomer'Variants
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeEps
   -> Maybe Int
   -> Maybe Int
   -> Maybe PaymentSourceExternalAccounts'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeGiropay
   -> Maybe Text
   -> Maybe SourceTypeIdeal
   -> Maybe Text
   -> Maybe Person
   -> Maybe SourceTypeKlarna
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Object
   -> Maybe SourceTypeMultibanco
   -> Maybe Text
   -> Maybe PaymentSourceObject'
   -> Maybe PaymentSourceOwner'
   -> Maybe SourceTypeP24
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe Bool
   -> Maybe SourceReceiverFlow
   -> Maybe PaymentSourceRecipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe AccountRequirements
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe PaymentSourceSettings'
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe AccountTosAcceptance
   -> Maybe PaymentSourceTransactions'
   -> Maybe PaymentSourceType'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> PaymentSource)
-> Parser (Maybe PaymentSourceCustomer'Variants)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeEps
      -> Maybe Int
      -> Maybe Int
      -> Maybe PaymentSourceExternalAccounts'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeGiropay
      -> Maybe Text
      -> Maybe SourceTypeIdeal
      -> Maybe Text
      -> Maybe Person
      -> Maybe SourceTypeKlarna
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Object
      -> Maybe SourceTypeMultibanco
      -> Maybe Text
      -> Maybe PaymentSourceObject'
      -> Maybe PaymentSourceOwner'
      -> Maybe SourceTypeP24
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe Bool
      -> Maybe SourceReceiverFlow
      -> Maybe PaymentSourceRecipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe AccountRequirements
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe PaymentSourceSettings'
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe AccountTosAcceptance
      -> Maybe PaymentSourceTransactions'
      -> Maybe PaymentSourceType'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> PaymentSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe PaymentSourceCustomer'Variants)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"customer")) Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeEps
   -> Maybe Int
   -> Maybe Int
   -> Maybe PaymentSourceExternalAccounts'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeGiropay
   -> Maybe Text
   -> Maybe SourceTypeIdeal
   -> Maybe Text
   -> Maybe Person
   -> Maybe SourceTypeKlarna
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Object
   -> Maybe SourceTypeMultibanco
   -> Maybe Text
   -> Maybe PaymentSourceObject'
   -> Maybe PaymentSourceOwner'
   -> Maybe SourceTypeP24
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe Bool
   -> Maybe SourceReceiverFlow
   -> Maybe PaymentSourceRecipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe AccountRequirements
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe PaymentSourceSettings'
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe AccountTosAcceptance
   -> Maybe PaymentSourceTransactions'
   -> Maybe PaymentSourceType'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> PaymentSource)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeEps
      -> Maybe Int
      -> Maybe Int
      -> Maybe PaymentSourceExternalAccounts'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeGiropay
      -> Maybe Text
      -> Maybe SourceTypeIdeal
      -> Maybe Text
      -> Maybe Person
      -> Maybe SourceTypeKlarna
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Object
      -> Maybe SourceTypeMultibanco
      -> Maybe Text
      -> Maybe PaymentSourceObject'
      -> Maybe PaymentSourceOwner'
      -> Maybe SourceTypeP24
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe Bool
      -> Maybe SourceReceiverFlow
      -> Maybe PaymentSourceRecipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe AccountRequirements
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe PaymentSourceSettings'
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe AccountTosAcceptance
      -> Maybe PaymentSourceTransactions'
      -> Maybe PaymentSourceType'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> PaymentSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"cvc_check")) Parser
  (Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeEps
   -> Maybe Int
   -> Maybe Int
   -> Maybe PaymentSourceExternalAccounts'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeGiropay
   -> Maybe Text
   -> Maybe SourceTypeIdeal
   -> Maybe Text
   -> Maybe Person
   -> Maybe SourceTypeKlarna
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Object
   -> Maybe SourceTypeMultibanco
   -> Maybe Text
   -> Maybe PaymentSourceObject'
   -> Maybe PaymentSourceOwner'
   -> Maybe SourceTypeP24
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe Bool
   -> Maybe SourceReceiverFlow
   -> Maybe PaymentSourceRecipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe AccountRequirements
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe PaymentSourceSettings'
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe AccountTosAcceptance
   -> Maybe PaymentSourceTransactions'
   -> Maybe PaymentSourceType'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> PaymentSource)
-> Parser (Maybe Text)
-> Parser
     (Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeEps
      -> Maybe Int
      -> Maybe Int
      -> Maybe PaymentSourceExternalAccounts'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeGiropay
      -> Maybe Text
      -> Maybe SourceTypeIdeal
      -> Maybe Text
      -> Maybe Person
      -> Maybe SourceTypeKlarna
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Object
      -> Maybe SourceTypeMultibanco
      -> Maybe Text
      -> Maybe PaymentSourceObject'
      -> Maybe PaymentSourceOwner'
      -> Maybe SourceTypeP24
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe Bool
      -> Maybe SourceReceiverFlow
      -> Maybe PaymentSourceRecipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe AccountRequirements
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe PaymentSourceSettings'
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe AccountTosAcceptance
      -> Maybe PaymentSourceTransactions'
      -> Maybe PaymentSourceType'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> PaymentSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"default_currency")) Parser
  (Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeEps
   -> Maybe Int
   -> Maybe Int
   -> Maybe PaymentSourceExternalAccounts'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeGiropay
   -> Maybe Text
   -> Maybe SourceTypeIdeal
   -> Maybe Text
   -> Maybe Person
   -> Maybe SourceTypeKlarna
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Object
   -> Maybe SourceTypeMultibanco
   -> Maybe Text
   -> Maybe PaymentSourceObject'
   -> Maybe PaymentSourceOwner'
   -> Maybe SourceTypeP24
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe Bool
   -> Maybe SourceReceiverFlow
   -> Maybe PaymentSourceRecipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe AccountRequirements
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe PaymentSourceSettings'
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe AccountTosAcceptance
   -> Maybe PaymentSourceTransactions'
   -> Maybe PaymentSourceType'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> PaymentSource)
-> Parser (Maybe Bool)
-> Parser
     (Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeEps
      -> Maybe Int
      -> Maybe Int
      -> Maybe PaymentSourceExternalAccounts'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeGiropay
      -> Maybe Text
      -> Maybe SourceTypeIdeal
      -> Maybe Text
      -> Maybe Person
      -> Maybe SourceTypeKlarna
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Object
      -> Maybe SourceTypeMultibanco
      -> Maybe Text
      -> Maybe PaymentSourceObject'
      -> Maybe PaymentSourceOwner'
      -> Maybe SourceTypeP24
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe Bool
      -> Maybe SourceReceiverFlow
      -> Maybe PaymentSourceRecipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe AccountRequirements
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe PaymentSourceSettings'
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe AccountTosAcceptance
      -> Maybe PaymentSourceTransactions'
      -> Maybe PaymentSourceType'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> PaymentSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"default_for_currency")) Parser
  (Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeEps
   -> Maybe Int
   -> Maybe Int
   -> Maybe PaymentSourceExternalAccounts'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeGiropay
   -> Maybe Text
   -> Maybe SourceTypeIdeal
   -> Maybe Text
   -> Maybe Person
   -> Maybe SourceTypeKlarna
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Object
   -> Maybe SourceTypeMultibanco
   -> Maybe Text
   -> Maybe PaymentSourceObject'
   -> Maybe PaymentSourceOwner'
   -> Maybe SourceTypeP24
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe Bool
   -> Maybe SourceReceiverFlow
   -> Maybe PaymentSourceRecipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe AccountRequirements
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe PaymentSourceSettings'
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe AccountTosAcceptance
   -> Maybe PaymentSourceTransactions'
   -> Maybe PaymentSourceType'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> PaymentSource)
-> Parser (Maybe Text)
-> Parser
     (Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeEps
      -> Maybe Int
      -> Maybe Int
      -> Maybe PaymentSourceExternalAccounts'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeGiropay
      -> Maybe Text
      -> Maybe SourceTypeIdeal
      -> Maybe Text
      -> Maybe Person
      -> Maybe SourceTypeKlarna
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Object
      -> Maybe SourceTypeMultibanco
      -> Maybe Text
      -> Maybe PaymentSourceObject'
      -> Maybe PaymentSourceOwner'
      -> Maybe SourceTypeP24
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe Bool
      -> Maybe SourceReceiverFlow
      -> Maybe PaymentSourceRecipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe AccountRequirements
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe PaymentSourceSettings'
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe AccountTosAcceptance
      -> Maybe PaymentSourceTransactions'
      -> Maybe PaymentSourceType'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> PaymentSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"description")) Parser
  (Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeEps
   -> Maybe Int
   -> Maybe Int
   -> Maybe PaymentSourceExternalAccounts'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeGiropay
   -> Maybe Text
   -> Maybe SourceTypeIdeal
   -> Maybe Text
   -> Maybe Person
   -> Maybe SourceTypeKlarna
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Object
   -> Maybe SourceTypeMultibanco
   -> Maybe Text
   -> Maybe PaymentSourceObject'
   -> Maybe PaymentSourceOwner'
   -> Maybe SourceTypeP24
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe Bool
   -> Maybe SourceReceiverFlow
   -> Maybe PaymentSourceRecipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe AccountRequirements
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe PaymentSourceSettings'
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe AccountTosAcceptance
   -> Maybe PaymentSourceTransactions'
   -> Maybe PaymentSourceType'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> PaymentSource)
-> Parser (Maybe Bool)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeEps
      -> Maybe Int
      -> Maybe Int
      -> Maybe PaymentSourceExternalAccounts'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeGiropay
      -> Maybe Text
      -> Maybe SourceTypeIdeal
      -> Maybe Text
      -> Maybe Person
      -> Maybe SourceTypeKlarna
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Object
      -> Maybe SourceTypeMultibanco
      -> Maybe Text
      -> Maybe PaymentSourceObject'
      -> Maybe PaymentSourceOwner'
      -> Maybe SourceTypeP24
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe Bool
      -> Maybe SourceReceiverFlow
      -> Maybe PaymentSourceRecipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe AccountRequirements
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe PaymentSourceSettings'
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe AccountTosAcceptance
      -> Maybe PaymentSourceTransactions'
      -> Maybe PaymentSourceType'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> PaymentSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"details_submitted")) Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeEps
   -> Maybe Int
   -> Maybe Int
   -> Maybe PaymentSourceExternalAccounts'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeGiropay
   -> Maybe Text
   -> Maybe SourceTypeIdeal
   -> Maybe Text
   -> Maybe Person
   -> Maybe SourceTypeKlarna
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Object
   -> Maybe SourceTypeMultibanco
   -> Maybe Text
   -> Maybe PaymentSourceObject'
   -> Maybe PaymentSourceOwner'
   -> Maybe SourceTypeP24
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe Bool
   -> Maybe SourceReceiverFlow
   -> Maybe PaymentSourceRecipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe AccountRequirements
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe PaymentSourceSettings'
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe AccountTosAcceptance
   -> Maybe PaymentSourceTransactions'
   -> Maybe PaymentSourceType'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> PaymentSource)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe SourceTypeEps
      -> Maybe Int
      -> Maybe Int
      -> Maybe PaymentSourceExternalAccounts'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeGiropay
      -> Maybe Text
      -> Maybe SourceTypeIdeal
      -> Maybe Text
      -> Maybe Person
      -> Maybe SourceTypeKlarna
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Object
      -> Maybe SourceTypeMultibanco
      -> Maybe Text
      -> Maybe PaymentSourceObject'
      -> Maybe PaymentSourceOwner'
      -> Maybe SourceTypeP24
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe Bool
      -> Maybe SourceReceiverFlow
      -> Maybe PaymentSourceRecipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe AccountRequirements
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe PaymentSourceSettings'
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe AccountTosAcceptance
      -> Maybe PaymentSourceTransactions'
      -> Maybe PaymentSourceType'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> PaymentSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"dynamic_last4")) Parser
  (Maybe Text
   -> Maybe SourceTypeEps
   -> Maybe Int
   -> Maybe Int
   -> Maybe PaymentSourceExternalAccounts'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeGiropay
   -> Maybe Text
   -> Maybe SourceTypeIdeal
   -> Maybe Text
   -> Maybe Person
   -> Maybe SourceTypeKlarna
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Object
   -> Maybe SourceTypeMultibanco
   -> Maybe Text
   -> Maybe PaymentSourceObject'
   -> Maybe PaymentSourceOwner'
   -> Maybe SourceTypeP24
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe Bool
   -> Maybe SourceReceiverFlow
   -> Maybe PaymentSourceRecipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe AccountRequirements
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe PaymentSourceSettings'
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe AccountTosAcceptance
   -> Maybe PaymentSourceTransactions'
   -> Maybe PaymentSourceType'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> PaymentSource)
-> Parser (Maybe Text)
-> Parser
     (Maybe SourceTypeEps
      -> Maybe Int
      -> Maybe Int
      -> Maybe PaymentSourceExternalAccounts'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeGiropay
      -> Maybe Text
      -> Maybe SourceTypeIdeal
      -> Maybe Text
      -> Maybe Person
      -> Maybe SourceTypeKlarna
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Object
      -> Maybe SourceTypeMultibanco
      -> Maybe Text
      -> Maybe PaymentSourceObject'
      -> Maybe PaymentSourceOwner'
      -> Maybe SourceTypeP24
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe Bool
      -> Maybe SourceReceiverFlow
      -> Maybe PaymentSourceRecipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe AccountRequirements
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe PaymentSourceSettings'
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe AccountTosAcceptance
      -> Maybe PaymentSourceTransactions'
      -> Maybe PaymentSourceType'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> PaymentSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"email")) Parser
  (Maybe SourceTypeEps
   -> Maybe Int
   -> Maybe Int
   -> Maybe PaymentSourceExternalAccounts'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeGiropay
   -> Maybe Text
   -> Maybe SourceTypeIdeal
   -> Maybe Text
   -> Maybe Person
   -> Maybe SourceTypeKlarna
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Object
   -> Maybe SourceTypeMultibanco
   -> Maybe Text
   -> Maybe PaymentSourceObject'
   -> Maybe PaymentSourceOwner'
   -> Maybe SourceTypeP24
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe Bool
   -> Maybe SourceReceiverFlow
   -> Maybe PaymentSourceRecipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe AccountRequirements
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe PaymentSourceSettings'
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe AccountTosAcceptance
   -> Maybe PaymentSourceTransactions'
   -> Maybe PaymentSourceType'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> PaymentSource)
-> Parser (Maybe SourceTypeEps)
-> Parser
     (Maybe Int
      -> Maybe Int
      -> Maybe PaymentSourceExternalAccounts'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeGiropay
      -> Maybe Text
      -> Maybe SourceTypeIdeal
      -> Maybe Text
      -> Maybe Person
      -> Maybe SourceTypeKlarna
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Object
      -> Maybe SourceTypeMultibanco
      -> Maybe Text
      -> Maybe PaymentSourceObject'
      -> Maybe PaymentSourceOwner'
      -> Maybe SourceTypeP24
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe Bool
      -> Maybe SourceReceiverFlow
      -> Maybe PaymentSourceRecipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe AccountRequirements
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe PaymentSourceSettings'
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe AccountTosAcceptance
      -> Maybe PaymentSourceTransactions'
      -> Maybe PaymentSourceType'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> PaymentSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe SourceTypeEps)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"eps")) Parser
  (Maybe Int
   -> Maybe Int
   -> Maybe PaymentSourceExternalAccounts'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeGiropay
   -> Maybe Text
   -> Maybe SourceTypeIdeal
   -> Maybe Text
   -> Maybe Person
   -> Maybe SourceTypeKlarna
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Object
   -> Maybe SourceTypeMultibanco
   -> Maybe Text
   -> Maybe PaymentSourceObject'
   -> Maybe PaymentSourceOwner'
   -> Maybe SourceTypeP24
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe Bool
   -> Maybe SourceReceiverFlow
   -> Maybe PaymentSourceRecipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe AccountRequirements
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe PaymentSourceSettings'
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe AccountTosAcceptance
   -> Maybe PaymentSourceTransactions'
   -> Maybe PaymentSourceType'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> PaymentSource)
-> Parser (Maybe Int)
-> Parser
     (Maybe Int
      -> Maybe PaymentSourceExternalAccounts'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeGiropay
      -> Maybe Text
      -> Maybe SourceTypeIdeal
      -> Maybe Text
      -> Maybe Person
      -> Maybe SourceTypeKlarna
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Object
      -> Maybe SourceTypeMultibanco
      -> Maybe Text
      -> Maybe PaymentSourceObject'
      -> Maybe PaymentSourceOwner'
      -> Maybe SourceTypeP24
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe Bool
      -> Maybe SourceReceiverFlow
      -> Maybe PaymentSourceRecipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe AccountRequirements
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe PaymentSourceSettings'
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe AccountTosAcceptance
      -> Maybe PaymentSourceTransactions'
      -> Maybe PaymentSourceType'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> PaymentSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"exp_month")) Parser
  (Maybe Int
   -> Maybe PaymentSourceExternalAccounts'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeGiropay
   -> Maybe Text
   -> Maybe SourceTypeIdeal
   -> Maybe Text
   -> Maybe Person
   -> Maybe SourceTypeKlarna
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Object
   -> Maybe SourceTypeMultibanco
   -> Maybe Text
   -> Maybe PaymentSourceObject'
   -> Maybe PaymentSourceOwner'
   -> Maybe SourceTypeP24
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe Bool
   -> Maybe SourceReceiverFlow
   -> Maybe PaymentSourceRecipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe AccountRequirements
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe PaymentSourceSettings'
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe AccountTosAcceptance
   -> Maybe PaymentSourceTransactions'
   -> Maybe PaymentSourceType'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> PaymentSource)
-> Parser (Maybe Int)
-> Parser
     (Maybe PaymentSourceExternalAccounts'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeGiropay
      -> Maybe Text
      -> Maybe SourceTypeIdeal
      -> Maybe Text
      -> Maybe Person
      -> Maybe SourceTypeKlarna
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Object
      -> Maybe SourceTypeMultibanco
      -> Maybe Text
      -> Maybe PaymentSourceObject'
      -> Maybe PaymentSourceOwner'
      -> Maybe SourceTypeP24
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe Bool
      -> Maybe SourceReceiverFlow
      -> Maybe PaymentSourceRecipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe AccountRequirements
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe PaymentSourceSettings'
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe AccountTosAcceptance
      -> Maybe PaymentSourceTransactions'
      -> Maybe PaymentSourceType'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> PaymentSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"exp_year")) Parser
  (Maybe PaymentSourceExternalAccounts'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeGiropay
   -> Maybe Text
   -> Maybe SourceTypeIdeal
   -> Maybe Text
   -> Maybe Person
   -> Maybe SourceTypeKlarna
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Object
   -> Maybe SourceTypeMultibanco
   -> Maybe Text
   -> Maybe PaymentSourceObject'
   -> Maybe PaymentSourceOwner'
   -> Maybe SourceTypeP24
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe Bool
   -> Maybe SourceReceiverFlow
   -> Maybe PaymentSourceRecipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe AccountRequirements
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe PaymentSourceSettings'
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe AccountTosAcceptance
   -> Maybe PaymentSourceTransactions'
   -> Maybe PaymentSourceType'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> PaymentSource)
-> Parser (Maybe PaymentSourceExternalAccounts')
-> Parser
     (Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeGiropay
      -> Maybe Text
      -> Maybe SourceTypeIdeal
      -> Maybe Text
      -> Maybe Person
      -> Maybe SourceTypeKlarna
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Object
      -> Maybe SourceTypeMultibanco
      -> Maybe Text
      -> Maybe PaymentSourceObject'
      -> Maybe PaymentSourceOwner'
      -> Maybe SourceTypeP24
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe Bool
      -> Maybe SourceReceiverFlow
      -> Maybe PaymentSourceRecipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe AccountRequirements
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe PaymentSourceSettings'
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe AccountTosAcceptance
      -> Maybe PaymentSourceTransactions'
      -> Maybe PaymentSourceType'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> PaymentSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe PaymentSourceExternalAccounts')
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"external_accounts")) Parser
  (Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeGiropay
   -> Maybe Text
   -> Maybe SourceTypeIdeal
   -> Maybe Text
   -> Maybe Person
   -> Maybe SourceTypeKlarna
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Object
   -> Maybe SourceTypeMultibanco
   -> Maybe Text
   -> Maybe PaymentSourceObject'
   -> Maybe PaymentSourceOwner'
   -> Maybe SourceTypeP24
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe Bool
   -> Maybe SourceReceiverFlow
   -> Maybe PaymentSourceRecipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe AccountRequirements
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe PaymentSourceSettings'
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe AccountTosAcceptance
   -> Maybe PaymentSourceTransactions'
   -> Maybe PaymentSourceType'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> PaymentSource)
-> Parser (Maybe Bool)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeGiropay
      -> Maybe Text
      -> Maybe SourceTypeIdeal
      -> Maybe Text
      -> Maybe Person
      -> Maybe SourceTypeKlarna
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Object
      -> Maybe SourceTypeMultibanco
      -> Maybe Text
      -> Maybe PaymentSourceObject'
      -> Maybe PaymentSourceOwner'
      -> Maybe SourceTypeP24
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe Bool
      -> Maybe SourceReceiverFlow
      -> Maybe PaymentSourceRecipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe AccountRequirements
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe PaymentSourceSettings'
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe AccountTosAcceptance
      -> Maybe PaymentSourceTransactions'
      -> Maybe PaymentSourceType'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> PaymentSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"filled")) Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeGiropay
   -> Maybe Text
   -> Maybe SourceTypeIdeal
   -> Maybe Text
   -> Maybe Person
   -> Maybe SourceTypeKlarna
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Object
   -> Maybe SourceTypeMultibanco
   -> Maybe Text
   -> Maybe PaymentSourceObject'
   -> Maybe PaymentSourceOwner'
   -> Maybe SourceTypeP24
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe Bool
   -> Maybe SourceReceiverFlow
   -> Maybe PaymentSourceRecipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe AccountRequirements
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe PaymentSourceSettings'
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe AccountTosAcceptance
   -> Maybe PaymentSourceTransactions'
   -> Maybe PaymentSourceType'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> PaymentSource)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeGiropay
      -> Maybe Text
      -> Maybe SourceTypeIdeal
      -> Maybe Text
      -> Maybe Person
      -> Maybe SourceTypeKlarna
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Object
      -> Maybe SourceTypeMultibanco
      -> Maybe Text
      -> Maybe PaymentSourceObject'
      -> Maybe PaymentSourceOwner'
      -> Maybe SourceTypeP24
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe Bool
      -> Maybe SourceReceiverFlow
      -> Maybe PaymentSourceRecipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe AccountRequirements
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe PaymentSourceSettings'
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe AccountTosAcceptance
      -> Maybe PaymentSourceTransactions'
      -> Maybe PaymentSourceType'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> PaymentSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"fingerprint")) Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeGiropay
   -> Maybe Text
   -> Maybe SourceTypeIdeal
   -> Maybe Text
   -> Maybe Person
   -> Maybe SourceTypeKlarna
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Object
   -> Maybe SourceTypeMultibanco
   -> Maybe Text
   -> Maybe PaymentSourceObject'
   -> Maybe PaymentSourceOwner'
   -> Maybe SourceTypeP24
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe Bool
   -> Maybe SourceReceiverFlow
   -> Maybe PaymentSourceRecipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe AccountRequirements
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe PaymentSourceSettings'
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe AccountTosAcceptance
   -> Maybe PaymentSourceTransactions'
   -> Maybe PaymentSourceType'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> PaymentSource)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe SourceTypeGiropay
      -> Maybe Text
      -> Maybe SourceTypeIdeal
      -> Maybe Text
      -> Maybe Person
      -> Maybe SourceTypeKlarna
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Object
      -> Maybe SourceTypeMultibanco
      -> Maybe Text
      -> Maybe PaymentSourceObject'
      -> Maybe PaymentSourceOwner'
      -> Maybe SourceTypeP24
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe Bool
      -> Maybe SourceReceiverFlow
      -> Maybe PaymentSourceRecipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe AccountRequirements
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe PaymentSourceSettings'
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe AccountTosAcceptance
      -> Maybe PaymentSourceTransactions'
      -> Maybe PaymentSourceType'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> PaymentSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"flow")) Parser
  (Maybe Text
   -> Maybe SourceTypeGiropay
   -> Maybe Text
   -> Maybe SourceTypeIdeal
   -> Maybe Text
   -> Maybe Person
   -> Maybe SourceTypeKlarna
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Object
   -> Maybe SourceTypeMultibanco
   -> Maybe Text
   -> Maybe PaymentSourceObject'
   -> Maybe PaymentSourceOwner'
   -> Maybe SourceTypeP24
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe Bool
   -> Maybe SourceReceiverFlow
   -> Maybe PaymentSourceRecipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe AccountRequirements
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe PaymentSourceSettings'
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe AccountTosAcceptance
   -> Maybe PaymentSourceTransactions'
   -> Maybe PaymentSourceType'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> PaymentSource)
-> Parser (Maybe Text)
-> Parser
     (Maybe SourceTypeGiropay
      -> Maybe Text
      -> Maybe SourceTypeIdeal
      -> Maybe Text
      -> Maybe Person
      -> Maybe SourceTypeKlarna
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Object
      -> Maybe SourceTypeMultibanco
      -> Maybe Text
      -> Maybe PaymentSourceObject'
      -> Maybe PaymentSourceOwner'
      -> Maybe SourceTypeP24
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe Bool
      -> Maybe SourceReceiverFlow
      -> Maybe PaymentSourceRecipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe AccountRequirements
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe PaymentSourceSettings'
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe AccountTosAcceptance
      -> Maybe PaymentSourceTransactions'
      -> Maybe PaymentSourceType'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> PaymentSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"funding")) Parser
  (Maybe SourceTypeGiropay
   -> Maybe Text
   -> Maybe SourceTypeIdeal
   -> Maybe Text
   -> Maybe Person
   -> Maybe SourceTypeKlarna
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Object
   -> Maybe SourceTypeMultibanco
   -> Maybe Text
   -> Maybe PaymentSourceObject'
   -> Maybe PaymentSourceOwner'
   -> Maybe SourceTypeP24
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe Bool
   -> Maybe SourceReceiverFlow
   -> Maybe PaymentSourceRecipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe AccountRequirements
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe PaymentSourceSettings'
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe AccountTosAcceptance
   -> Maybe PaymentSourceTransactions'
   -> Maybe PaymentSourceType'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> PaymentSource)
-> Parser (Maybe SourceTypeGiropay)
-> Parser
     (Maybe Text
      -> Maybe SourceTypeIdeal
      -> Maybe Text
      -> Maybe Person
      -> Maybe SourceTypeKlarna
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Object
      -> Maybe SourceTypeMultibanco
      -> Maybe Text
      -> Maybe PaymentSourceObject'
      -> Maybe PaymentSourceOwner'
      -> Maybe SourceTypeP24
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe Bool
      -> Maybe SourceReceiverFlow
      -> Maybe PaymentSourceRecipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe AccountRequirements
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe PaymentSourceSettings'
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe AccountTosAcceptance
      -> Maybe PaymentSourceTransactions'
      -> Maybe PaymentSourceType'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> PaymentSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe SourceTypeGiropay)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"giropay")) Parser
  (Maybe Text
   -> Maybe SourceTypeIdeal
   -> Maybe Text
   -> Maybe Person
   -> Maybe SourceTypeKlarna
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Object
   -> Maybe SourceTypeMultibanco
   -> Maybe Text
   -> Maybe PaymentSourceObject'
   -> Maybe PaymentSourceOwner'
   -> Maybe SourceTypeP24
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe Bool
   -> Maybe SourceReceiverFlow
   -> Maybe PaymentSourceRecipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe AccountRequirements
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe PaymentSourceSettings'
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe AccountTosAcceptance
   -> Maybe PaymentSourceTransactions'
   -> Maybe PaymentSourceType'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> PaymentSource)
-> Parser (Maybe Text)
-> Parser
     (Maybe SourceTypeIdeal
      -> Maybe Text
      -> Maybe Person
      -> Maybe SourceTypeKlarna
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Object
      -> Maybe SourceTypeMultibanco
      -> Maybe Text
      -> Maybe PaymentSourceObject'
      -> Maybe PaymentSourceOwner'
      -> Maybe SourceTypeP24
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe Bool
      -> Maybe SourceReceiverFlow
      -> Maybe PaymentSourceRecipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe AccountRequirements
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe PaymentSourceSettings'
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe AccountTosAcceptance
      -> Maybe PaymentSourceTransactions'
      -> Maybe PaymentSourceType'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> PaymentSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"id")) Parser
  (Maybe SourceTypeIdeal
   -> Maybe Text
   -> Maybe Person
   -> Maybe SourceTypeKlarna
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Object
   -> Maybe SourceTypeMultibanco
   -> Maybe Text
   -> Maybe PaymentSourceObject'
   -> Maybe PaymentSourceOwner'
   -> Maybe SourceTypeP24
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe Bool
   -> Maybe SourceReceiverFlow
   -> Maybe PaymentSourceRecipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe AccountRequirements
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe PaymentSourceSettings'
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe AccountTosAcceptance
   -> Maybe PaymentSourceTransactions'
   -> Maybe PaymentSourceType'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> PaymentSource)
-> Parser (Maybe SourceTypeIdeal)
-> Parser
     (Maybe Text
      -> Maybe Person
      -> Maybe SourceTypeKlarna
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Object
      -> Maybe SourceTypeMultibanco
      -> Maybe Text
      -> Maybe PaymentSourceObject'
      -> Maybe PaymentSourceOwner'
      -> Maybe SourceTypeP24
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe Bool
      -> Maybe SourceReceiverFlow
      -> Maybe PaymentSourceRecipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe AccountRequirements
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe PaymentSourceSettings'
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe AccountTosAcceptance
      -> Maybe PaymentSourceTransactions'
      -> Maybe PaymentSourceType'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> PaymentSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe SourceTypeIdeal)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"ideal")) Parser
  (Maybe Text
   -> Maybe Person
   -> Maybe SourceTypeKlarna
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Object
   -> Maybe SourceTypeMultibanco
   -> Maybe Text
   -> Maybe PaymentSourceObject'
   -> Maybe PaymentSourceOwner'
   -> Maybe SourceTypeP24
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe Bool
   -> Maybe SourceReceiverFlow
   -> Maybe PaymentSourceRecipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe AccountRequirements
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe PaymentSourceSettings'
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe AccountTosAcceptance
   -> Maybe PaymentSourceTransactions'
   -> Maybe PaymentSourceType'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> PaymentSource)
-> Parser (Maybe Text)
-> Parser
     (Maybe Person
      -> Maybe SourceTypeKlarna
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Object
      -> Maybe SourceTypeMultibanco
      -> Maybe Text
      -> Maybe PaymentSourceObject'
      -> Maybe PaymentSourceOwner'
      -> Maybe SourceTypeP24
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe Bool
      -> Maybe SourceReceiverFlow
      -> Maybe PaymentSourceRecipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe AccountRequirements
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe PaymentSourceSettings'
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe AccountTosAcceptance
      -> Maybe PaymentSourceTransactions'
      -> Maybe PaymentSourceType'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> PaymentSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"inbound_address")) Parser
  (Maybe Person
   -> Maybe SourceTypeKlarna
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Object
   -> Maybe SourceTypeMultibanco
   -> Maybe Text
   -> Maybe PaymentSourceObject'
   -> Maybe PaymentSourceOwner'
   -> Maybe SourceTypeP24
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe Bool
   -> Maybe SourceReceiverFlow
   -> Maybe PaymentSourceRecipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe AccountRequirements
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe PaymentSourceSettings'
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe AccountTosAcceptance
   -> Maybe PaymentSourceTransactions'
   -> Maybe PaymentSourceType'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> PaymentSource)
-> Parser (Maybe Person)
-> Parser
     (Maybe SourceTypeKlarna
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Object
      -> Maybe SourceTypeMultibanco
      -> Maybe Text
      -> Maybe PaymentSourceObject'
      -> Maybe PaymentSourceOwner'
      -> Maybe SourceTypeP24
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe Bool
      -> Maybe SourceReceiverFlow
      -> Maybe PaymentSourceRecipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe AccountRequirements
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe PaymentSourceSettings'
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe AccountTosAcceptance
      -> Maybe PaymentSourceTransactions'
      -> Maybe PaymentSourceType'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> PaymentSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Person)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"individual")) Parser
  (Maybe SourceTypeKlarna
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Object
   -> Maybe SourceTypeMultibanco
   -> Maybe Text
   -> Maybe PaymentSourceObject'
   -> Maybe PaymentSourceOwner'
   -> Maybe SourceTypeP24
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe Bool
   -> Maybe SourceReceiverFlow
   -> Maybe PaymentSourceRecipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe AccountRequirements
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe PaymentSourceSettings'
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe AccountTosAcceptance
   -> Maybe PaymentSourceTransactions'
   -> Maybe PaymentSourceType'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> PaymentSource)
-> Parser (Maybe SourceTypeKlarna)
-> Parser
     (Maybe Text
      -> Maybe Bool
      -> Maybe Object
      -> Maybe SourceTypeMultibanco
      -> Maybe Text
      -> Maybe PaymentSourceObject'
      -> Maybe PaymentSourceOwner'
      -> Maybe SourceTypeP24
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe Bool
      -> Maybe SourceReceiverFlow
      -> Maybe PaymentSourceRecipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe AccountRequirements
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe PaymentSourceSettings'
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe AccountTosAcceptance
      -> Maybe PaymentSourceTransactions'
      -> Maybe PaymentSourceType'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> PaymentSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe SourceTypeKlarna)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"klarna")) Parser
  (Maybe Text
   -> Maybe Bool
   -> Maybe Object
   -> Maybe SourceTypeMultibanco
   -> Maybe Text
   -> Maybe PaymentSourceObject'
   -> Maybe PaymentSourceOwner'
   -> Maybe SourceTypeP24
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe Bool
   -> Maybe SourceReceiverFlow
   -> Maybe PaymentSourceRecipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe AccountRequirements
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe PaymentSourceSettings'
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe AccountTosAcceptance
   -> Maybe PaymentSourceTransactions'
   -> Maybe PaymentSourceType'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> PaymentSource)
-> Parser (Maybe Text)
-> Parser
     (Maybe Bool
      -> Maybe Object
      -> Maybe SourceTypeMultibanco
      -> Maybe Text
      -> Maybe PaymentSourceObject'
      -> Maybe PaymentSourceOwner'
      -> Maybe SourceTypeP24
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe Bool
      -> Maybe SourceReceiverFlow
      -> Maybe PaymentSourceRecipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe AccountRequirements
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe PaymentSourceSettings'
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe AccountTosAcceptance
      -> Maybe PaymentSourceTransactions'
      -> Maybe PaymentSourceType'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> PaymentSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"last4")) Parser
  (Maybe Bool
   -> Maybe Object
   -> Maybe SourceTypeMultibanco
   -> Maybe Text
   -> Maybe PaymentSourceObject'
   -> Maybe PaymentSourceOwner'
   -> Maybe SourceTypeP24
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe Bool
   -> Maybe SourceReceiverFlow
   -> Maybe PaymentSourceRecipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe AccountRequirements
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe PaymentSourceSettings'
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe AccountTosAcceptance
   -> Maybe PaymentSourceTransactions'
   -> Maybe PaymentSourceType'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> PaymentSource)
-> Parser (Maybe Bool)
-> Parser
     (Maybe Object
      -> Maybe SourceTypeMultibanco
      -> Maybe Text
      -> Maybe PaymentSourceObject'
      -> Maybe PaymentSourceOwner'
      -> Maybe SourceTypeP24
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe Bool
      -> Maybe SourceReceiverFlow
      -> Maybe PaymentSourceRecipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe AccountRequirements
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe PaymentSourceSettings'
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe AccountTosAcceptance
      -> Maybe PaymentSourceTransactions'
      -> Maybe PaymentSourceType'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> PaymentSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"livemode")) Parser
  (Maybe Object
   -> Maybe SourceTypeMultibanco
   -> Maybe Text
   -> Maybe PaymentSourceObject'
   -> Maybe PaymentSourceOwner'
   -> Maybe SourceTypeP24
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe Bool
   -> Maybe SourceReceiverFlow
   -> Maybe PaymentSourceRecipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe AccountRequirements
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe PaymentSourceSettings'
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe AccountTosAcceptance
   -> Maybe PaymentSourceTransactions'
   -> Maybe PaymentSourceType'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> PaymentSource)
-> Parser (Maybe Object)
-> Parser
     (Maybe SourceTypeMultibanco
      -> Maybe Text
      -> Maybe PaymentSourceObject'
      -> Maybe PaymentSourceOwner'
      -> Maybe SourceTypeP24
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe Bool
      -> Maybe SourceReceiverFlow
      -> Maybe PaymentSourceRecipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe AccountRequirements
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe PaymentSourceSettings'
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe AccountTosAcceptance
      -> Maybe PaymentSourceTransactions'
      -> Maybe PaymentSourceType'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> PaymentSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Object)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"metadata")) Parser
  (Maybe SourceTypeMultibanco
   -> Maybe Text
   -> Maybe PaymentSourceObject'
   -> Maybe PaymentSourceOwner'
   -> Maybe SourceTypeP24
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe Bool
   -> Maybe SourceReceiverFlow
   -> Maybe PaymentSourceRecipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe AccountRequirements
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe PaymentSourceSettings'
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe AccountTosAcceptance
   -> Maybe PaymentSourceTransactions'
   -> Maybe PaymentSourceType'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> PaymentSource)
-> Parser (Maybe SourceTypeMultibanco)
-> Parser
     (Maybe Text
      -> Maybe PaymentSourceObject'
      -> Maybe PaymentSourceOwner'
      -> Maybe SourceTypeP24
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe Bool
      -> Maybe SourceReceiverFlow
      -> Maybe PaymentSourceRecipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe AccountRequirements
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe PaymentSourceSettings'
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe AccountTosAcceptance
      -> Maybe PaymentSourceTransactions'
      -> Maybe PaymentSourceType'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> PaymentSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe SourceTypeMultibanco)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"multibanco")) Parser
  (Maybe Text
   -> Maybe PaymentSourceObject'
   -> Maybe PaymentSourceOwner'
   -> Maybe SourceTypeP24
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe Bool
   -> Maybe SourceReceiverFlow
   -> Maybe PaymentSourceRecipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe AccountRequirements
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe PaymentSourceSettings'
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe AccountTosAcceptance
   -> Maybe PaymentSourceTransactions'
   -> Maybe PaymentSourceType'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> PaymentSource)
-> Parser (Maybe Text)
-> Parser
     (Maybe PaymentSourceObject'
      -> Maybe PaymentSourceOwner'
      -> Maybe SourceTypeP24
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe Bool
      -> Maybe SourceReceiverFlow
      -> Maybe PaymentSourceRecipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe AccountRequirements
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe PaymentSourceSettings'
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe AccountTosAcceptance
      -> Maybe PaymentSourceTransactions'
      -> Maybe PaymentSourceType'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> PaymentSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"name")) Parser
  (Maybe PaymentSourceObject'
   -> Maybe PaymentSourceOwner'
   -> Maybe SourceTypeP24
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe Bool
   -> Maybe SourceReceiverFlow
   -> Maybe PaymentSourceRecipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe AccountRequirements
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe PaymentSourceSettings'
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe AccountTosAcceptance
   -> Maybe PaymentSourceTransactions'
   -> Maybe PaymentSourceType'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> PaymentSource)
-> Parser (Maybe PaymentSourceObject')
-> Parser
     (Maybe PaymentSourceOwner'
      -> Maybe SourceTypeP24
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe Bool
      -> Maybe SourceReceiverFlow
      -> Maybe PaymentSourceRecipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe AccountRequirements
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe PaymentSourceSettings'
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe AccountTosAcceptance
      -> Maybe PaymentSourceTransactions'
      -> Maybe PaymentSourceType'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> PaymentSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe PaymentSourceObject')
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"object")) Parser
  (Maybe PaymentSourceOwner'
   -> Maybe SourceTypeP24
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe Bool
   -> Maybe SourceReceiverFlow
   -> Maybe PaymentSourceRecipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe AccountRequirements
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe PaymentSourceSettings'
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe AccountTosAcceptance
   -> Maybe PaymentSourceTransactions'
   -> Maybe PaymentSourceType'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> PaymentSource)
-> Parser (Maybe PaymentSourceOwner')
-> Parser
     (Maybe SourceTypeP24
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe Bool
      -> Maybe SourceReceiverFlow
      -> Maybe PaymentSourceRecipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe AccountRequirements
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe PaymentSourceSettings'
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe AccountTosAcceptance
      -> Maybe PaymentSourceTransactions'
      -> Maybe PaymentSourceType'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> PaymentSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe PaymentSourceOwner')
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"owner")) Parser
  (Maybe SourceTypeP24
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe Bool
   -> Maybe SourceReceiverFlow
   -> Maybe PaymentSourceRecipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe AccountRequirements
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe PaymentSourceSettings'
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe AccountTosAcceptance
   -> Maybe PaymentSourceTransactions'
   -> Maybe PaymentSourceType'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> PaymentSource)
-> Parser (Maybe SourceTypeP24)
-> Parser
     (Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe Bool
      -> Maybe SourceReceiverFlow
      -> Maybe PaymentSourceRecipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe AccountRequirements
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe PaymentSourceSettings'
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe AccountTosAcceptance
      -> Maybe PaymentSourceTransactions'
      -> Maybe PaymentSourceType'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> PaymentSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe SourceTypeP24)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"p24")) Parser
  (Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe Bool
   -> Maybe SourceReceiverFlow
   -> Maybe PaymentSourceRecipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe AccountRequirements
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe PaymentSourceSettings'
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe AccountTosAcceptance
   -> Maybe PaymentSourceTransactions'
   -> Maybe PaymentSourceType'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> PaymentSource)
-> Parser (Maybe Text)
-> Parser
     (Maybe Int
      -> Maybe Text
      -> Maybe Bool
      -> Maybe SourceReceiverFlow
      -> Maybe PaymentSourceRecipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe AccountRequirements
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe PaymentSourceSettings'
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe AccountTosAcceptance
      -> Maybe PaymentSourceTransactions'
      -> Maybe PaymentSourceType'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> PaymentSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"payment")) Parser
  (Maybe Int
   -> Maybe Text
   -> Maybe Bool
   -> Maybe SourceReceiverFlow
   -> Maybe PaymentSourceRecipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe AccountRequirements
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe PaymentSourceSettings'
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe AccountTosAcceptance
   -> Maybe PaymentSourceTransactions'
   -> Maybe PaymentSourceType'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> PaymentSource)
-> Parser (Maybe Int)
-> Parser
     (Maybe Text
      -> Maybe Bool
      -> Maybe SourceReceiverFlow
      -> Maybe PaymentSourceRecipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe AccountRequirements
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe PaymentSourceSettings'
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe AccountTosAcceptance
      -> Maybe PaymentSourceTransactions'
      -> Maybe PaymentSourceType'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> PaymentSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"payment_amount")) Parser
  (Maybe Text
   -> Maybe Bool
   -> Maybe SourceReceiverFlow
   -> Maybe PaymentSourceRecipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe AccountRequirements
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe PaymentSourceSettings'
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe AccountTosAcceptance
   -> Maybe PaymentSourceTransactions'
   -> Maybe PaymentSourceType'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> PaymentSource)
-> Parser (Maybe Text)
-> Parser
     (Maybe Bool
      -> Maybe SourceReceiverFlow
      -> Maybe PaymentSourceRecipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe AccountRequirements
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe PaymentSourceSettings'
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe AccountTosAcceptance
      -> Maybe PaymentSourceTransactions'
      -> Maybe PaymentSourceType'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> PaymentSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"payment_currency")) Parser
  (Maybe Bool
   -> Maybe SourceReceiverFlow
   -> Maybe PaymentSourceRecipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe AccountRequirements
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe PaymentSourceSettings'
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe AccountTosAcceptance
   -> Maybe PaymentSourceTransactions'
   -> Maybe PaymentSourceType'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> PaymentSource)
-> Parser (Maybe Bool)
-> Parser
     (Maybe SourceReceiverFlow
      -> Maybe PaymentSourceRecipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe AccountRequirements
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe PaymentSourceSettings'
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe AccountTosAcceptance
      -> Maybe PaymentSourceTransactions'
      -> Maybe PaymentSourceType'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> PaymentSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"payouts_enabled")) Parser
  (Maybe SourceReceiverFlow
   -> Maybe PaymentSourceRecipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe AccountRequirements
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe PaymentSourceSettings'
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe AccountTosAcceptance
   -> Maybe PaymentSourceTransactions'
   -> Maybe PaymentSourceType'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> PaymentSource)
-> Parser (Maybe SourceReceiverFlow)
-> Parser
     (Maybe PaymentSourceRecipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe AccountRequirements
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe PaymentSourceSettings'
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe AccountTosAcceptance
      -> Maybe PaymentSourceTransactions'
      -> Maybe PaymentSourceType'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> PaymentSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe SourceReceiverFlow)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"receiver")) Parser
  (Maybe PaymentSourceRecipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe AccountRequirements
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe PaymentSourceSettings'
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe AccountTosAcceptance
   -> Maybe PaymentSourceTransactions'
   -> Maybe PaymentSourceType'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> PaymentSource)
-> Parser (Maybe PaymentSourceRecipient'Variants)
-> Parser
     (Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe AccountRequirements
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe PaymentSourceSettings'
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe AccountTosAcceptance
      -> Maybe PaymentSourceTransactions'
      -> Maybe PaymentSourceType'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> PaymentSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe PaymentSourceRecipient'Variants)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"recipient")) Parser
  (Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe AccountRequirements
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe PaymentSourceSettings'
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe AccountTosAcceptance
   -> Maybe PaymentSourceTransactions'
   -> Maybe PaymentSourceType'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> PaymentSource)
-> Parser (Maybe SourceRedirectFlow)
-> Parser
     (Maybe Text
      -> Maybe AccountRequirements
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe PaymentSourceSettings'
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe AccountTosAcceptance
      -> Maybe PaymentSourceTransactions'
      -> Maybe PaymentSourceType'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> PaymentSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe SourceRedirectFlow)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"redirect")) Parser
  (Maybe Text
   -> Maybe AccountRequirements
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe PaymentSourceSettings'
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe AccountTosAcceptance
   -> Maybe PaymentSourceTransactions'
   -> Maybe PaymentSourceType'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> PaymentSource)
-> Parser (Maybe Text)
-> Parser
     (Maybe AccountRequirements
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe PaymentSourceSettings'
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe AccountTosAcceptance
      -> Maybe PaymentSourceTransactions'
      -> Maybe PaymentSourceType'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> PaymentSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"refund_address")) Parser
  (Maybe AccountRequirements
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe PaymentSourceSettings'
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe AccountTosAcceptance
   -> Maybe PaymentSourceTransactions'
   -> Maybe PaymentSourceType'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> PaymentSource)
-> Parser (Maybe AccountRequirements)
-> Parser
     (Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe PaymentSourceSettings'
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe AccountTosAcceptance
      -> Maybe PaymentSourceTransactions'
      -> Maybe PaymentSourceType'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> PaymentSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe AccountRequirements)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"requirements")) Parser
  (Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe PaymentSourceSettings'
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe AccountTosAcceptance
   -> Maybe PaymentSourceTransactions'
   -> Maybe PaymentSourceType'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> PaymentSource)
-> Parser (Maybe Bool)
-> Parser
     (Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe PaymentSourceSettings'
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe AccountTosAcceptance
      -> Maybe PaymentSourceTransactions'
      -> Maybe PaymentSourceType'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> PaymentSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"reusable")) Parser
  (Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe PaymentSourceSettings'
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe AccountTosAcceptance
   -> Maybe PaymentSourceTransactions'
   -> Maybe PaymentSourceType'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> PaymentSource)
-> Parser (Maybe Text)
-> Parser
     (Maybe SourceTypeSepaDebit
      -> Maybe PaymentSourceSettings'
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe AccountTosAcceptance
      -> Maybe PaymentSourceTransactions'
      -> Maybe PaymentSourceType'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> PaymentSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"routing_number")) Parser
  (Maybe SourceTypeSepaDebit
   -> Maybe PaymentSourceSettings'
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe AccountTosAcceptance
   -> Maybe PaymentSourceTransactions'
   -> Maybe PaymentSourceType'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> PaymentSource)
-> Parser (Maybe SourceTypeSepaDebit)
-> Parser
     (Maybe PaymentSourceSettings'
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe AccountTosAcceptance
      -> Maybe PaymentSourceTransactions'
      -> Maybe PaymentSourceType'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> PaymentSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe SourceTypeSepaDebit)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"sepa_debit")) Parser
  (Maybe PaymentSourceSettings'
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe AccountTosAcceptance
   -> Maybe PaymentSourceTransactions'
   -> Maybe PaymentSourceType'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> PaymentSource)
-> Parser (Maybe PaymentSourceSettings')
-> Parser
     (Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe AccountTosAcceptance
      -> Maybe PaymentSourceTransactions'
      -> Maybe PaymentSourceType'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> PaymentSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe PaymentSourceSettings')
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"settings")) Parser
  (Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe AccountTosAcceptance
   -> Maybe PaymentSourceTransactions'
   -> Maybe PaymentSourceType'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> PaymentSource)
-> Parser (Maybe SourceTypeSofort)
-> Parser
     (Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe AccountTosAcceptance
      -> Maybe PaymentSourceTransactions'
      -> Maybe PaymentSourceType'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> PaymentSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe SourceTypeSofort)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"sofort")) Parser
  (Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe AccountTosAcceptance
   -> Maybe PaymentSourceTransactions'
   -> Maybe PaymentSourceType'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> PaymentSource)
-> Parser (Maybe SourceOrder)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe AccountTosAcceptance
      -> Maybe PaymentSourceTransactions'
      -> Maybe PaymentSourceType'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> PaymentSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe SourceOrder)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"source_order")) Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe AccountTosAcceptance
   -> Maybe PaymentSourceTransactions'
   -> Maybe PaymentSourceType'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> PaymentSource)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe AccountTosAcceptance
      -> Maybe PaymentSourceTransactions'
      -> Maybe PaymentSourceType'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> PaymentSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"statement_descriptor")) Parser
  (Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe AccountTosAcceptance
   -> Maybe PaymentSourceTransactions'
   -> Maybe PaymentSourceType'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> PaymentSource)
-> Parser (Maybe Text)
-> Parser
     (Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe AccountTosAcceptance
      -> Maybe PaymentSourceTransactions'
      -> Maybe PaymentSourceType'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> PaymentSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"status")) Parser
  (Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe AccountTosAcceptance
   -> Maybe PaymentSourceTransactions'
   -> Maybe PaymentSourceType'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> PaymentSource)
-> Parser (Maybe SourceTypeThreeDSecure)
-> Parser
     (Maybe Text
      -> Maybe AccountTosAcceptance
      -> Maybe PaymentSourceTransactions'
      -> Maybe PaymentSourceType'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> PaymentSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe SourceTypeThreeDSecure)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"three_d_secure")) Parser
  (Maybe Text
   -> Maybe AccountTosAcceptance
   -> Maybe PaymentSourceTransactions'
   -> Maybe PaymentSourceType'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> PaymentSource)
-> Parser (Maybe Text)
-> Parser
     (Maybe AccountTosAcceptance
      -> Maybe PaymentSourceTransactions'
      -> Maybe PaymentSourceType'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> PaymentSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"tokenization_method")) Parser
  (Maybe AccountTosAcceptance
   -> Maybe PaymentSourceTransactions'
   -> Maybe PaymentSourceType'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> PaymentSource)
-> Parser (Maybe AccountTosAcceptance)
-> Parser
     (Maybe PaymentSourceTransactions'
      -> Maybe PaymentSourceType'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> PaymentSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe AccountTosAcceptance)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"tos_acceptance")) Parser
  (Maybe PaymentSourceTransactions'
   -> Maybe PaymentSourceType'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> PaymentSource)
-> Parser (Maybe PaymentSourceTransactions')
-> Parser
     (Maybe PaymentSourceType'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> PaymentSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe PaymentSourceTransactions')
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"transactions")) Parser
  (Maybe PaymentSourceType'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> PaymentSource)
-> Parser (Maybe PaymentSourceType')
-> Parser
     (Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> PaymentSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe PaymentSourceType')
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"type")) Parser
  (Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> PaymentSource)
-> Parser (Maybe Bool)
-> Parser
     (Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> PaymentSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"uncaptured_funds")) Parser
  (Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> PaymentSource)
-> Parser (Maybe Text)
-> Parser
     (Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> PaymentSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"usage")) Parser
  (Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> PaymentSource)
-> Parser (Maybe Bool)
-> Parser
     (Maybe Bool
      -> Maybe Text -> Maybe SourceTypeWechat -> PaymentSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"used")) Parser
  (Maybe Bool
   -> Maybe Text -> Maybe SourceTypeWechat -> PaymentSource)
-> Parser (Maybe Bool)
-> Parser (Maybe Text -> Maybe SourceTypeWechat -> PaymentSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"used_for_payment")) Parser (Maybe Text -> Maybe SourceTypeWechat -> PaymentSource)
-> Parser (Maybe Text)
-> Parser (Maybe SourceTypeWechat -> PaymentSource)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"username")) Parser (Maybe SourceTypeWechat -> PaymentSource)
-> Parser (Maybe SourceTypeWechat) -> Parser PaymentSource
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe SourceTypeWechat)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"wechat"))

-- | Create a new 'PaymentSource' with all required fields.
mkPaymentSource :: PaymentSource
mkPaymentSource :: PaymentSource
mkPaymentSource =
  PaymentSource :: Maybe PaymentSourceAccount'Variants
-> Maybe Text
-> Maybe Text
-> Maybe SourceTypeAchCreditTransfer
-> Maybe SourceTypeAchDebit
-> Maybe SourceTypeAcssDebit
-> Maybe Bool
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe SourceTypeAlipay
-> Maybe Int
-> Maybe Int
-> Maybe SourceTypeAuBecsDebit
-> Maybe [PaymentSourceAvailablePayoutMethods']
-> Maybe SourceTypeBancontact
-> Maybe Text
-> Maybe Int
-> Maybe Int
-> Maybe Text
-> Maybe Text
-> Maybe PaymentSourceBusinessProfile'
-> Maybe PaymentSourceBusinessType'
-> Maybe AccountCapabilities
-> Maybe SourceTypeCard
-> Maybe SourceTypeCardPresent
-> Maybe Bool
-> Maybe Text
-> Maybe SourceCodeVerificationFlow
-> Maybe LegalEntityCompany
-> Maybe AccountController
-> Maybe Text
-> Maybe Int
-> Maybe Text
-> Maybe PaymentSourceCustomer'Variants
-> Maybe Text
-> Maybe Text
-> Maybe Bool
-> Maybe Text
-> Maybe Bool
-> Maybe Text
-> Maybe Text
-> Maybe SourceTypeEps
-> Maybe Int
-> Maybe Int
-> Maybe PaymentSourceExternalAccounts'
-> Maybe Bool
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe SourceTypeGiropay
-> Maybe Text
-> Maybe SourceTypeIdeal
-> Maybe Text
-> Maybe Person
-> Maybe SourceTypeKlarna
-> Maybe Text
-> Maybe Bool
-> Maybe Object
-> Maybe SourceTypeMultibanco
-> Maybe Text
-> Maybe PaymentSourceObject'
-> Maybe PaymentSourceOwner'
-> Maybe SourceTypeP24
-> Maybe Text
-> Maybe Int
-> Maybe Text
-> Maybe Bool
-> Maybe SourceReceiverFlow
-> Maybe PaymentSourceRecipient'Variants
-> Maybe SourceRedirectFlow
-> Maybe Text
-> Maybe AccountRequirements
-> Maybe Bool
-> Maybe Text
-> Maybe SourceTypeSepaDebit
-> Maybe PaymentSourceSettings'
-> Maybe SourceTypeSofort
-> Maybe SourceOrder
-> Maybe Text
-> Maybe Text
-> Maybe SourceTypeThreeDSecure
-> Maybe Text
-> Maybe AccountTosAcceptance
-> Maybe PaymentSourceTransactions'
-> Maybe PaymentSourceType'
-> Maybe Bool
-> Maybe Text
-> Maybe Bool
-> Maybe Bool
-> Maybe Text
-> Maybe SourceTypeWechat
-> PaymentSource
PaymentSource
    { paymentSourceAccount :: Maybe PaymentSourceAccount'Variants
paymentSourceAccount = Maybe PaymentSourceAccount'Variants
forall a. Maybe a
GHC.Maybe.Nothing,
      paymentSourceAccountHolderName :: Maybe Text
paymentSourceAccountHolderName = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      paymentSourceAccountHolderType :: Maybe Text
paymentSourceAccountHolderType = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      paymentSourceAchCreditTransfer :: Maybe SourceTypeAchCreditTransfer
paymentSourceAchCreditTransfer = Maybe SourceTypeAchCreditTransfer
forall a. Maybe a
GHC.Maybe.Nothing,
      paymentSourceAchDebit :: Maybe SourceTypeAchDebit
paymentSourceAchDebit = Maybe SourceTypeAchDebit
forall a. Maybe a
GHC.Maybe.Nothing,
      paymentSourceAcssDebit :: Maybe SourceTypeAcssDebit
paymentSourceAcssDebit = Maybe SourceTypeAcssDebit
forall a. Maybe a
GHC.Maybe.Nothing,
      paymentSourceActive :: Maybe Bool
paymentSourceActive = Maybe Bool
forall a. Maybe a
GHC.Maybe.Nothing,
      paymentSourceAddressCity :: Maybe Text
paymentSourceAddressCity = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      paymentSourceAddressCountry :: Maybe Text
paymentSourceAddressCountry = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      paymentSourceAddressLine1 :: Maybe Text
paymentSourceAddressLine1 = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      paymentSourceAddressLine1Check :: Maybe Text
paymentSourceAddressLine1Check = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      paymentSourceAddressLine2 :: Maybe Text
paymentSourceAddressLine2 = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      paymentSourceAddressState :: Maybe Text
paymentSourceAddressState = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      paymentSourceAddressZip :: Maybe Text
paymentSourceAddressZip = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      paymentSourceAddressZipCheck :: Maybe Text
paymentSourceAddressZipCheck = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      paymentSourceAlipay :: Maybe SourceTypeAlipay
paymentSourceAlipay = Maybe SourceTypeAlipay
forall a. Maybe a
GHC.Maybe.Nothing,
      paymentSourceAmount :: Maybe Int
paymentSourceAmount = Maybe Int
forall a. Maybe a
GHC.Maybe.Nothing,
      paymentSourceAmountReceived :: Maybe Int
paymentSourceAmountReceived = Maybe Int
forall a. Maybe a
GHC.Maybe.Nothing,
      paymentSourceAuBecsDebit :: Maybe SourceTypeAuBecsDebit
paymentSourceAuBecsDebit = Maybe SourceTypeAuBecsDebit
forall a. Maybe a
GHC.Maybe.Nothing,
      paymentSourceAvailablePayoutMethods :: Maybe [PaymentSourceAvailablePayoutMethods']
paymentSourceAvailablePayoutMethods = Maybe [PaymentSourceAvailablePayoutMethods']
forall a. Maybe a
GHC.Maybe.Nothing,
      paymentSourceBancontact :: Maybe SourceTypeBancontact
paymentSourceBancontact = Maybe SourceTypeBancontact
forall a. Maybe a
GHC.Maybe.Nothing,
      paymentSourceBankName :: Maybe Text
paymentSourceBankName = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      paymentSourceBitcoinAmount :: Maybe Int
paymentSourceBitcoinAmount = Maybe Int
forall a. Maybe a
GHC.Maybe.Nothing,
      paymentSourceBitcoinAmountReceived :: Maybe Int
paymentSourceBitcoinAmountReceived = Maybe Int
forall a. Maybe a
GHC.Maybe.Nothing,
      paymentSourceBitcoinUri :: Maybe Text
paymentSourceBitcoinUri = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      paymentSourceBrand :: Maybe Text
paymentSourceBrand = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      paymentSourceBusinessProfile :: Maybe PaymentSourceBusinessProfile'
paymentSourceBusinessProfile = Maybe PaymentSourceBusinessProfile'
forall a. Maybe a
GHC.Maybe.Nothing,
      paymentSourceBusinessType :: Maybe PaymentSourceBusinessType'
paymentSourceBusinessType = Maybe PaymentSourceBusinessType'
forall a. Maybe a
GHC.Maybe.Nothing,
      paymentSourceCapabilities :: Maybe AccountCapabilities
paymentSourceCapabilities = Maybe AccountCapabilities
forall a. Maybe a
GHC.Maybe.Nothing,
      paymentSourceCard :: Maybe SourceTypeCard
paymentSourceCard = Maybe SourceTypeCard
forall a. Maybe a
GHC.Maybe.Nothing,
      paymentSourceCardPresent :: Maybe SourceTypeCardPresent
paymentSourceCardPresent = Maybe SourceTypeCardPresent
forall a. Maybe a
GHC.Maybe.Nothing,
      paymentSourceChargesEnabled :: Maybe Bool
paymentSourceChargesEnabled = Maybe Bool
forall a. Maybe a
GHC.Maybe.Nothing,
      paymentSourceClientSecret :: Maybe Text
paymentSourceClientSecret = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      paymentSourceCodeVerification :: Maybe SourceCodeVerificationFlow
paymentSourceCodeVerification = Maybe SourceCodeVerificationFlow
forall a. Maybe a
GHC.Maybe.Nothing,
      paymentSourceCompany :: Maybe LegalEntityCompany
paymentSourceCompany = Maybe LegalEntityCompany
forall a. Maybe a
GHC.Maybe.Nothing,
      paymentSourceController :: Maybe AccountController
paymentSourceController = Maybe AccountController
forall a. Maybe a
GHC.Maybe.Nothing,
      paymentSourceCountry :: Maybe Text
paymentSourceCountry = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      paymentSourceCreated :: Maybe Int
paymentSourceCreated = Maybe Int
forall a. Maybe a
GHC.Maybe.Nothing,
      paymentSourceCurrency :: Maybe Text
paymentSourceCurrency = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      paymentSourceCustomer :: Maybe PaymentSourceCustomer'Variants
paymentSourceCustomer = Maybe PaymentSourceCustomer'Variants
forall a. Maybe a
GHC.Maybe.Nothing,
      paymentSourceCvcCheck :: Maybe Text
paymentSourceCvcCheck = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      paymentSourceDefaultCurrency :: Maybe Text
paymentSourceDefaultCurrency = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      paymentSourceDefaultForCurrency :: Maybe Bool
paymentSourceDefaultForCurrency = Maybe Bool
forall a. Maybe a
GHC.Maybe.Nothing,
      paymentSourceDescription :: Maybe Text
paymentSourceDescription = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      paymentSourceDetailsSubmitted :: Maybe Bool
paymentSourceDetailsSubmitted = Maybe Bool
forall a. Maybe a
GHC.Maybe.Nothing,
      paymentSourceDynamicLast4 :: Maybe Text
paymentSourceDynamicLast4 = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      paymentSourceEmail :: Maybe Text
paymentSourceEmail = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      paymentSourceEps :: Maybe SourceTypeEps
paymentSourceEps = Maybe SourceTypeEps
forall a. Maybe a
GHC.Maybe.Nothing,
      paymentSourceExpMonth :: Maybe Int
paymentSourceExpMonth = Maybe Int
forall a. Maybe a
GHC.Maybe.Nothing,
      paymentSourceExpYear :: Maybe Int
paymentSourceExpYear = Maybe Int
forall a. Maybe a
GHC.Maybe.Nothing,
      paymentSourceExternalAccounts :: Maybe PaymentSourceExternalAccounts'
paymentSourceExternalAccounts = Maybe PaymentSourceExternalAccounts'
forall a. Maybe a
GHC.Maybe.Nothing,
      paymentSourceFilled :: Maybe Bool
paymentSourceFilled = Maybe Bool
forall a. Maybe a
GHC.Maybe.Nothing,
      paymentSourceFingerprint :: Maybe Text
paymentSourceFingerprint = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      paymentSourceFlow :: Maybe Text
paymentSourceFlow = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      paymentSourceFunding :: Maybe Text
paymentSourceFunding = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      paymentSourceGiropay :: Maybe SourceTypeGiropay
paymentSourceGiropay = Maybe SourceTypeGiropay
forall a. Maybe a
GHC.Maybe.Nothing,
      paymentSourceId :: Maybe Text
paymentSourceId = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      paymentSourceIdeal :: Maybe SourceTypeIdeal
paymentSourceIdeal = Maybe SourceTypeIdeal
forall a. Maybe a
GHC.Maybe.Nothing,
      paymentSourceInboundAddress :: Maybe Text
paymentSourceInboundAddress = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      paymentSourceIndividual :: Maybe Person
paymentSourceIndividual = Maybe Person
forall a. Maybe a
GHC.Maybe.Nothing,
      paymentSourceKlarna :: Maybe SourceTypeKlarna
paymentSourceKlarna = Maybe SourceTypeKlarna
forall a. Maybe a
GHC.Maybe.Nothing,
      paymentSourceLast4 :: Maybe Text
paymentSourceLast4 = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      paymentSourceLivemode :: Maybe Bool
paymentSourceLivemode = Maybe Bool
forall a. Maybe a
GHC.Maybe.Nothing,
      paymentSourceMetadata :: Maybe Object
paymentSourceMetadata = Maybe Object
forall a. Maybe a
GHC.Maybe.Nothing,
      paymentSourceMultibanco :: Maybe SourceTypeMultibanco
paymentSourceMultibanco = Maybe SourceTypeMultibanco
forall a. Maybe a
GHC.Maybe.Nothing,
      paymentSourceName :: Maybe Text
paymentSourceName = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      paymentSourceObject :: Maybe PaymentSourceObject'
paymentSourceObject = Maybe PaymentSourceObject'
forall a. Maybe a
GHC.Maybe.Nothing,
      paymentSourceOwner :: Maybe PaymentSourceOwner'
paymentSourceOwner = Maybe PaymentSourceOwner'
forall a. Maybe a
GHC.Maybe.Nothing,
      paymentSourceP24 :: Maybe SourceTypeP24
paymentSourceP24 = Maybe SourceTypeP24
forall a. Maybe a
GHC.Maybe.Nothing,
      paymentSourcePayment :: Maybe Text
paymentSourcePayment = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      paymentSourcePaymentAmount :: Maybe Int
paymentSourcePaymentAmount = Maybe Int
forall a. Maybe a
GHC.Maybe.Nothing,
      paymentSourcePaymentCurrency :: Maybe Text
paymentSourcePaymentCurrency = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      paymentSourcePayoutsEnabled :: Maybe Bool
paymentSourcePayoutsEnabled = Maybe Bool
forall a. Maybe a
GHC.Maybe.Nothing,
      paymentSourceReceiver :: Maybe SourceReceiverFlow
paymentSourceReceiver = Maybe SourceReceiverFlow
forall a. Maybe a
GHC.Maybe.Nothing,
      paymentSourceRecipient :: Maybe PaymentSourceRecipient'Variants
paymentSourceRecipient = Maybe PaymentSourceRecipient'Variants
forall a. Maybe a
GHC.Maybe.Nothing,
      paymentSourceRedirect :: Maybe SourceRedirectFlow
paymentSourceRedirect = Maybe SourceRedirectFlow
forall a. Maybe a
GHC.Maybe.Nothing,
      paymentSourceRefundAddress :: Maybe Text
paymentSourceRefundAddress = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      paymentSourceRequirements :: Maybe AccountRequirements
paymentSourceRequirements = Maybe AccountRequirements
forall a. Maybe a
GHC.Maybe.Nothing,
      paymentSourceReusable :: Maybe Bool
paymentSourceReusable = Maybe Bool
forall a. Maybe a
GHC.Maybe.Nothing,
      paymentSourceRoutingNumber :: Maybe Text
paymentSourceRoutingNumber = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      paymentSourceSepaDebit :: Maybe SourceTypeSepaDebit
paymentSourceSepaDebit = Maybe SourceTypeSepaDebit
forall a. Maybe a
GHC.Maybe.Nothing,
      paymentSourceSettings :: Maybe PaymentSourceSettings'
paymentSourceSettings = Maybe PaymentSourceSettings'
forall a. Maybe a
GHC.Maybe.Nothing,
      paymentSourceSofort :: Maybe SourceTypeSofort
paymentSourceSofort = Maybe SourceTypeSofort
forall a. Maybe a
GHC.Maybe.Nothing,
      paymentSourceSourceOrder :: Maybe SourceOrder
paymentSourceSourceOrder = Maybe SourceOrder
forall a. Maybe a
GHC.Maybe.Nothing,
      paymentSourceStatementDescriptor :: Maybe Text
paymentSourceStatementDescriptor = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      paymentSourceStatus :: Maybe Text
paymentSourceStatus = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      paymentSourceThreeDSecure :: Maybe SourceTypeThreeDSecure
paymentSourceThreeDSecure = Maybe SourceTypeThreeDSecure
forall a. Maybe a
GHC.Maybe.Nothing,
      paymentSourceTokenizationMethod :: Maybe Text
paymentSourceTokenizationMethod = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      paymentSourceTosAcceptance :: Maybe AccountTosAcceptance
paymentSourceTosAcceptance = Maybe AccountTosAcceptance
forall a. Maybe a
GHC.Maybe.Nothing,
      paymentSourceTransactions :: Maybe PaymentSourceTransactions'
paymentSourceTransactions = Maybe PaymentSourceTransactions'
forall a. Maybe a
GHC.Maybe.Nothing,
      paymentSourceType :: Maybe PaymentSourceType'
paymentSourceType = Maybe PaymentSourceType'
forall a. Maybe a
GHC.Maybe.Nothing,
      paymentSourceUncapturedFunds :: Maybe Bool
paymentSourceUncapturedFunds = Maybe Bool
forall a. Maybe a
GHC.Maybe.Nothing,
      paymentSourceUsage :: Maybe Text
paymentSourceUsage = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      paymentSourceUsed :: Maybe Bool
paymentSourceUsed = Maybe Bool
forall a. Maybe a
GHC.Maybe.Nothing,
      paymentSourceUsedForPayment :: Maybe Bool
paymentSourceUsedForPayment = Maybe Bool
forall a. Maybe a
GHC.Maybe.Nothing,
      paymentSourceUsername :: Maybe Text
paymentSourceUsername = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      paymentSourceWechat :: Maybe SourceTypeWechat
paymentSourceWechat = Maybe SourceTypeWechat
forall a. Maybe a
GHC.Maybe.Nothing
    }

-- | Defines the oneOf schema located at @components.schemas.payment_source.anyOf.properties.account.anyOf@ in the specification.
--
-- The ID of the account that the bank account is associated with.
data PaymentSourceAccount'Variants
  = PaymentSourceAccount'Text Data.Text.Internal.Text
  | PaymentSourceAccount'Account Account
  deriving (Int -> PaymentSourceAccount'Variants -> ShowS
[PaymentSourceAccount'Variants] -> ShowS
PaymentSourceAccount'Variants -> String
(Int -> PaymentSourceAccount'Variants -> ShowS)
-> (PaymentSourceAccount'Variants -> String)
-> ([PaymentSourceAccount'Variants] -> ShowS)
-> Show PaymentSourceAccount'Variants
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PaymentSourceAccount'Variants] -> ShowS
$cshowList :: [PaymentSourceAccount'Variants] -> ShowS
show :: PaymentSourceAccount'Variants -> String
$cshow :: PaymentSourceAccount'Variants -> String
showsPrec :: Int -> PaymentSourceAccount'Variants -> ShowS
$cshowsPrec :: Int -> PaymentSourceAccount'Variants -> ShowS
GHC.Show.Show, PaymentSourceAccount'Variants
-> PaymentSourceAccount'Variants -> Bool
(PaymentSourceAccount'Variants
 -> PaymentSourceAccount'Variants -> Bool)
-> (PaymentSourceAccount'Variants
    -> PaymentSourceAccount'Variants -> Bool)
-> Eq PaymentSourceAccount'Variants
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PaymentSourceAccount'Variants
-> PaymentSourceAccount'Variants -> Bool
$c/= :: PaymentSourceAccount'Variants
-> PaymentSourceAccount'Variants -> Bool
== :: PaymentSourceAccount'Variants
-> PaymentSourceAccount'Variants -> Bool
$c== :: PaymentSourceAccount'Variants
-> PaymentSourceAccount'Variants -> Bool
GHC.Classes.Eq)

instance Data.Aeson.Types.ToJSON.ToJSON PaymentSourceAccount'Variants where
  toJSON :: PaymentSourceAccount'Variants -> Value
toJSON (PaymentSourceAccount'Text Text
a) = Text -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON Text
a
  toJSON (PaymentSourceAccount'Account Account
a) = Account -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON Account
a

instance Data.Aeson.Types.FromJSON.FromJSON PaymentSourceAccount'Variants where
  parseJSON :: Value -> Parser PaymentSourceAccount'Variants
parseJSON Value
val = case (Text -> PaymentSourceAccount'Variants
PaymentSourceAccount'Text (Text -> PaymentSourceAccount'Variants)
-> Result Text -> Result PaymentSourceAccount'Variants
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Data.Functor.<$> Value -> Result Text
forall a. FromJSON a => Value -> Result a
Data.Aeson.Types.FromJSON.fromJSON Value
val) Result PaymentSourceAccount'Variants
-> Result PaymentSourceAccount'Variants
-> Result PaymentSourceAccount'Variants
forall (f :: * -> *) a. Alternative f => f a -> f a -> f a
GHC.Base.<|> ((Account -> PaymentSourceAccount'Variants
PaymentSourceAccount'Account (Account -> PaymentSourceAccount'Variants)
-> Result Account -> Result PaymentSourceAccount'Variants
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Data.Functor.<$> Value -> Result Account
forall a. FromJSON a => Value -> Result a
Data.Aeson.Types.FromJSON.fromJSON Value
val) Result PaymentSourceAccount'Variants
-> Result PaymentSourceAccount'Variants
-> Result PaymentSourceAccount'Variants
forall (f :: * -> *) a. Alternative f => f a -> f a -> f a
GHC.Base.<|> String -> Result PaymentSourceAccount'Variants
forall a. String -> Result a
Data.Aeson.Types.Internal.Error String
"No variant matched") of
    Data.Aeson.Types.Internal.Success PaymentSourceAccount'Variants
a -> PaymentSourceAccount'Variants
-> Parser PaymentSourceAccount'Variants
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure PaymentSourceAccount'Variants
a
    Data.Aeson.Types.Internal.Error String
a -> String -> Parser PaymentSourceAccount'Variants
forall (m :: * -> *) a. MonadFail m => String -> m a
Control.Monad.Fail.fail String
a

-- | Defines the enum schema located at @components.schemas.payment_source.anyOf.properties.available_payout_methods.items@ in the specification.
data PaymentSourceAvailablePayoutMethods'
  = -- | This case is used if the value encountered during decoding does not match any of the provided cases in the specification.
    PaymentSourceAvailablePayoutMethods'Other Data.Aeson.Types.Internal.Value
  | -- | This constructor can be used to send values to the server which are not present in the specification yet.
    PaymentSourceAvailablePayoutMethods'Typed Data.Text.Internal.Text
  | -- | Represents the JSON value @"instant"@
    PaymentSourceAvailablePayoutMethods'EnumInstant
  | -- | Represents the JSON value @"standard"@
    PaymentSourceAvailablePayoutMethods'EnumStandard
  deriving (Int -> PaymentSourceAvailablePayoutMethods' -> ShowS
[PaymentSourceAvailablePayoutMethods'] -> ShowS
PaymentSourceAvailablePayoutMethods' -> String
(Int -> PaymentSourceAvailablePayoutMethods' -> ShowS)
-> (PaymentSourceAvailablePayoutMethods' -> String)
-> ([PaymentSourceAvailablePayoutMethods'] -> ShowS)
-> Show PaymentSourceAvailablePayoutMethods'
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PaymentSourceAvailablePayoutMethods'] -> ShowS
$cshowList :: [PaymentSourceAvailablePayoutMethods'] -> ShowS
show :: PaymentSourceAvailablePayoutMethods' -> String
$cshow :: PaymentSourceAvailablePayoutMethods' -> String
showsPrec :: Int -> PaymentSourceAvailablePayoutMethods' -> ShowS
$cshowsPrec :: Int -> PaymentSourceAvailablePayoutMethods' -> ShowS
GHC.Show.Show, PaymentSourceAvailablePayoutMethods'
-> PaymentSourceAvailablePayoutMethods' -> Bool
(PaymentSourceAvailablePayoutMethods'
 -> PaymentSourceAvailablePayoutMethods' -> Bool)
-> (PaymentSourceAvailablePayoutMethods'
    -> PaymentSourceAvailablePayoutMethods' -> Bool)
-> Eq PaymentSourceAvailablePayoutMethods'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PaymentSourceAvailablePayoutMethods'
-> PaymentSourceAvailablePayoutMethods' -> Bool
$c/= :: PaymentSourceAvailablePayoutMethods'
-> PaymentSourceAvailablePayoutMethods' -> Bool
== :: PaymentSourceAvailablePayoutMethods'
-> PaymentSourceAvailablePayoutMethods' -> Bool
$c== :: PaymentSourceAvailablePayoutMethods'
-> PaymentSourceAvailablePayoutMethods' -> Bool
GHC.Classes.Eq)

instance Data.Aeson.Types.ToJSON.ToJSON PaymentSourceAvailablePayoutMethods' where
  toJSON :: PaymentSourceAvailablePayoutMethods' -> Value
toJSON (PaymentSourceAvailablePayoutMethods'Other Value
val) = Value
val
  toJSON (PaymentSourceAvailablePayoutMethods'Typed Text
val) = Text -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON Text
val
  toJSON (PaymentSourceAvailablePayoutMethods'
PaymentSourceAvailablePayoutMethods'EnumInstant) = Value
"instant"
  toJSON (PaymentSourceAvailablePayoutMethods'
PaymentSourceAvailablePayoutMethods'EnumStandard) = Value
"standard"

instance Data.Aeson.Types.FromJSON.FromJSON PaymentSourceAvailablePayoutMethods' where
  parseJSON :: Value -> Parser PaymentSourceAvailablePayoutMethods'
parseJSON Value
val =
    PaymentSourceAvailablePayoutMethods'
-> Parser PaymentSourceAvailablePayoutMethods'
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure
      ( if
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"instant" -> PaymentSourceAvailablePayoutMethods'
PaymentSourceAvailablePayoutMethods'EnumInstant
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"standard" -> PaymentSourceAvailablePayoutMethods'
PaymentSourceAvailablePayoutMethods'EnumStandard
            | Bool
GHC.Base.otherwise -> Value -> PaymentSourceAvailablePayoutMethods'
PaymentSourceAvailablePayoutMethods'Other Value
val
      )

-- | Defines the object schema located at @components.schemas.payment_source.anyOf.properties.business_profile.anyOf@ in the specification.
--
-- Business information about the account.
data PaymentSourceBusinessProfile' = PaymentSourceBusinessProfile'
  { -- | mcc: [The merchant category code for the account](https:\/\/stripe.com\/docs\/connect\/setting-mcc). MCCs are used to classify businesses based on the goods or services they provide.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PaymentSourceBusinessProfile' -> Maybe Text
paymentSourceBusinessProfile'Mcc :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | name: The customer-facing business name.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PaymentSourceBusinessProfile' -> Maybe Text
paymentSourceBusinessProfile'Name :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | product_description: Internal-only description of the product sold or service provided by the business. It\'s used by Stripe for risk and underwriting purposes.
    --
    -- Constraints:
    --
    -- * Maximum length of 40000
    PaymentSourceBusinessProfile' -> Maybe Text
paymentSourceBusinessProfile'ProductDescription :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | support_address: A publicly available mailing address for sending support issues to.
    PaymentSourceBusinessProfile'
-> Maybe PaymentSourceBusinessProfile'SupportAddress'
paymentSourceBusinessProfile'SupportAddress :: (GHC.Maybe.Maybe PaymentSourceBusinessProfile'SupportAddress'),
    -- | support_email: A publicly available email address for sending support issues to.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PaymentSourceBusinessProfile' -> Maybe Text
paymentSourceBusinessProfile'SupportEmail :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | support_phone: A publicly available phone number to call with support issues.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PaymentSourceBusinessProfile' -> Maybe Text
paymentSourceBusinessProfile'SupportPhone :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | support_url: A publicly available website for handling support issues.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PaymentSourceBusinessProfile' -> Maybe Text
paymentSourceBusinessProfile'SupportUrl :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | url: The business\'s publicly available website.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PaymentSourceBusinessProfile' -> Maybe Text
paymentSourceBusinessProfile'Url :: (GHC.Maybe.Maybe Data.Text.Internal.Text)
  }
  deriving
    ( Int -> PaymentSourceBusinessProfile' -> ShowS
[PaymentSourceBusinessProfile'] -> ShowS
PaymentSourceBusinessProfile' -> String
(Int -> PaymentSourceBusinessProfile' -> ShowS)
-> (PaymentSourceBusinessProfile' -> String)
-> ([PaymentSourceBusinessProfile'] -> ShowS)
-> Show PaymentSourceBusinessProfile'
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PaymentSourceBusinessProfile'] -> ShowS
$cshowList :: [PaymentSourceBusinessProfile'] -> ShowS
show :: PaymentSourceBusinessProfile' -> String
$cshow :: PaymentSourceBusinessProfile' -> String
showsPrec :: Int -> PaymentSourceBusinessProfile' -> ShowS
$cshowsPrec :: Int -> PaymentSourceBusinessProfile' -> ShowS
GHC.Show.Show,
      PaymentSourceBusinessProfile'
-> PaymentSourceBusinessProfile' -> Bool
(PaymentSourceBusinessProfile'
 -> PaymentSourceBusinessProfile' -> Bool)
-> (PaymentSourceBusinessProfile'
    -> PaymentSourceBusinessProfile' -> Bool)
-> Eq PaymentSourceBusinessProfile'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PaymentSourceBusinessProfile'
-> PaymentSourceBusinessProfile' -> Bool
$c/= :: PaymentSourceBusinessProfile'
-> PaymentSourceBusinessProfile' -> Bool
== :: PaymentSourceBusinessProfile'
-> PaymentSourceBusinessProfile' -> Bool
$c== :: PaymentSourceBusinessProfile'
-> PaymentSourceBusinessProfile' -> Bool
GHC.Classes.Eq
    )

instance Data.Aeson.Types.ToJSON.ToJSON PaymentSourceBusinessProfile' where
  toJSON :: PaymentSourceBusinessProfile' -> Value
toJSON PaymentSourceBusinessProfile'
obj = [Pair] -> Value
Data.Aeson.Types.Internal.object (Text
"mcc" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSourceBusinessProfile' -> Maybe Text
paymentSourceBusinessProfile'Mcc PaymentSourceBusinessProfile'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"name" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSourceBusinessProfile' -> Maybe Text
paymentSourceBusinessProfile'Name PaymentSourceBusinessProfile'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"product_description" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSourceBusinessProfile' -> Maybe Text
paymentSourceBusinessProfile'ProductDescription PaymentSourceBusinessProfile'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"support_address" Text -> Maybe PaymentSourceBusinessProfile'SupportAddress' -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSourceBusinessProfile'
-> Maybe PaymentSourceBusinessProfile'SupportAddress'
paymentSourceBusinessProfile'SupportAddress PaymentSourceBusinessProfile'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"support_email" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSourceBusinessProfile' -> Maybe Text
paymentSourceBusinessProfile'SupportEmail PaymentSourceBusinessProfile'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"support_phone" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSourceBusinessProfile' -> Maybe Text
paymentSourceBusinessProfile'SupportPhone PaymentSourceBusinessProfile'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"support_url" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSourceBusinessProfile' -> Maybe Text
paymentSourceBusinessProfile'SupportUrl PaymentSourceBusinessProfile'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"url" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSourceBusinessProfile' -> Maybe Text
paymentSourceBusinessProfile'Url PaymentSourceBusinessProfile'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: PaymentSourceBusinessProfile' -> Encoding
toEncoding PaymentSourceBusinessProfile'
obj = Series -> Encoding
Data.Aeson.Encoding.Internal.pairs ((Text
"mcc" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSourceBusinessProfile' -> Maybe Text
paymentSourceBusinessProfile'Mcc PaymentSourceBusinessProfile'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"name" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSourceBusinessProfile' -> Maybe Text
paymentSourceBusinessProfile'Name PaymentSourceBusinessProfile'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"product_description" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSourceBusinessProfile' -> Maybe Text
paymentSourceBusinessProfile'ProductDescription PaymentSourceBusinessProfile'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"support_address" Text
-> Maybe PaymentSourceBusinessProfile'SupportAddress' -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSourceBusinessProfile'
-> Maybe PaymentSourceBusinessProfile'SupportAddress'
paymentSourceBusinessProfile'SupportAddress PaymentSourceBusinessProfile'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"support_email" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSourceBusinessProfile' -> Maybe Text
paymentSourceBusinessProfile'SupportEmail PaymentSourceBusinessProfile'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"support_phone" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSourceBusinessProfile' -> Maybe Text
paymentSourceBusinessProfile'SupportPhone PaymentSourceBusinessProfile'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"support_url" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSourceBusinessProfile' -> Maybe Text
paymentSourceBusinessProfile'SupportUrl PaymentSourceBusinessProfile'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> (Text
"url" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSourceBusinessProfile' -> Maybe Text
paymentSourceBusinessProfile'Url PaymentSourceBusinessProfile'
obj))))))))

instance Data.Aeson.Types.FromJSON.FromJSON PaymentSourceBusinessProfile' where
  parseJSON :: Value -> Parser PaymentSourceBusinessProfile'
parseJSON = String
-> (Object -> Parser PaymentSourceBusinessProfile')
-> Value
-> Parser PaymentSourceBusinessProfile'
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.Aeson.Types.FromJSON.withObject String
"PaymentSourceBusinessProfile'" (\Object
obj -> ((((((((Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe PaymentSourceBusinessProfile'SupportAddress'
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> PaymentSourceBusinessProfile')
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe PaymentSourceBusinessProfile'SupportAddress'
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> PaymentSourceBusinessProfile')
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe PaymentSourceBusinessProfile'SupportAddress'
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> PaymentSourceBusinessProfile'
PaymentSourceBusinessProfile' Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe PaymentSourceBusinessProfile'SupportAddress'
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> PaymentSourceBusinessProfile')
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe PaymentSourceBusinessProfile'SupportAddress'
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> PaymentSourceBusinessProfile')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"mcc")) Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe PaymentSourceBusinessProfile'SupportAddress'
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> PaymentSourceBusinessProfile')
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe PaymentSourceBusinessProfile'SupportAddress'
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> PaymentSourceBusinessProfile')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"name")) Parser
  (Maybe Text
   -> Maybe PaymentSourceBusinessProfile'SupportAddress'
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> PaymentSourceBusinessProfile')
-> Parser (Maybe Text)
-> Parser
     (Maybe PaymentSourceBusinessProfile'SupportAddress'
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> PaymentSourceBusinessProfile')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"product_description")) Parser
  (Maybe PaymentSourceBusinessProfile'SupportAddress'
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> PaymentSourceBusinessProfile')
-> Parser (Maybe PaymentSourceBusinessProfile'SupportAddress')
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> PaymentSourceBusinessProfile')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser (Maybe PaymentSourceBusinessProfile'SupportAddress')
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"support_address")) Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> PaymentSourceBusinessProfile')
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Text -> Maybe Text -> PaymentSourceBusinessProfile')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"support_email")) Parser
  (Maybe Text
   -> Maybe Text -> Maybe Text -> PaymentSourceBusinessProfile')
-> Parser (Maybe Text)
-> Parser
     (Maybe Text -> Maybe Text -> PaymentSourceBusinessProfile')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"support_phone")) Parser (Maybe Text -> Maybe Text -> PaymentSourceBusinessProfile')
-> Parser (Maybe Text)
-> Parser (Maybe Text -> PaymentSourceBusinessProfile')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"support_url")) Parser (Maybe Text -> PaymentSourceBusinessProfile')
-> Parser (Maybe Text) -> Parser PaymentSourceBusinessProfile'
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"url"))

-- | Create a new 'PaymentSourceBusinessProfile'' with all required fields.
mkPaymentSourceBusinessProfile' :: PaymentSourceBusinessProfile'
mkPaymentSourceBusinessProfile' :: PaymentSourceBusinessProfile'
mkPaymentSourceBusinessProfile' =
  PaymentSourceBusinessProfile' :: Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe PaymentSourceBusinessProfile'SupportAddress'
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> PaymentSourceBusinessProfile'
PaymentSourceBusinessProfile'
    { paymentSourceBusinessProfile'Mcc :: Maybe Text
paymentSourceBusinessProfile'Mcc = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      paymentSourceBusinessProfile'Name :: Maybe Text
paymentSourceBusinessProfile'Name = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      paymentSourceBusinessProfile'ProductDescription :: Maybe Text
paymentSourceBusinessProfile'ProductDescription = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      paymentSourceBusinessProfile'SupportAddress :: Maybe PaymentSourceBusinessProfile'SupportAddress'
paymentSourceBusinessProfile'SupportAddress = Maybe PaymentSourceBusinessProfile'SupportAddress'
forall a. Maybe a
GHC.Maybe.Nothing,
      paymentSourceBusinessProfile'SupportEmail :: Maybe Text
paymentSourceBusinessProfile'SupportEmail = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      paymentSourceBusinessProfile'SupportPhone :: Maybe Text
paymentSourceBusinessProfile'SupportPhone = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      paymentSourceBusinessProfile'SupportUrl :: Maybe Text
paymentSourceBusinessProfile'SupportUrl = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      paymentSourceBusinessProfile'Url :: Maybe Text
paymentSourceBusinessProfile'Url = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing
    }

-- | Defines the object schema located at @components.schemas.payment_source.anyOf.properties.business_profile.anyOf.properties.support_address.anyOf@ in the specification.
--
-- A publicly available mailing address for sending support issues to.
data PaymentSourceBusinessProfile'SupportAddress' = PaymentSourceBusinessProfile'SupportAddress'
  { -- | city: City, district, suburb, town, or village.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PaymentSourceBusinessProfile'SupportAddress' -> Maybe Text
paymentSourceBusinessProfile'SupportAddress'City :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | country: Two-letter country code ([ISO 3166-1 alpha-2](https:\/\/en.wikipedia.org\/wiki\/ISO_3166-1_alpha-2)).
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PaymentSourceBusinessProfile'SupportAddress' -> Maybe Text
paymentSourceBusinessProfile'SupportAddress'Country :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | line1: Address line 1 (e.g., street, PO Box, or company name).
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PaymentSourceBusinessProfile'SupportAddress' -> Maybe Text
paymentSourceBusinessProfile'SupportAddress'Line1 :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | line2: Address line 2 (e.g., apartment, suite, unit, or building).
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PaymentSourceBusinessProfile'SupportAddress' -> Maybe Text
paymentSourceBusinessProfile'SupportAddress'Line2 :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | postal_code: ZIP or postal code.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PaymentSourceBusinessProfile'SupportAddress' -> Maybe Text
paymentSourceBusinessProfile'SupportAddress'PostalCode :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | state: State, county, province, or region.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PaymentSourceBusinessProfile'SupportAddress' -> Maybe Text
paymentSourceBusinessProfile'SupportAddress'State :: (GHC.Maybe.Maybe Data.Text.Internal.Text)
  }
  deriving
    ( Int -> PaymentSourceBusinessProfile'SupportAddress' -> ShowS
[PaymentSourceBusinessProfile'SupportAddress'] -> ShowS
PaymentSourceBusinessProfile'SupportAddress' -> String
(Int -> PaymentSourceBusinessProfile'SupportAddress' -> ShowS)
-> (PaymentSourceBusinessProfile'SupportAddress' -> String)
-> ([PaymentSourceBusinessProfile'SupportAddress'] -> ShowS)
-> Show PaymentSourceBusinessProfile'SupportAddress'
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PaymentSourceBusinessProfile'SupportAddress'] -> ShowS
$cshowList :: [PaymentSourceBusinessProfile'SupportAddress'] -> ShowS
show :: PaymentSourceBusinessProfile'SupportAddress' -> String
$cshow :: PaymentSourceBusinessProfile'SupportAddress' -> String
showsPrec :: Int -> PaymentSourceBusinessProfile'SupportAddress' -> ShowS
$cshowsPrec :: Int -> PaymentSourceBusinessProfile'SupportAddress' -> ShowS
GHC.Show.Show,
      PaymentSourceBusinessProfile'SupportAddress'
-> PaymentSourceBusinessProfile'SupportAddress' -> Bool
(PaymentSourceBusinessProfile'SupportAddress'
 -> PaymentSourceBusinessProfile'SupportAddress' -> Bool)
-> (PaymentSourceBusinessProfile'SupportAddress'
    -> PaymentSourceBusinessProfile'SupportAddress' -> Bool)
-> Eq PaymentSourceBusinessProfile'SupportAddress'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PaymentSourceBusinessProfile'SupportAddress'
-> PaymentSourceBusinessProfile'SupportAddress' -> Bool
$c/= :: PaymentSourceBusinessProfile'SupportAddress'
-> PaymentSourceBusinessProfile'SupportAddress' -> Bool
== :: PaymentSourceBusinessProfile'SupportAddress'
-> PaymentSourceBusinessProfile'SupportAddress' -> Bool
$c== :: PaymentSourceBusinessProfile'SupportAddress'
-> PaymentSourceBusinessProfile'SupportAddress' -> Bool
GHC.Classes.Eq
    )

instance Data.Aeson.Types.ToJSON.ToJSON PaymentSourceBusinessProfile'SupportAddress' where
  toJSON :: PaymentSourceBusinessProfile'SupportAddress' -> Value
toJSON PaymentSourceBusinessProfile'SupportAddress'
obj = [Pair] -> Value
Data.Aeson.Types.Internal.object (Text
"city" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSourceBusinessProfile'SupportAddress' -> Maybe Text
paymentSourceBusinessProfile'SupportAddress'City PaymentSourceBusinessProfile'SupportAddress'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"country" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSourceBusinessProfile'SupportAddress' -> Maybe Text
paymentSourceBusinessProfile'SupportAddress'Country PaymentSourceBusinessProfile'SupportAddress'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"line1" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSourceBusinessProfile'SupportAddress' -> Maybe Text
paymentSourceBusinessProfile'SupportAddress'Line1 PaymentSourceBusinessProfile'SupportAddress'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"line2" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSourceBusinessProfile'SupportAddress' -> Maybe Text
paymentSourceBusinessProfile'SupportAddress'Line2 PaymentSourceBusinessProfile'SupportAddress'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"postal_code" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSourceBusinessProfile'SupportAddress' -> Maybe Text
paymentSourceBusinessProfile'SupportAddress'PostalCode PaymentSourceBusinessProfile'SupportAddress'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"state" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSourceBusinessProfile'SupportAddress' -> Maybe Text
paymentSourceBusinessProfile'SupportAddress'State PaymentSourceBusinessProfile'SupportAddress'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: PaymentSourceBusinessProfile'SupportAddress' -> Encoding
toEncoding PaymentSourceBusinessProfile'SupportAddress'
obj = Series -> Encoding
Data.Aeson.Encoding.Internal.pairs ((Text
"city" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSourceBusinessProfile'SupportAddress' -> Maybe Text
paymentSourceBusinessProfile'SupportAddress'City PaymentSourceBusinessProfile'SupportAddress'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"country" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSourceBusinessProfile'SupportAddress' -> Maybe Text
paymentSourceBusinessProfile'SupportAddress'Country PaymentSourceBusinessProfile'SupportAddress'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"line1" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSourceBusinessProfile'SupportAddress' -> Maybe Text
paymentSourceBusinessProfile'SupportAddress'Line1 PaymentSourceBusinessProfile'SupportAddress'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"line2" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSourceBusinessProfile'SupportAddress' -> Maybe Text
paymentSourceBusinessProfile'SupportAddress'Line2 PaymentSourceBusinessProfile'SupportAddress'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"postal_code" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSourceBusinessProfile'SupportAddress' -> Maybe Text
paymentSourceBusinessProfile'SupportAddress'PostalCode PaymentSourceBusinessProfile'SupportAddress'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> (Text
"state" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSourceBusinessProfile'SupportAddress' -> Maybe Text
paymentSourceBusinessProfile'SupportAddress'State PaymentSourceBusinessProfile'SupportAddress'
obj))))))

instance Data.Aeson.Types.FromJSON.FromJSON PaymentSourceBusinessProfile'SupportAddress' where
  parseJSON :: Value -> Parser PaymentSourceBusinessProfile'SupportAddress'
parseJSON = String
-> (Object -> Parser PaymentSourceBusinessProfile'SupportAddress')
-> Value
-> Parser PaymentSourceBusinessProfile'SupportAddress'
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.Aeson.Types.FromJSON.withObject String
"PaymentSourceBusinessProfile'SupportAddress'" (\Object
obj -> ((((((Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> PaymentSourceBusinessProfile'SupportAddress')
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> PaymentSourceBusinessProfile'SupportAddress')
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> PaymentSourceBusinessProfile'SupportAddress'
PaymentSourceBusinessProfile'SupportAddress' Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> PaymentSourceBusinessProfile'SupportAddress')
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> PaymentSourceBusinessProfile'SupportAddress')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"city")) Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> PaymentSourceBusinessProfile'SupportAddress')
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> PaymentSourceBusinessProfile'SupportAddress')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"country")) Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> PaymentSourceBusinessProfile'SupportAddress')
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> PaymentSourceBusinessProfile'SupportAddress')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"line1")) Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> PaymentSourceBusinessProfile'SupportAddress')
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Text -> PaymentSourceBusinessProfile'SupportAddress')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"line2")) Parser
  (Maybe Text
   -> Maybe Text -> PaymentSourceBusinessProfile'SupportAddress')
-> Parser (Maybe Text)
-> Parser
     (Maybe Text -> PaymentSourceBusinessProfile'SupportAddress')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"postal_code")) Parser (Maybe Text -> PaymentSourceBusinessProfile'SupportAddress')
-> Parser (Maybe Text)
-> Parser PaymentSourceBusinessProfile'SupportAddress'
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"state"))

-- | Create a new 'PaymentSourceBusinessProfile'SupportAddress'' with all required fields.
mkPaymentSourceBusinessProfile'SupportAddress' :: PaymentSourceBusinessProfile'SupportAddress'
mkPaymentSourceBusinessProfile'SupportAddress' :: PaymentSourceBusinessProfile'SupportAddress'
mkPaymentSourceBusinessProfile'SupportAddress' =
  PaymentSourceBusinessProfile'SupportAddress' :: Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> PaymentSourceBusinessProfile'SupportAddress'
PaymentSourceBusinessProfile'SupportAddress'
    { paymentSourceBusinessProfile'SupportAddress'City :: Maybe Text
paymentSourceBusinessProfile'SupportAddress'City = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      paymentSourceBusinessProfile'SupportAddress'Country :: Maybe Text
paymentSourceBusinessProfile'SupportAddress'Country = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      paymentSourceBusinessProfile'SupportAddress'Line1 :: Maybe Text
paymentSourceBusinessProfile'SupportAddress'Line1 = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      paymentSourceBusinessProfile'SupportAddress'Line2 :: Maybe Text
paymentSourceBusinessProfile'SupportAddress'Line2 = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      paymentSourceBusinessProfile'SupportAddress'PostalCode :: Maybe Text
paymentSourceBusinessProfile'SupportAddress'PostalCode = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      paymentSourceBusinessProfile'SupportAddress'State :: Maybe Text
paymentSourceBusinessProfile'SupportAddress'State = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing
    }

-- | Defines the enum schema located at @components.schemas.payment_source.anyOf.properties.business_type@ in the specification.
--
-- The business type.
data PaymentSourceBusinessType'
  = -- | This case is used if the value encountered during decoding does not match any of the provided cases in the specification.
    PaymentSourceBusinessType'Other Data.Aeson.Types.Internal.Value
  | -- | This constructor can be used to send values to the server which are not present in the specification yet.
    PaymentSourceBusinessType'Typed Data.Text.Internal.Text
  | -- | Represents the JSON value @"company"@
    PaymentSourceBusinessType'EnumCompany
  | -- | Represents the JSON value @"government_entity"@
    PaymentSourceBusinessType'EnumGovernmentEntity
  | -- | Represents the JSON value @"individual"@
    PaymentSourceBusinessType'EnumIndividual
  | -- | Represents the JSON value @"non_profit"@
    PaymentSourceBusinessType'EnumNonProfit
  deriving (Int -> PaymentSourceBusinessType' -> ShowS
[PaymentSourceBusinessType'] -> ShowS
PaymentSourceBusinessType' -> String
(Int -> PaymentSourceBusinessType' -> ShowS)
-> (PaymentSourceBusinessType' -> String)
-> ([PaymentSourceBusinessType'] -> ShowS)
-> Show PaymentSourceBusinessType'
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PaymentSourceBusinessType'] -> ShowS
$cshowList :: [PaymentSourceBusinessType'] -> ShowS
show :: PaymentSourceBusinessType' -> String
$cshow :: PaymentSourceBusinessType' -> String
showsPrec :: Int -> PaymentSourceBusinessType' -> ShowS
$cshowsPrec :: Int -> PaymentSourceBusinessType' -> ShowS
GHC.Show.Show, PaymentSourceBusinessType' -> PaymentSourceBusinessType' -> Bool
(PaymentSourceBusinessType' -> PaymentSourceBusinessType' -> Bool)
-> (PaymentSourceBusinessType'
    -> PaymentSourceBusinessType' -> Bool)
-> Eq PaymentSourceBusinessType'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PaymentSourceBusinessType' -> PaymentSourceBusinessType' -> Bool
$c/= :: PaymentSourceBusinessType' -> PaymentSourceBusinessType' -> Bool
== :: PaymentSourceBusinessType' -> PaymentSourceBusinessType' -> Bool
$c== :: PaymentSourceBusinessType' -> PaymentSourceBusinessType' -> Bool
GHC.Classes.Eq)

instance Data.Aeson.Types.ToJSON.ToJSON PaymentSourceBusinessType' where
  toJSON :: PaymentSourceBusinessType' -> Value
toJSON (PaymentSourceBusinessType'Other Value
val) = Value
val
  toJSON (PaymentSourceBusinessType'Typed Text
val) = Text -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON Text
val
  toJSON (PaymentSourceBusinessType'
PaymentSourceBusinessType'EnumCompany) = Value
"company"
  toJSON (PaymentSourceBusinessType'
PaymentSourceBusinessType'EnumGovernmentEntity) = Value
"government_entity"
  toJSON (PaymentSourceBusinessType'
PaymentSourceBusinessType'EnumIndividual) = Value
"individual"
  toJSON (PaymentSourceBusinessType'
PaymentSourceBusinessType'EnumNonProfit) = Value
"non_profit"

instance Data.Aeson.Types.FromJSON.FromJSON PaymentSourceBusinessType' where
  parseJSON :: Value -> Parser PaymentSourceBusinessType'
parseJSON Value
val =
    PaymentSourceBusinessType' -> Parser PaymentSourceBusinessType'
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure
      ( if
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"company" -> PaymentSourceBusinessType'
PaymentSourceBusinessType'EnumCompany
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"government_entity" -> PaymentSourceBusinessType'
PaymentSourceBusinessType'EnumGovernmentEntity
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"individual" -> PaymentSourceBusinessType'
PaymentSourceBusinessType'EnumIndividual
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"non_profit" -> PaymentSourceBusinessType'
PaymentSourceBusinessType'EnumNonProfit
            | Bool
GHC.Base.otherwise -> Value -> PaymentSourceBusinessType'
PaymentSourceBusinessType'Other Value
val
      )

-- | Defines the oneOf schema located at @components.schemas.payment_source.anyOf.properties.customer.anyOf@ in the specification.
--
-- The ID of the customer associated with this Alipay Account.
data PaymentSourceCustomer'Variants
  = PaymentSourceCustomer'Text Data.Text.Internal.Text
  | PaymentSourceCustomer'Customer Customer
  | PaymentSourceCustomer'DeletedCustomer DeletedCustomer
  deriving (Int -> PaymentSourceCustomer'Variants -> ShowS
[PaymentSourceCustomer'Variants] -> ShowS
PaymentSourceCustomer'Variants -> String
(Int -> PaymentSourceCustomer'Variants -> ShowS)
-> (PaymentSourceCustomer'Variants -> String)
-> ([PaymentSourceCustomer'Variants] -> ShowS)
-> Show PaymentSourceCustomer'Variants
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PaymentSourceCustomer'Variants] -> ShowS
$cshowList :: [PaymentSourceCustomer'Variants] -> ShowS
show :: PaymentSourceCustomer'Variants -> String
$cshow :: PaymentSourceCustomer'Variants -> String
showsPrec :: Int -> PaymentSourceCustomer'Variants -> ShowS
$cshowsPrec :: Int -> PaymentSourceCustomer'Variants -> ShowS
GHC.Show.Show, PaymentSourceCustomer'Variants
-> PaymentSourceCustomer'Variants -> Bool
(PaymentSourceCustomer'Variants
 -> PaymentSourceCustomer'Variants -> Bool)
-> (PaymentSourceCustomer'Variants
    -> PaymentSourceCustomer'Variants -> Bool)
-> Eq PaymentSourceCustomer'Variants
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PaymentSourceCustomer'Variants
-> PaymentSourceCustomer'Variants -> Bool
$c/= :: PaymentSourceCustomer'Variants
-> PaymentSourceCustomer'Variants -> Bool
== :: PaymentSourceCustomer'Variants
-> PaymentSourceCustomer'Variants -> Bool
$c== :: PaymentSourceCustomer'Variants
-> PaymentSourceCustomer'Variants -> Bool
GHC.Classes.Eq)

instance Data.Aeson.Types.ToJSON.ToJSON PaymentSourceCustomer'Variants where
  toJSON :: PaymentSourceCustomer'Variants -> Value
toJSON (PaymentSourceCustomer'Text Text
a) = Text -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON Text
a
  toJSON (PaymentSourceCustomer'Customer Customer
a) = Customer -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON Customer
a
  toJSON (PaymentSourceCustomer'DeletedCustomer DeletedCustomer
a) = DeletedCustomer -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON DeletedCustomer
a

instance Data.Aeson.Types.FromJSON.FromJSON PaymentSourceCustomer'Variants where
  parseJSON :: Value -> Parser PaymentSourceCustomer'Variants
parseJSON Value
val = case (Text -> PaymentSourceCustomer'Variants
PaymentSourceCustomer'Text (Text -> PaymentSourceCustomer'Variants)
-> Result Text -> Result PaymentSourceCustomer'Variants
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Data.Functor.<$> Value -> Result Text
forall a. FromJSON a => Value -> Result a
Data.Aeson.Types.FromJSON.fromJSON Value
val) Result PaymentSourceCustomer'Variants
-> Result PaymentSourceCustomer'Variants
-> Result PaymentSourceCustomer'Variants
forall (f :: * -> *) a. Alternative f => f a -> f a -> f a
GHC.Base.<|> ((Customer -> PaymentSourceCustomer'Variants
PaymentSourceCustomer'Customer (Customer -> PaymentSourceCustomer'Variants)
-> Result Customer -> Result PaymentSourceCustomer'Variants
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Data.Functor.<$> Value -> Result Customer
forall a. FromJSON a => Value -> Result a
Data.Aeson.Types.FromJSON.fromJSON Value
val) Result PaymentSourceCustomer'Variants
-> Result PaymentSourceCustomer'Variants
-> Result PaymentSourceCustomer'Variants
forall (f :: * -> *) a. Alternative f => f a -> f a -> f a
GHC.Base.<|> ((DeletedCustomer -> PaymentSourceCustomer'Variants
PaymentSourceCustomer'DeletedCustomer (DeletedCustomer -> PaymentSourceCustomer'Variants)
-> Result DeletedCustomer -> Result PaymentSourceCustomer'Variants
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Data.Functor.<$> Value -> Result DeletedCustomer
forall a. FromJSON a => Value -> Result a
Data.Aeson.Types.FromJSON.fromJSON Value
val) Result PaymentSourceCustomer'Variants
-> Result PaymentSourceCustomer'Variants
-> Result PaymentSourceCustomer'Variants
forall (f :: * -> *) a. Alternative f => f a -> f a -> f a
GHC.Base.<|> String -> Result PaymentSourceCustomer'Variants
forall a. String -> Result a
Data.Aeson.Types.Internal.Error String
"No variant matched")) of
    Data.Aeson.Types.Internal.Success PaymentSourceCustomer'Variants
a -> PaymentSourceCustomer'Variants
-> Parser PaymentSourceCustomer'Variants
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure PaymentSourceCustomer'Variants
a
    Data.Aeson.Types.Internal.Error String
a -> String -> Parser PaymentSourceCustomer'Variants
forall (m :: * -> *) a. MonadFail m => String -> m a
Control.Monad.Fail.fail String
a

-- | Defines the object schema located at @components.schemas.payment_source.anyOf.properties.external_accounts@ in the specification.
--
-- External accounts (bank accounts and debit cards) currently attached to this account
data PaymentSourceExternalAccounts' = PaymentSourceExternalAccounts'
  { -- | data: The list contains all external accounts that have been attached to the Stripe account. These may be bank accounts or cards.
    PaymentSourceExternalAccounts'
-> [PaymentSourceExternalAccounts'Data']
paymentSourceExternalAccounts'Data :: ([PaymentSourceExternalAccounts'Data']),
    -- | has_more: True if this list has another page of items after this one that can be fetched.
    PaymentSourceExternalAccounts' -> Bool
paymentSourceExternalAccounts'HasMore :: GHC.Types.Bool,
    -- | url: The URL where this list can be accessed.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PaymentSourceExternalAccounts' -> Text
paymentSourceExternalAccounts'Url :: Data.Text.Internal.Text
  }
  deriving
    ( Int -> PaymentSourceExternalAccounts' -> ShowS
[PaymentSourceExternalAccounts'] -> ShowS
PaymentSourceExternalAccounts' -> String
(Int -> PaymentSourceExternalAccounts' -> ShowS)
-> (PaymentSourceExternalAccounts' -> String)
-> ([PaymentSourceExternalAccounts'] -> ShowS)
-> Show PaymentSourceExternalAccounts'
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PaymentSourceExternalAccounts'] -> ShowS
$cshowList :: [PaymentSourceExternalAccounts'] -> ShowS
show :: PaymentSourceExternalAccounts' -> String
$cshow :: PaymentSourceExternalAccounts' -> String
showsPrec :: Int -> PaymentSourceExternalAccounts' -> ShowS
$cshowsPrec :: Int -> PaymentSourceExternalAccounts' -> ShowS
GHC.Show.Show,
      PaymentSourceExternalAccounts'
-> PaymentSourceExternalAccounts' -> Bool
(PaymentSourceExternalAccounts'
 -> PaymentSourceExternalAccounts' -> Bool)
-> (PaymentSourceExternalAccounts'
    -> PaymentSourceExternalAccounts' -> Bool)
-> Eq PaymentSourceExternalAccounts'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PaymentSourceExternalAccounts'
-> PaymentSourceExternalAccounts' -> Bool
$c/= :: PaymentSourceExternalAccounts'
-> PaymentSourceExternalAccounts' -> Bool
== :: PaymentSourceExternalAccounts'
-> PaymentSourceExternalAccounts' -> Bool
$c== :: PaymentSourceExternalAccounts'
-> PaymentSourceExternalAccounts' -> Bool
GHC.Classes.Eq
    )

instance Data.Aeson.Types.ToJSON.ToJSON PaymentSourceExternalAccounts' where
  toJSON :: PaymentSourceExternalAccounts' -> Value
toJSON PaymentSourceExternalAccounts'
obj = [Pair] -> Value
Data.Aeson.Types.Internal.object (Text
"data" Text -> [PaymentSourceExternalAccounts'Data'] -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSourceExternalAccounts'
-> [PaymentSourceExternalAccounts'Data']
paymentSourceExternalAccounts'Data PaymentSourceExternalAccounts'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"has_more" Text -> Bool -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSourceExternalAccounts' -> Bool
paymentSourceExternalAccounts'HasMore PaymentSourceExternalAccounts'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"url" Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSourceExternalAccounts' -> Text
paymentSourceExternalAccounts'Url PaymentSourceExternalAccounts'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"object" Text -> Value -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Text -> Value
Data.Aeson.Types.Internal.String Text
"list" Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: PaymentSourceExternalAccounts' -> Encoding
toEncoding PaymentSourceExternalAccounts'
obj = Series -> Encoding
Data.Aeson.Encoding.Internal.pairs ((Text
"data" Text -> [PaymentSourceExternalAccounts'Data'] -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSourceExternalAccounts'
-> [PaymentSourceExternalAccounts'Data']
paymentSourceExternalAccounts'Data PaymentSourceExternalAccounts'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"has_more" Text -> Bool -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSourceExternalAccounts' -> Bool
paymentSourceExternalAccounts'HasMore PaymentSourceExternalAccounts'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"url" Text -> Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSourceExternalAccounts' -> Text
paymentSourceExternalAccounts'Url PaymentSourceExternalAccounts'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> (Text
"object" Text -> Value -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Text -> Value
Data.Aeson.Types.Internal.String Text
"list"))))

instance Data.Aeson.Types.FromJSON.FromJSON PaymentSourceExternalAccounts' where
  parseJSON :: Value -> Parser PaymentSourceExternalAccounts'
parseJSON = String
-> (Object -> Parser PaymentSourceExternalAccounts')
-> Value
-> Parser PaymentSourceExternalAccounts'
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.Aeson.Types.FromJSON.withObject String
"PaymentSourceExternalAccounts'" (\Object
obj -> ((([PaymentSourceExternalAccounts'Data']
 -> Bool -> Text -> PaymentSourceExternalAccounts')
-> Parser
     ([PaymentSourceExternalAccounts'Data']
      -> Bool -> Text -> PaymentSourceExternalAccounts')
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure [PaymentSourceExternalAccounts'Data']
-> Bool -> Text -> PaymentSourceExternalAccounts'
PaymentSourceExternalAccounts' Parser
  ([PaymentSourceExternalAccounts'Data']
   -> Bool -> Text -> PaymentSourceExternalAccounts')
-> Parser [PaymentSourceExternalAccounts'Data']
-> Parser (Bool -> Text -> PaymentSourceExternalAccounts')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser [PaymentSourceExternalAccounts'Data']
forall a. FromJSON a => Object -> Text -> Parser a
Data.Aeson.Types.FromJSON..: Text
"data")) Parser (Bool -> Text -> PaymentSourceExternalAccounts')
-> Parser Bool -> Parser (Text -> PaymentSourceExternalAccounts')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser Bool
forall a. FromJSON a => Object -> Text -> Parser a
Data.Aeson.Types.FromJSON..: Text
"has_more")) Parser (Text -> PaymentSourceExternalAccounts')
-> Parser Text -> Parser PaymentSourceExternalAccounts'
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
Data.Aeson.Types.FromJSON..: Text
"url"))

-- | Create a new 'PaymentSourceExternalAccounts'' with all required fields.
mkPaymentSourceExternalAccounts' ::
  -- | 'paymentSourceExternalAccounts'Data'
  [PaymentSourceExternalAccounts'Data'] ->
  -- | 'paymentSourceExternalAccounts'HasMore'
  GHC.Types.Bool ->
  -- | 'paymentSourceExternalAccounts'Url'
  Data.Text.Internal.Text ->
  PaymentSourceExternalAccounts'
mkPaymentSourceExternalAccounts' :: [PaymentSourceExternalAccounts'Data']
-> Bool -> Text -> PaymentSourceExternalAccounts'
mkPaymentSourceExternalAccounts' [PaymentSourceExternalAccounts'Data']
paymentSourceExternalAccounts'Data Bool
paymentSourceExternalAccounts'HasMore Text
paymentSourceExternalAccounts'Url =
  PaymentSourceExternalAccounts' :: [PaymentSourceExternalAccounts'Data']
-> Bool -> Text -> PaymentSourceExternalAccounts'
PaymentSourceExternalAccounts'
    { paymentSourceExternalAccounts'Data :: [PaymentSourceExternalAccounts'Data']
paymentSourceExternalAccounts'Data = [PaymentSourceExternalAccounts'Data']
paymentSourceExternalAccounts'Data,
      paymentSourceExternalAccounts'HasMore :: Bool
paymentSourceExternalAccounts'HasMore = Bool
paymentSourceExternalAccounts'HasMore,
      paymentSourceExternalAccounts'Url :: Text
paymentSourceExternalAccounts'Url = Text
paymentSourceExternalAccounts'Url
    }

-- | Defines the object schema located at @components.schemas.payment_source.anyOf.properties.external_accounts.properties.data.items.anyOf@ in the specification.
data PaymentSourceExternalAccounts'Data' = PaymentSourceExternalAccounts'Data'
  { -- | account: The ID of the account that the bank account is associated with.
    PaymentSourceExternalAccounts'Data'
-> Maybe PaymentSourceExternalAccounts'Data'Account'Variants
paymentSourceExternalAccounts'Data'Account :: (GHC.Maybe.Maybe PaymentSourceExternalAccounts'Data'Account'Variants),
    -- | account_holder_name: The name of the person or business that owns the bank account.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PaymentSourceExternalAccounts'Data' -> Maybe Text
paymentSourceExternalAccounts'Data'AccountHolderName :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | account_holder_type: The type of entity that holds the account. This can be either \`individual\` or \`company\`.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PaymentSourceExternalAccounts'Data' -> Maybe Text
paymentSourceExternalAccounts'Data'AccountHolderType :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | address_city: City\/District\/Suburb\/Town\/Village.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PaymentSourceExternalAccounts'Data' -> Maybe Text
paymentSourceExternalAccounts'Data'AddressCity :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | address_country: Billing address country, if provided when creating card.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PaymentSourceExternalAccounts'Data' -> Maybe Text
paymentSourceExternalAccounts'Data'AddressCountry :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | address_line1: Address line 1 (Street address\/PO Box\/Company name).
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PaymentSourceExternalAccounts'Data' -> Maybe Text
paymentSourceExternalAccounts'Data'AddressLine1 :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | address_line1_check: If \`address_line1\` was provided, results of the check: \`pass\`, \`fail\`, \`unavailable\`, or \`unchecked\`.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PaymentSourceExternalAccounts'Data' -> Maybe Text
paymentSourceExternalAccounts'Data'AddressLine1Check :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | address_line2: Address line 2 (Apartment\/Suite\/Unit\/Building).
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PaymentSourceExternalAccounts'Data' -> Maybe Text
paymentSourceExternalAccounts'Data'AddressLine2 :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | address_state: State\/County\/Province\/Region.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PaymentSourceExternalAccounts'Data' -> Maybe Text
paymentSourceExternalAccounts'Data'AddressState :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | address_zip: ZIP or postal code.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PaymentSourceExternalAccounts'Data' -> Maybe Text
paymentSourceExternalAccounts'Data'AddressZip :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | address_zip_check: If \`address_zip\` was provided, results of the check: \`pass\`, \`fail\`, \`unavailable\`, or \`unchecked\`.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PaymentSourceExternalAccounts'Data' -> Maybe Text
paymentSourceExternalAccounts'Data'AddressZipCheck :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | available_payout_methods: A set of available payout methods for this bank account. Only values from this set should be passed as the \`method\` when creating a payout.
    PaymentSourceExternalAccounts'Data'
-> Maybe
     [PaymentSourceExternalAccounts'Data'AvailablePayoutMethods']
paymentSourceExternalAccounts'Data'AvailablePayoutMethods :: (GHC.Maybe.Maybe ([PaymentSourceExternalAccounts'Data'AvailablePayoutMethods'])),
    -- | bank_name: Name of the bank associated with the routing number (e.g., \`WELLS FARGO\`).
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PaymentSourceExternalAccounts'Data' -> Maybe Text
paymentSourceExternalAccounts'Data'BankName :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | brand: Card brand. Can be \`American Express\`, \`Diners Club\`, \`Discover\`, \`JCB\`, \`MasterCard\`, \`UnionPay\`, \`Visa\`, or \`Unknown\`.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PaymentSourceExternalAccounts'Data' -> Maybe Text
paymentSourceExternalAccounts'Data'Brand :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | country: Two-letter ISO code representing the country the bank account is located in.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PaymentSourceExternalAccounts'Data' -> Maybe Text
paymentSourceExternalAccounts'Data'Country :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | currency: Three-letter [ISO code for the currency](https:\/\/stripe.com\/docs\/payouts) paid out to the bank account.
    PaymentSourceExternalAccounts'Data' -> Maybe Text
paymentSourceExternalAccounts'Data'Currency :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | customer: The ID of the customer that the bank account is associated with.
    PaymentSourceExternalAccounts'Data'
-> Maybe PaymentSourceExternalAccounts'Data'Customer'Variants
paymentSourceExternalAccounts'Data'Customer :: (GHC.Maybe.Maybe PaymentSourceExternalAccounts'Data'Customer'Variants),
    -- | cvc_check: If a CVC was provided, results of the check: \`pass\`, \`fail\`, \`unavailable\`, or \`unchecked\`. A result of unchecked indicates that CVC was provided but hasn\'t been checked yet. Checks are typically performed when attaching a card to a Customer object, or when creating a charge. For more details, see [Check if a card is valid without a charge](https:\/\/support.stripe.com\/questions\/check-if-a-card-is-valid-without-a-charge).
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PaymentSourceExternalAccounts'Data' -> Maybe Text
paymentSourceExternalAccounts'Data'CvcCheck :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | default_for_currency: Whether this bank account is the default external account for its currency.
    PaymentSourceExternalAccounts'Data' -> Maybe Bool
paymentSourceExternalAccounts'Data'DefaultForCurrency :: (GHC.Maybe.Maybe GHC.Types.Bool),
    -- | dynamic_last4: (For tokenized numbers only.) The last four digits of the device account number.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PaymentSourceExternalAccounts'Data' -> Maybe Text
paymentSourceExternalAccounts'Data'DynamicLast4 :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | exp_month: Two-digit number representing the card\'s expiration month.
    PaymentSourceExternalAccounts'Data' -> Maybe Int
paymentSourceExternalAccounts'Data'ExpMonth :: (GHC.Maybe.Maybe GHC.Types.Int),
    -- | exp_year: Four-digit number representing the card\'s expiration year.
    PaymentSourceExternalAccounts'Data' -> Maybe Int
paymentSourceExternalAccounts'Data'ExpYear :: (GHC.Maybe.Maybe GHC.Types.Int),
    -- | fingerprint: Uniquely identifies this particular bank account. You can use this attribute to check whether two bank accounts are the same.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PaymentSourceExternalAccounts'Data' -> Maybe Text
paymentSourceExternalAccounts'Data'Fingerprint :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | funding: Card funding type. Can be \`credit\`, \`debit\`, \`prepaid\`, or \`unknown\`.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PaymentSourceExternalAccounts'Data' -> Maybe Text
paymentSourceExternalAccounts'Data'Funding :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | id: Unique identifier for the object.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PaymentSourceExternalAccounts'Data' -> Maybe Text
paymentSourceExternalAccounts'Data'Id :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | last4: The last four digits of the bank account number.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PaymentSourceExternalAccounts'Data' -> Maybe Text
paymentSourceExternalAccounts'Data'Last4 :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | metadata: Set of [key-value pairs](https:\/\/stripe.com\/docs\/api\/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
    PaymentSourceExternalAccounts'Data' -> Maybe Object
paymentSourceExternalAccounts'Data'Metadata :: (GHC.Maybe.Maybe Data.Aeson.Types.Internal.Object),
    -- | name: Cardholder name.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PaymentSourceExternalAccounts'Data' -> Maybe Text
paymentSourceExternalAccounts'Data'Name :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | object: String representing the object\'s type. Objects of the same type share the same value.
    PaymentSourceExternalAccounts'Data'
-> Maybe PaymentSourceExternalAccounts'Data'Object'
paymentSourceExternalAccounts'Data'Object :: (GHC.Maybe.Maybe PaymentSourceExternalAccounts'Data'Object'),
    -- | recipient: The recipient that this card belongs to. This attribute will not be in the card object if the card belongs to a customer or account instead.
    PaymentSourceExternalAccounts'Data'
-> Maybe PaymentSourceExternalAccounts'Data'Recipient'Variants
paymentSourceExternalAccounts'Data'Recipient :: (GHC.Maybe.Maybe PaymentSourceExternalAccounts'Data'Recipient'Variants),
    -- | routing_number: The routing transit number for the bank account.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PaymentSourceExternalAccounts'Data' -> Maybe Text
paymentSourceExternalAccounts'Data'RoutingNumber :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | status: For bank accounts, possible values are \`new\`, \`validated\`, \`verified\`, \`verification_failed\`, or \`errored\`. A bank account that hasn\'t had any activity or validation performed is \`new\`. If Stripe can determine that the bank account exists, its status will be \`validated\`. Note that there often isn’t enough information to know (e.g., for smaller credit unions), and the validation is not always run. If customer bank account verification has succeeded, the bank account status will be \`verified\`. If the verification failed for any reason, such as microdeposit failure, the status will be \`verification_failed\`. If a transfer sent to this bank account fails, we\'ll set the status to \`errored\` and will not continue to send transfers until the bank details are updated.
    --
    -- For external accounts, possible values are \`new\` and \`errored\`. Validations aren\'t run against external accounts because they\'re only used for payouts. This means the other statuses don\'t apply. If a transfer fails, the status is set to \`errored\` and transfers are stopped until account details are updated.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PaymentSourceExternalAccounts'Data' -> Maybe Text
paymentSourceExternalAccounts'Data'Status :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | tokenization_method: If the card number is tokenized, this is the method that was used. Can be \`android_pay\` (includes Google Pay), \`apple_pay\`, \`masterpass\`, \`visa_checkout\`, or null.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PaymentSourceExternalAccounts'Data' -> Maybe Text
paymentSourceExternalAccounts'Data'TokenizationMethod :: (GHC.Maybe.Maybe Data.Text.Internal.Text)
  }
  deriving
    ( Int -> PaymentSourceExternalAccounts'Data' -> ShowS
[PaymentSourceExternalAccounts'Data'] -> ShowS
PaymentSourceExternalAccounts'Data' -> String
(Int -> PaymentSourceExternalAccounts'Data' -> ShowS)
-> (PaymentSourceExternalAccounts'Data' -> String)
-> ([PaymentSourceExternalAccounts'Data'] -> ShowS)
-> Show PaymentSourceExternalAccounts'Data'
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PaymentSourceExternalAccounts'Data'] -> ShowS
$cshowList :: [PaymentSourceExternalAccounts'Data'] -> ShowS
show :: PaymentSourceExternalAccounts'Data' -> String
$cshow :: PaymentSourceExternalAccounts'Data' -> String
showsPrec :: Int -> PaymentSourceExternalAccounts'Data' -> ShowS
$cshowsPrec :: Int -> PaymentSourceExternalAccounts'Data' -> ShowS
GHC.Show.Show,
      PaymentSourceExternalAccounts'Data'
-> PaymentSourceExternalAccounts'Data' -> Bool
(PaymentSourceExternalAccounts'Data'
 -> PaymentSourceExternalAccounts'Data' -> Bool)
-> (PaymentSourceExternalAccounts'Data'
    -> PaymentSourceExternalAccounts'Data' -> Bool)
-> Eq PaymentSourceExternalAccounts'Data'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PaymentSourceExternalAccounts'Data'
-> PaymentSourceExternalAccounts'Data' -> Bool
$c/= :: PaymentSourceExternalAccounts'Data'
-> PaymentSourceExternalAccounts'Data' -> Bool
== :: PaymentSourceExternalAccounts'Data'
-> PaymentSourceExternalAccounts'Data' -> Bool
$c== :: PaymentSourceExternalAccounts'Data'
-> PaymentSourceExternalAccounts'Data' -> Bool
GHC.Classes.Eq
    )

instance Data.Aeson.Types.ToJSON.ToJSON PaymentSourceExternalAccounts'Data' where
  toJSON :: PaymentSourceExternalAccounts'Data' -> Value
toJSON PaymentSourceExternalAccounts'Data'
obj = [Pair] -> Value
Data.Aeson.Types.Internal.object (Text
"account" Text
-> Maybe PaymentSourceExternalAccounts'Data'Account'Variants
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSourceExternalAccounts'Data'
-> Maybe PaymentSourceExternalAccounts'Data'Account'Variants
paymentSourceExternalAccounts'Data'Account PaymentSourceExternalAccounts'Data'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"account_holder_name" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSourceExternalAccounts'Data' -> Maybe Text
paymentSourceExternalAccounts'Data'AccountHolderName PaymentSourceExternalAccounts'Data'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"account_holder_type" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSourceExternalAccounts'Data' -> Maybe Text
paymentSourceExternalAccounts'Data'AccountHolderType PaymentSourceExternalAccounts'Data'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"address_city" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSourceExternalAccounts'Data' -> Maybe Text
paymentSourceExternalAccounts'Data'AddressCity PaymentSourceExternalAccounts'Data'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"address_country" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSourceExternalAccounts'Data' -> Maybe Text
paymentSourceExternalAccounts'Data'AddressCountry PaymentSourceExternalAccounts'Data'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"address_line1" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSourceExternalAccounts'Data' -> Maybe Text
paymentSourceExternalAccounts'Data'AddressLine1 PaymentSourceExternalAccounts'Data'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"address_line1_check" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSourceExternalAccounts'Data' -> Maybe Text
paymentSourceExternalAccounts'Data'AddressLine1Check PaymentSourceExternalAccounts'Data'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"address_line2" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSourceExternalAccounts'Data' -> Maybe Text
paymentSourceExternalAccounts'Data'AddressLine2 PaymentSourceExternalAccounts'Data'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"address_state" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSourceExternalAccounts'Data' -> Maybe Text
paymentSourceExternalAccounts'Data'AddressState PaymentSourceExternalAccounts'Data'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"address_zip" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSourceExternalAccounts'Data' -> Maybe Text
paymentSourceExternalAccounts'Data'AddressZip PaymentSourceExternalAccounts'Data'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"address_zip_check" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSourceExternalAccounts'Data' -> Maybe Text
paymentSourceExternalAccounts'Data'AddressZipCheck PaymentSourceExternalAccounts'Data'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"available_payout_methods" Text
-> Maybe
     [PaymentSourceExternalAccounts'Data'AvailablePayoutMethods']
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSourceExternalAccounts'Data'
-> Maybe
     [PaymentSourceExternalAccounts'Data'AvailablePayoutMethods']
paymentSourceExternalAccounts'Data'AvailablePayoutMethods PaymentSourceExternalAccounts'Data'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"bank_name" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSourceExternalAccounts'Data' -> Maybe Text
paymentSourceExternalAccounts'Data'BankName PaymentSourceExternalAccounts'Data'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"brand" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSourceExternalAccounts'Data' -> Maybe Text
paymentSourceExternalAccounts'Data'Brand PaymentSourceExternalAccounts'Data'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"country" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSourceExternalAccounts'Data' -> Maybe Text
paymentSourceExternalAccounts'Data'Country PaymentSourceExternalAccounts'Data'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"currency" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSourceExternalAccounts'Data' -> Maybe Text
paymentSourceExternalAccounts'Data'Currency PaymentSourceExternalAccounts'Data'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"customer" Text
-> Maybe PaymentSourceExternalAccounts'Data'Customer'Variants
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSourceExternalAccounts'Data'
-> Maybe PaymentSourceExternalAccounts'Data'Customer'Variants
paymentSourceExternalAccounts'Data'Customer PaymentSourceExternalAccounts'Data'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"cvc_check" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSourceExternalAccounts'Data' -> Maybe Text
paymentSourceExternalAccounts'Data'CvcCheck PaymentSourceExternalAccounts'Data'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"default_for_currency" Text -> Maybe Bool -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSourceExternalAccounts'Data' -> Maybe Bool
paymentSourceExternalAccounts'Data'DefaultForCurrency PaymentSourceExternalAccounts'Data'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"dynamic_last4" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSourceExternalAccounts'Data' -> Maybe Text
paymentSourceExternalAccounts'Data'DynamicLast4 PaymentSourceExternalAccounts'Data'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"exp_month" Text -> Maybe Int -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSourceExternalAccounts'Data' -> Maybe Int
paymentSourceExternalAccounts'Data'ExpMonth PaymentSourceExternalAccounts'Data'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"exp_year" Text -> Maybe Int -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSourceExternalAccounts'Data' -> Maybe Int
paymentSourceExternalAccounts'Data'ExpYear PaymentSourceExternalAccounts'Data'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"fingerprint" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSourceExternalAccounts'Data' -> Maybe Text
paymentSourceExternalAccounts'Data'Fingerprint PaymentSourceExternalAccounts'Data'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"funding" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSourceExternalAccounts'Data' -> Maybe Text
paymentSourceExternalAccounts'Data'Funding PaymentSourceExternalAccounts'Data'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"id" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSourceExternalAccounts'Data' -> Maybe Text
paymentSourceExternalAccounts'Data'Id PaymentSourceExternalAccounts'Data'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"last4" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSourceExternalAccounts'Data' -> Maybe Text
paymentSourceExternalAccounts'Data'Last4 PaymentSourceExternalAccounts'Data'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"metadata" Text -> Maybe Object -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSourceExternalAccounts'Data' -> Maybe Object
paymentSourceExternalAccounts'Data'Metadata PaymentSourceExternalAccounts'Data'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"name" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSourceExternalAccounts'Data' -> Maybe Text
paymentSourceExternalAccounts'Data'Name PaymentSourceExternalAccounts'Data'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"object" Text -> Maybe PaymentSourceExternalAccounts'Data'Object' -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSourceExternalAccounts'Data'
-> Maybe PaymentSourceExternalAccounts'Data'Object'
paymentSourceExternalAccounts'Data'Object PaymentSourceExternalAccounts'Data'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"recipient" Text
-> Maybe PaymentSourceExternalAccounts'Data'Recipient'Variants
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSourceExternalAccounts'Data'
-> Maybe PaymentSourceExternalAccounts'Data'Recipient'Variants
paymentSourceExternalAccounts'Data'Recipient PaymentSourceExternalAccounts'Data'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"routing_number" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSourceExternalAccounts'Data' -> Maybe Text
paymentSourceExternalAccounts'Data'RoutingNumber PaymentSourceExternalAccounts'Data'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"status" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSourceExternalAccounts'Data' -> Maybe Text
paymentSourceExternalAccounts'Data'Status PaymentSourceExternalAccounts'Data'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"tokenization_method" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSourceExternalAccounts'Data' -> Maybe Text
paymentSourceExternalAccounts'Data'TokenizationMethod PaymentSourceExternalAccounts'Data'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: PaymentSourceExternalAccounts'Data' -> Encoding
toEncoding PaymentSourceExternalAccounts'Data'
obj = Series -> Encoding
Data.Aeson.Encoding.Internal.pairs ((Text
"account" Text
-> Maybe PaymentSourceExternalAccounts'Data'Account'Variants
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSourceExternalAccounts'Data'
-> Maybe PaymentSourceExternalAccounts'Data'Account'Variants
paymentSourceExternalAccounts'Data'Account PaymentSourceExternalAccounts'Data'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"account_holder_name" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSourceExternalAccounts'Data' -> Maybe Text
paymentSourceExternalAccounts'Data'AccountHolderName PaymentSourceExternalAccounts'Data'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"account_holder_type" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSourceExternalAccounts'Data' -> Maybe Text
paymentSourceExternalAccounts'Data'AccountHolderType PaymentSourceExternalAccounts'Data'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"address_city" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSourceExternalAccounts'Data' -> Maybe Text
paymentSourceExternalAccounts'Data'AddressCity PaymentSourceExternalAccounts'Data'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"address_country" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSourceExternalAccounts'Data' -> Maybe Text
paymentSourceExternalAccounts'Data'AddressCountry PaymentSourceExternalAccounts'Data'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"address_line1" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSourceExternalAccounts'Data' -> Maybe Text
paymentSourceExternalAccounts'Data'AddressLine1 PaymentSourceExternalAccounts'Data'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"address_line1_check" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSourceExternalAccounts'Data' -> Maybe Text
paymentSourceExternalAccounts'Data'AddressLine1Check PaymentSourceExternalAccounts'Data'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"address_line2" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSourceExternalAccounts'Data' -> Maybe Text
paymentSourceExternalAccounts'Data'AddressLine2 PaymentSourceExternalAccounts'Data'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"address_state" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSourceExternalAccounts'Data' -> Maybe Text
paymentSourceExternalAccounts'Data'AddressState PaymentSourceExternalAccounts'Data'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"address_zip" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSourceExternalAccounts'Data' -> Maybe Text
paymentSourceExternalAccounts'Data'AddressZip PaymentSourceExternalAccounts'Data'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"address_zip_check" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSourceExternalAccounts'Data' -> Maybe Text
paymentSourceExternalAccounts'Data'AddressZipCheck PaymentSourceExternalAccounts'Data'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"available_payout_methods" Text
-> Maybe
     [PaymentSourceExternalAccounts'Data'AvailablePayoutMethods']
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSourceExternalAccounts'Data'
-> Maybe
     [PaymentSourceExternalAccounts'Data'AvailablePayoutMethods']
paymentSourceExternalAccounts'Data'AvailablePayoutMethods PaymentSourceExternalAccounts'Data'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"bank_name" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSourceExternalAccounts'Data' -> Maybe Text
paymentSourceExternalAccounts'Data'BankName PaymentSourceExternalAccounts'Data'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"brand" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSourceExternalAccounts'Data' -> Maybe Text
paymentSourceExternalAccounts'Data'Brand PaymentSourceExternalAccounts'Data'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"country" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSourceExternalAccounts'Data' -> Maybe Text
paymentSourceExternalAccounts'Data'Country PaymentSourceExternalAccounts'Data'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"currency" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSourceExternalAccounts'Data' -> Maybe Text
paymentSourceExternalAccounts'Data'Currency PaymentSourceExternalAccounts'Data'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"customer" Text
-> Maybe PaymentSourceExternalAccounts'Data'Customer'Variants
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSourceExternalAccounts'Data'
-> Maybe PaymentSourceExternalAccounts'Data'Customer'Variants
paymentSourceExternalAccounts'Data'Customer PaymentSourceExternalAccounts'Data'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"cvc_check" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSourceExternalAccounts'Data' -> Maybe Text
paymentSourceExternalAccounts'Data'CvcCheck PaymentSourceExternalAccounts'Data'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"default_for_currency" Text -> Maybe Bool -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSourceExternalAccounts'Data' -> Maybe Bool
paymentSourceExternalAccounts'Data'DefaultForCurrency PaymentSourceExternalAccounts'Data'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"dynamic_last4" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSourceExternalAccounts'Data' -> Maybe Text
paymentSourceExternalAccounts'Data'DynamicLast4 PaymentSourceExternalAccounts'Data'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"exp_month" Text -> Maybe Int -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSourceExternalAccounts'Data' -> Maybe Int
paymentSourceExternalAccounts'Data'ExpMonth PaymentSourceExternalAccounts'Data'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"exp_year" Text -> Maybe Int -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSourceExternalAccounts'Data' -> Maybe Int
paymentSourceExternalAccounts'Data'ExpYear PaymentSourceExternalAccounts'Data'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"fingerprint" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSourceExternalAccounts'Data' -> Maybe Text
paymentSourceExternalAccounts'Data'Fingerprint PaymentSourceExternalAccounts'Data'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"funding" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSourceExternalAccounts'Data' -> Maybe Text
paymentSourceExternalAccounts'Data'Funding PaymentSourceExternalAccounts'Data'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"id" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSourceExternalAccounts'Data' -> Maybe Text
paymentSourceExternalAccounts'Data'Id PaymentSourceExternalAccounts'Data'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"last4" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSourceExternalAccounts'Data' -> Maybe Text
paymentSourceExternalAccounts'Data'Last4 PaymentSourceExternalAccounts'Data'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"metadata" Text -> Maybe Object -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSourceExternalAccounts'Data' -> Maybe Object
paymentSourceExternalAccounts'Data'Metadata PaymentSourceExternalAccounts'Data'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"name" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSourceExternalAccounts'Data' -> Maybe Text
paymentSourceExternalAccounts'Data'Name PaymentSourceExternalAccounts'Data'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"object" Text -> Maybe PaymentSourceExternalAccounts'Data'Object' -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSourceExternalAccounts'Data'
-> Maybe PaymentSourceExternalAccounts'Data'Object'
paymentSourceExternalAccounts'Data'Object PaymentSourceExternalAccounts'Data'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"recipient" Text
-> Maybe PaymentSourceExternalAccounts'Data'Recipient'Variants
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSourceExternalAccounts'Data'
-> Maybe PaymentSourceExternalAccounts'Data'Recipient'Variants
paymentSourceExternalAccounts'Data'Recipient PaymentSourceExternalAccounts'Data'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"routing_number" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSourceExternalAccounts'Data' -> Maybe Text
paymentSourceExternalAccounts'Data'RoutingNumber PaymentSourceExternalAccounts'Data'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"status" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSourceExternalAccounts'Data' -> Maybe Text
paymentSourceExternalAccounts'Data'Status PaymentSourceExternalAccounts'Data'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> (Text
"tokenization_method" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSourceExternalAccounts'Data' -> Maybe Text
paymentSourceExternalAccounts'Data'TokenizationMethod PaymentSourceExternalAccounts'Data'
obj)))))))))))))))))))))))))))))))))

instance Data.Aeson.Types.FromJSON.FromJSON PaymentSourceExternalAccounts'Data' where
  parseJSON :: Value -> Parser PaymentSourceExternalAccounts'Data'
parseJSON = String
-> (Object -> Parser PaymentSourceExternalAccounts'Data')
-> Value
-> Parser PaymentSourceExternalAccounts'Data'
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.Aeson.Types.FromJSON.withObject String
"PaymentSourceExternalAccounts'Data'" (\Object
obj -> (((((((((((((((((((((((((((((((((Maybe PaymentSourceExternalAccounts'Data'Account'Variants
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe
      [PaymentSourceExternalAccounts'Data'AvailablePayoutMethods']
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe PaymentSourceExternalAccounts'Data'Customer'Variants
 -> Maybe Text
 -> Maybe Bool
 -> Maybe Text
 -> Maybe Int
 -> Maybe Int
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe Object
 -> Maybe Text
 -> Maybe PaymentSourceExternalAccounts'Data'Object'
 -> Maybe PaymentSourceExternalAccounts'Data'Recipient'Variants
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> PaymentSourceExternalAccounts'Data')
-> Parser
     (Maybe PaymentSourceExternalAccounts'Data'Account'Variants
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe
           [PaymentSourceExternalAccounts'Data'AvailablePayoutMethods']
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe PaymentSourceExternalAccounts'Data'Customer'Variants
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Int
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Object
      -> Maybe Text
      -> Maybe PaymentSourceExternalAccounts'Data'Object'
      -> Maybe PaymentSourceExternalAccounts'Data'Recipient'Variants
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> PaymentSourceExternalAccounts'Data')
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure Maybe PaymentSourceExternalAccounts'Data'Account'Variants
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe
     [PaymentSourceExternalAccounts'Data'AvailablePayoutMethods']
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe PaymentSourceExternalAccounts'Data'Customer'Variants
-> Maybe Text
-> Maybe Bool
-> Maybe Text
-> Maybe Int
-> Maybe Int
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Object
-> Maybe Text
-> Maybe PaymentSourceExternalAccounts'Data'Object'
-> Maybe PaymentSourceExternalAccounts'Data'Recipient'Variants
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> PaymentSourceExternalAccounts'Data'
PaymentSourceExternalAccounts'Data' Parser
  (Maybe PaymentSourceExternalAccounts'Data'Account'Variants
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe
        [PaymentSourceExternalAccounts'Data'AvailablePayoutMethods']
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe PaymentSourceExternalAccounts'Data'Customer'Variants
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Int
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Object
   -> Maybe Text
   -> Maybe PaymentSourceExternalAccounts'Data'Object'
   -> Maybe PaymentSourceExternalAccounts'Data'Recipient'Variants
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> PaymentSourceExternalAccounts'Data')
-> Parser
     (Maybe PaymentSourceExternalAccounts'Data'Account'Variants)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe
           [PaymentSourceExternalAccounts'Data'AvailablePayoutMethods']
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe PaymentSourceExternalAccounts'Data'Customer'Variants
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Int
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Object
      -> Maybe Text
      -> Maybe PaymentSourceExternalAccounts'Data'Object'
      -> Maybe PaymentSourceExternalAccounts'Data'Recipient'Variants
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> PaymentSourceExternalAccounts'Data')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     (Maybe PaymentSourceExternalAccounts'Data'Account'Variants)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"account")) Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe
        [PaymentSourceExternalAccounts'Data'AvailablePayoutMethods']
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe PaymentSourceExternalAccounts'Data'Customer'Variants
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Int
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Object
   -> Maybe Text
   -> Maybe PaymentSourceExternalAccounts'Data'Object'
   -> Maybe PaymentSourceExternalAccounts'Data'Recipient'Variants
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> PaymentSourceExternalAccounts'Data')
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe
           [PaymentSourceExternalAccounts'Data'AvailablePayoutMethods']
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe PaymentSourceExternalAccounts'Data'Customer'Variants
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Int
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Object
      -> Maybe Text
      -> Maybe PaymentSourceExternalAccounts'Data'Object'
      -> Maybe PaymentSourceExternalAccounts'Data'Recipient'Variants
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> PaymentSourceExternalAccounts'Data')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"account_holder_name")) Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe
        [PaymentSourceExternalAccounts'Data'AvailablePayoutMethods']
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe PaymentSourceExternalAccounts'Data'Customer'Variants
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Int
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Object
   -> Maybe Text
   -> Maybe PaymentSourceExternalAccounts'Data'Object'
   -> Maybe PaymentSourceExternalAccounts'Data'Recipient'Variants
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> PaymentSourceExternalAccounts'Data')
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe
           [PaymentSourceExternalAccounts'Data'AvailablePayoutMethods']
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe PaymentSourceExternalAccounts'Data'Customer'Variants
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Int
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Object
      -> Maybe Text
      -> Maybe PaymentSourceExternalAccounts'Data'Object'
      -> Maybe PaymentSourceExternalAccounts'Data'Recipient'Variants
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> PaymentSourceExternalAccounts'Data')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"account_holder_type")) Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe
        [PaymentSourceExternalAccounts'Data'AvailablePayoutMethods']
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe PaymentSourceExternalAccounts'Data'Customer'Variants
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Int
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Object
   -> Maybe Text
   -> Maybe PaymentSourceExternalAccounts'Data'Object'
   -> Maybe PaymentSourceExternalAccounts'Data'Recipient'Variants
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> PaymentSourceExternalAccounts'Data')
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe
           [PaymentSourceExternalAccounts'Data'AvailablePayoutMethods']
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe PaymentSourceExternalAccounts'Data'Customer'Variants
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Int
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Object
      -> Maybe Text
      -> Maybe PaymentSourceExternalAccounts'Data'Object'
      -> Maybe PaymentSourceExternalAccounts'Data'Recipient'Variants
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> PaymentSourceExternalAccounts'Data')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"address_city")) Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe
        [PaymentSourceExternalAccounts'Data'AvailablePayoutMethods']
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe PaymentSourceExternalAccounts'Data'Customer'Variants
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Int
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Object
   -> Maybe Text
   -> Maybe PaymentSourceExternalAccounts'Data'Object'
   -> Maybe PaymentSourceExternalAccounts'Data'Recipient'Variants
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> PaymentSourceExternalAccounts'Data')
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe
           [PaymentSourceExternalAccounts'Data'AvailablePayoutMethods']
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe PaymentSourceExternalAccounts'Data'Customer'Variants
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Int
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Object
      -> Maybe Text
      -> Maybe PaymentSourceExternalAccounts'Data'Object'
      -> Maybe PaymentSourceExternalAccounts'Data'Recipient'Variants
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> PaymentSourceExternalAccounts'Data')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"address_country")) Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe
        [PaymentSourceExternalAccounts'Data'AvailablePayoutMethods']
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe PaymentSourceExternalAccounts'Data'Customer'Variants
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Int
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Object
   -> Maybe Text
   -> Maybe PaymentSourceExternalAccounts'Data'Object'
   -> Maybe PaymentSourceExternalAccounts'Data'Recipient'Variants
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> PaymentSourceExternalAccounts'Data')
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe
           [PaymentSourceExternalAccounts'Data'AvailablePayoutMethods']
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe PaymentSourceExternalAccounts'Data'Customer'Variants
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Int
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Object
      -> Maybe Text
      -> Maybe PaymentSourceExternalAccounts'Data'Object'
      -> Maybe PaymentSourceExternalAccounts'Data'Recipient'Variants
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> PaymentSourceExternalAccounts'Data')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"address_line1")) Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe
        [PaymentSourceExternalAccounts'Data'AvailablePayoutMethods']
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe PaymentSourceExternalAccounts'Data'Customer'Variants
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Int
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Object
   -> Maybe Text
   -> Maybe PaymentSourceExternalAccounts'Data'Object'
   -> Maybe PaymentSourceExternalAccounts'Data'Recipient'Variants
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> PaymentSourceExternalAccounts'Data')
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe
           [PaymentSourceExternalAccounts'Data'AvailablePayoutMethods']
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe PaymentSourceExternalAccounts'Data'Customer'Variants
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Int
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Object
      -> Maybe Text
      -> Maybe PaymentSourceExternalAccounts'Data'Object'
      -> Maybe PaymentSourceExternalAccounts'Data'Recipient'Variants
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> PaymentSourceExternalAccounts'Data')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"address_line1_check")) Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe
        [PaymentSourceExternalAccounts'Data'AvailablePayoutMethods']
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe PaymentSourceExternalAccounts'Data'Customer'Variants
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Int
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Object
   -> Maybe Text
   -> Maybe PaymentSourceExternalAccounts'Data'Object'
   -> Maybe PaymentSourceExternalAccounts'Data'Recipient'Variants
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> PaymentSourceExternalAccounts'Data')
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe
           [PaymentSourceExternalAccounts'Data'AvailablePayoutMethods']
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe PaymentSourceExternalAccounts'Data'Customer'Variants
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Int
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Object
      -> Maybe Text
      -> Maybe PaymentSourceExternalAccounts'Data'Object'
      -> Maybe PaymentSourceExternalAccounts'Data'Recipient'Variants
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> PaymentSourceExternalAccounts'Data')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"address_line2")) Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe
        [PaymentSourceExternalAccounts'Data'AvailablePayoutMethods']
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe PaymentSourceExternalAccounts'Data'Customer'Variants
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Int
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Object
   -> Maybe Text
   -> Maybe PaymentSourceExternalAccounts'Data'Object'
   -> Maybe PaymentSourceExternalAccounts'Data'Recipient'Variants
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> PaymentSourceExternalAccounts'Data')
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe
           [PaymentSourceExternalAccounts'Data'AvailablePayoutMethods']
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe PaymentSourceExternalAccounts'Data'Customer'Variants
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Int
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Object
      -> Maybe Text
      -> Maybe PaymentSourceExternalAccounts'Data'Object'
      -> Maybe PaymentSourceExternalAccounts'Data'Recipient'Variants
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> PaymentSourceExternalAccounts'Data')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"address_state")) Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe
        [PaymentSourceExternalAccounts'Data'AvailablePayoutMethods']
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe PaymentSourceExternalAccounts'Data'Customer'Variants
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Int
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Object
   -> Maybe Text
   -> Maybe PaymentSourceExternalAccounts'Data'Object'
   -> Maybe PaymentSourceExternalAccounts'Data'Recipient'Variants
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> PaymentSourceExternalAccounts'Data')
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe
           [PaymentSourceExternalAccounts'Data'AvailablePayoutMethods']
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe PaymentSourceExternalAccounts'Data'Customer'Variants
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Int
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Object
      -> Maybe Text
      -> Maybe PaymentSourceExternalAccounts'Data'Object'
      -> Maybe PaymentSourceExternalAccounts'Data'Recipient'Variants
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> PaymentSourceExternalAccounts'Data')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"address_zip")) Parser
  (Maybe Text
   -> Maybe
        [PaymentSourceExternalAccounts'Data'AvailablePayoutMethods']
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe PaymentSourceExternalAccounts'Data'Customer'Variants
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Int
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Object
   -> Maybe Text
   -> Maybe PaymentSourceExternalAccounts'Data'Object'
   -> Maybe PaymentSourceExternalAccounts'Data'Recipient'Variants
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> PaymentSourceExternalAccounts'Data')
-> Parser (Maybe Text)
-> Parser
     (Maybe [PaymentSourceExternalAccounts'Data'AvailablePayoutMethods']
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe PaymentSourceExternalAccounts'Data'Customer'Variants
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Int
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Object
      -> Maybe Text
      -> Maybe PaymentSourceExternalAccounts'Data'Object'
      -> Maybe PaymentSourceExternalAccounts'Data'Recipient'Variants
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> PaymentSourceExternalAccounts'Data')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"address_zip_check")) Parser
  (Maybe [PaymentSourceExternalAccounts'Data'AvailablePayoutMethods']
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe PaymentSourceExternalAccounts'Data'Customer'Variants
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Int
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Object
   -> Maybe Text
   -> Maybe PaymentSourceExternalAccounts'Data'Object'
   -> Maybe PaymentSourceExternalAccounts'Data'Recipient'Variants
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> PaymentSourceExternalAccounts'Data')
-> Parser
     (Maybe
        [PaymentSourceExternalAccounts'Data'AvailablePayoutMethods'])
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe PaymentSourceExternalAccounts'Data'Customer'Variants
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Int
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Object
      -> Maybe Text
      -> Maybe PaymentSourceExternalAccounts'Data'Object'
      -> Maybe PaymentSourceExternalAccounts'Data'Recipient'Variants
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> PaymentSourceExternalAccounts'Data')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     (Maybe
        [PaymentSourceExternalAccounts'Data'AvailablePayoutMethods'])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"available_payout_methods")) Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe PaymentSourceExternalAccounts'Data'Customer'Variants
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Int
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Object
   -> Maybe Text
   -> Maybe PaymentSourceExternalAccounts'Data'Object'
   -> Maybe PaymentSourceExternalAccounts'Data'Recipient'Variants
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> PaymentSourceExternalAccounts'Data')
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe PaymentSourceExternalAccounts'Data'Customer'Variants
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Int
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Object
      -> Maybe Text
      -> Maybe PaymentSourceExternalAccounts'Data'Object'
      -> Maybe PaymentSourceExternalAccounts'Data'Recipient'Variants
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> PaymentSourceExternalAccounts'Data')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"bank_name")) Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe PaymentSourceExternalAccounts'Data'Customer'Variants
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Int
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Object
   -> Maybe Text
   -> Maybe PaymentSourceExternalAccounts'Data'Object'
   -> Maybe PaymentSourceExternalAccounts'Data'Recipient'Variants
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> PaymentSourceExternalAccounts'Data')
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe PaymentSourceExternalAccounts'Data'Customer'Variants
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Int
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Object
      -> Maybe Text
      -> Maybe PaymentSourceExternalAccounts'Data'Object'
      -> Maybe PaymentSourceExternalAccounts'Data'Recipient'Variants
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> PaymentSourceExternalAccounts'Data')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"brand")) Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe PaymentSourceExternalAccounts'Data'Customer'Variants
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Int
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Object
   -> Maybe Text
   -> Maybe PaymentSourceExternalAccounts'Data'Object'
   -> Maybe PaymentSourceExternalAccounts'Data'Recipient'Variants
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> PaymentSourceExternalAccounts'Data')
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe PaymentSourceExternalAccounts'Data'Customer'Variants
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Int
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Object
      -> Maybe Text
      -> Maybe PaymentSourceExternalAccounts'Data'Object'
      -> Maybe PaymentSourceExternalAccounts'Data'Recipient'Variants
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> PaymentSourceExternalAccounts'Data')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"country")) Parser
  (Maybe Text
   -> Maybe PaymentSourceExternalAccounts'Data'Customer'Variants
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Int
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Object
   -> Maybe Text
   -> Maybe PaymentSourceExternalAccounts'Data'Object'
   -> Maybe PaymentSourceExternalAccounts'Data'Recipient'Variants
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> PaymentSourceExternalAccounts'Data')
-> Parser (Maybe Text)
-> Parser
     (Maybe PaymentSourceExternalAccounts'Data'Customer'Variants
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Int
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Object
      -> Maybe Text
      -> Maybe PaymentSourceExternalAccounts'Data'Object'
      -> Maybe PaymentSourceExternalAccounts'Data'Recipient'Variants
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> PaymentSourceExternalAccounts'Data')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"currency")) Parser
  (Maybe PaymentSourceExternalAccounts'Data'Customer'Variants
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Int
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Object
   -> Maybe Text
   -> Maybe PaymentSourceExternalAccounts'Data'Object'
   -> Maybe PaymentSourceExternalAccounts'Data'Recipient'Variants
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> PaymentSourceExternalAccounts'Data')
-> Parser
     (Maybe PaymentSourceExternalAccounts'Data'Customer'Variants)
-> Parser
     (Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Int
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Object
      -> Maybe Text
      -> Maybe PaymentSourceExternalAccounts'Data'Object'
      -> Maybe PaymentSourceExternalAccounts'Data'Recipient'Variants
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> PaymentSourceExternalAccounts'Data')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     (Maybe PaymentSourceExternalAccounts'Data'Customer'Variants)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"customer")) Parser
  (Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Int
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Object
   -> Maybe Text
   -> Maybe PaymentSourceExternalAccounts'Data'Object'
   -> Maybe PaymentSourceExternalAccounts'Data'Recipient'Variants
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> PaymentSourceExternalAccounts'Data')
-> Parser (Maybe Text)
-> Parser
     (Maybe Bool
      -> Maybe Text
      -> Maybe Int
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Object
      -> Maybe Text
      -> Maybe PaymentSourceExternalAccounts'Data'Object'
      -> Maybe PaymentSourceExternalAccounts'Data'Recipient'Variants
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> PaymentSourceExternalAccounts'Data')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"cvc_check")) Parser
  (Maybe Bool
   -> Maybe Text
   -> Maybe Int
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Object
   -> Maybe Text
   -> Maybe PaymentSourceExternalAccounts'Data'Object'
   -> Maybe PaymentSourceExternalAccounts'Data'Recipient'Variants
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> PaymentSourceExternalAccounts'Data')
-> Parser (Maybe Bool)
-> Parser
     (Maybe Text
      -> Maybe Int
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Object
      -> Maybe Text
      -> Maybe PaymentSourceExternalAccounts'Data'Object'
      -> Maybe PaymentSourceExternalAccounts'Data'Recipient'Variants
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> PaymentSourceExternalAccounts'Data')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"default_for_currency")) Parser
  (Maybe Text
   -> Maybe Int
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Object
   -> Maybe Text
   -> Maybe PaymentSourceExternalAccounts'Data'Object'
   -> Maybe PaymentSourceExternalAccounts'Data'Recipient'Variants
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> PaymentSourceExternalAccounts'Data')
-> Parser (Maybe Text)
-> Parser
     (Maybe Int
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Object
      -> Maybe Text
      -> Maybe PaymentSourceExternalAccounts'Data'Object'
      -> Maybe PaymentSourceExternalAccounts'Data'Recipient'Variants
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> PaymentSourceExternalAccounts'Data')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"dynamic_last4")) Parser
  (Maybe Int
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Object
   -> Maybe Text
   -> Maybe PaymentSourceExternalAccounts'Data'Object'
   -> Maybe PaymentSourceExternalAccounts'Data'Recipient'Variants
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> PaymentSourceExternalAccounts'Data')
-> Parser (Maybe Int)
-> Parser
     (Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Object
      -> Maybe Text
      -> Maybe PaymentSourceExternalAccounts'Data'Object'
      -> Maybe PaymentSourceExternalAccounts'Data'Recipient'Variants
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> PaymentSourceExternalAccounts'Data')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"exp_month")) Parser
  (Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Object
   -> Maybe Text
   -> Maybe PaymentSourceExternalAccounts'Data'Object'
   -> Maybe PaymentSourceExternalAccounts'Data'Recipient'Variants
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> PaymentSourceExternalAccounts'Data')
-> Parser (Maybe Int)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Object
      -> Maybe Text
      -> Maybe PaymentSourceExternalAccounts'Data'Object'
      -> Maybe PaymentSourceExternalAccounts'Data'Recipient'Variants
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> PaymentSourceExternalAccounts'Data')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"exp_year")) Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Object
   -> Maybe Text
   -> Maybe PaymentSourceExternalAccounts'Data'Object'
   -> Maybe PaymentSourceExternalAccounts'Data'Recipient'Variants
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> PaymentSourceExternalAccounts'Data')
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Object
      -> Maybe Text
      -> Maybe PaymentSourceExternalAccounts'Data'Object'
      -> Maybe PaymentSourceExternalAccounts'Data'Recipient'Variants
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> PaymentSourceExternalAccounts'Data')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"fingerprint")) Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Object
   -> Maybe Text
   -> Maybe PaymentSourceExternalAccounts'Data'Object'
   -> Maybe PaymentSourceExternalAccounts'Data'Recipient'Variants
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> PaymentSourceExternalAccounts'Data')
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe Object
      -> Maybe Text
      -> Maybe PaymentSourceExternalAccounts'Data'Object'
      -> Maybe PaymentSourceExternalAccounts'Data'Recipient'Variants
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> PaymentSourceExternalAccounts'Data')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"funding")) Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe Object
   -> Maybe Text
   -> Maybe PaymentSourceExternalAccounts'Data'Object'
   -> Maybe PaymentSourceExternalAccounts'Data'Recipient'Variants
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> PaymentSourceExternalAccounts'Data')
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Object
      -> Maybe Text
      -> Maybe PaymentSourceExternalAccounts'Data'Object'
      -> Maybe PaymentSourceExternalAccounts'Data'Recipient'Variants
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> PaymentSourceExternalAccounts'Data')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"id")) Parser
  (Maybe Text
   -> Maybe Object
   -> Maybe Text
   -> Maybe PaymentSourceExternalAccounts'Data'Object'
   -> Maybe PaymentSourceExternalAccounts'Data'Recipient'Variants
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> PaymentSourceExternalAccounts'Data')
-> Parser (Maybe Text)
-> Parser
     (Maybe Object
      -> Maybe Text
      -> Maybe PaymentSourceExternalAccounts'Data'Object'
      -> Maybe PaymentSourceExternalAccounts'Data'Recipient'Variants
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> PaymentSourceExternalAccounts'Data')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"last4")) Parser
  (Maybe Object
   -> Maybe Text
   -> Maybe PaymentSourceExternalAccounts'Data'Object'
   -> Maybe PaymentSourceExternalAccounts'Data'Recipient'Variants
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> PaymentSourceExternalAccounts'Data')
-> Parser (Maybe Object)
-> Parser
     (Maybe Text
      -> Maybe PaymentSourceExternalAccounts'Data'Object'
      -> Maybe PaymentSourceExternalAccounts'Data'Recipient'Variants
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> PaymentSourceExternalAccounts'Data')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Object)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"metadata")) Parser
  (Maybe Text
   -> Maybe PaymentSourceExternalAccounts'Data'Object'
   -> Maybe PaymentSourceExternalAccounts'Data'Recipient'Variants
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> PaymentSourceExternalAccounts'Data')
-> Parser (Maybe Text)
-> Parser
     (Maybe PaymentSourceExternalAccounts'Data'Object'
      -> Maybe PaymentSourceExternalAccounts'Data'Recipient'Variants
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> PaymentSourceExternalAccounts'Data')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"name")) Parser
  (Maybe PaymentSourceExternalAccounts'Data'Object'
   -> Maybe PaymentSourceExternalAccounts'Data'Recipient'Variants
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> PaymentSourceExternalAccounts'Data')
-> Parser (Maybe PaymentSourceExternalAccounts'Data'Object')
-> Parser
     (Maybe PaymentSourceExternalAccounts'Data'Recipient'Variants
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> PaymentSourceExternalAccounts'Data')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser (Maybe PaymentSourceExternalAccounts'Data'Object')
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"object")) Parser
  (Maybe PaymentSourceExternalAccounts'Data'Recipient'Variants
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> PaymentSourceExternalAccounts'Data')
-> Parser
     (Maybe PaymentSourceExternalAccounts'Data'Recipient'Variants)
-> Parser
     (Maybe Text
      -> Maybe Text -> Maybe Text -> PaymentSourceExternalAccounts'Data')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     (Maybe PaymentSourceExternalAccounts'Data'Recipient'Variants)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"recipient")) Parser
  (Maybe Text
   -> Maybe Text -> Maybe Text -> PaymentSourceExternalAccounts'Data')
-> Parser (Maybe Text)
-> Parser
     (Maybe Text -> Maybe Text -> PaymentSourceExternalAccounts'Data')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"routing_number")) Parser
  (Maybe Text -> Maybe Text -> PaymentSourceExternalAccounts'Data')
-> Parser (Maybe Text)
-> Parser (Maybe Text -> PaymentSourceExternalAccounts'Data')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"status")) Parser (Maybe Text -> PaymentSourceExternalAccounts'Data')
-> Parser (Maybe Text)
-> Parser PaymentSourceExternalAccounts'Data'
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"tokenization_method"))

-- | Create a new 'PaymentSourceExternalAccounts'Data'' with all required fields.
mkPaymentSourceExternalAccounts'Data' :: PaymentSourceExternalAccounts'Data'
mkPaymentSourceExternalAccounts'Data' :: PaymentSourceExternalAccounts'Data'
mkPaymentSourceExternalAccounts'Data' =
  PaymentSourceExternalAccounts'Data' :: Maybe PaymentSourceExternalAccounts'Data'Account'Variants
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe
     [PaymentSourceExternalAccounts'Data'AvailablePayoutMethods']
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe PaymentSourceExternalAccounts'Data'Customer'Variants
-> Maybe Text
-> Maybe Bool
-> Maybe Text
-> Maybe Int
-> Maybe Int
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Object
-> Maybe Text
-> Maybe PaymentSourceExternalAccounts'Data'Object'
-> Maybe PaymentSourceExternalAccounts'Data'Recipient'Variants
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> PaymentSourceExternalAccounts'Data'
PaymentSourceExternalAccounts'Data'
    { paymentSourceExternalAccounts'Data'Account :: Maybe PaymentSourceExternalAccounts'Data'Account'Variants
paymentSourceExternalAccounts'Data'Account = Maybe PaymentSourceExternalAccounts'Data'Account'Variants
forall a. Maybe a
GHC.Maybe.Nothing,
      paymentSourceExternalAccounts'Data'AccountHolderName :: Maybe Text
paymentSourceExternalAccounts'Data'AccountHolderName = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      paymentSourceExternalAccounts'Data'AccountHolderType :: Maybe Text
paymentSourceExternalAccounts'Data'AccountHolderType = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      paymentSourceExternalAccounts'Data'AddressCity :: Maybe Text
paymentSourceExternalAccounts'Data'AddressCity = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      paymentSourceExternalAccounts'Data'AddressCountry :: Maybe Text
paymentSourceExternalAccounts'Data'AddressCountry = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      paymentSourceExternalAccounts'Data'AddressLine1 :: Maybe Text
paymentSourceExternalAccounts'Data'AddressLine1 = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      paymentSourceExternalAccounts'Data'AddressLine1Check :: Maybe Text
paymentSourceExternalAccounts'Data'AddressLine1Check = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      paymentSourceExternalAccounts'Data'AddressLine2 :: Maybe Text
paymentSourceExternalAccounts'Data'AddressLine2 = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      paymentSourceExternalAccounts'Data'AddressState :: Maybe Text
paymentSourceExternalAccounts'Data'AddressState = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      paymentSourceExternalAccounts'Data'AddressZip :: Maybe Text
paymentSourceExternalAccounts'Data'AddressZip = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      paymentSourceExternalAccounts'Data'AddressZipCheck :: Maybe Text
paymentSourceExternalAccounts'Data'AddressZipCheck = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      paymentSourceExternalAccounts'Data'AvailablePayoutMethods :: Maybe [PaymentSourceExternalAccounts'Data'AvailablePayoutMethods']
paymentSourceExternalAccounts'Data'AvailablePayoutMethods = Maybe [PaymentSourceExternalAccounts'Data'AvailablePayoutMethods']
forall a. Maybe a
GHC.Maybe.Nothing,
      paymentSourceExternalAccounts'Data'BankName :: Maybe Text
paymentSourceExternalAccounts'Data'BankName = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      paymentSourceExternalAccounts'Data'Brand :: Maybe Text
paymentSourceExternalAccounts'Data'Brand = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      paymentSourceExternalAccounts'Data'Country :: Maybe Text
paymentSourceExternalAccounts'Data'Country = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      paymentSourceExternalAccounts'Data'Currency :: Maybe Text
paymentSourceExternalAccounts'Data'Currency = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      paymentSourceExternalAccounts'Data'Customer :: Maybe PaymentSourceExternalAccounts'Data'Customer'Variants
paymentSourceExternalAccounts'Data'Customer = Maybe PaymentSourceExternalAccounts'Data'Customer'Variants
forall a. Maybe a
GHC.Maybe.Nothing,
      paymentSourceExternalAccounts'Data'CvcCheck :: Maybe Text
paymentSourceExternalAccounts'Data'CvcCheck = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      paymentSourceExternalAccounts'Data'DefaultForCurrency :: Maybe Bool
paymentSourceExternalAccounts'Data'DefaultForCurrency = Maybe Bool
forall a. Maybe a
GHC.Maybe.Nothing,
      paymentSourceExternalAccounts'Data'DynamicLast4 :: Maybe Text
paymentSourceExternalAccounts'Data'DynamicLast4 = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      paymentSourceExternalAccounts'Data'ExpMonth :: Maybe Int
paymentSourceExternalAccounts'Data'ExpMonth = Maybe Int
forall a. Maybe a
GHC.Maybe.Nothing,
      paymentSourceExternalAccounts'Data'ExpYear :: Maybe Int
paymentSourceExternalAccounts'Data'ExpYear = Maybe Int
forall a. Maybe a
GHC.Maybe.Nothing,
      paymentSourceExternalAccounts'Data'Fingerprint :: Maybe Text
paymentSourceExternalAccounts'Data'Fingerprint = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      paymentSourceExternalAccounts'Data'Funding :: Maybe Text
paymentSourceExternalAccounts'Data'Funding = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      paymentSourceExternalAccounts'Data'Id :: Maybe Text
paymentSourceExternalAccounts'Data'Id = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      paymentSourceExternalAccounts'Data'Last4 :: Maybe Text
paymentSourceExternalAccounts'Data'Last4 = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      paymentSourceExternalAccounts'Data'Metadata :: Maybe Object
paymentSourceExternalAccounts'Data'Metadata = Maybe Object
forall a. Maybe a
GHC.Maybe.Nothing,
      paymentSourceExternalAccounts'Data'Name :: Maybe Text
paymentSourceExternalAccounts'Data'Name = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      paymentSourceExternalAccounts'Data'Object :: Maybe PaymentSourceExternalAccounts'Data'Object'
paymentSourceExternalAccounts'Data'Object = Maybe PaymentSourceExternalAccounts'Data'Object'
forall a. Maybe a
GHC.Maybe.Nothing,
      paymentSourceExternalAccounts'Data'Recipient :: Maybe PaymentSourceExternalAccounts'Data'Recipient'Variants
paymentSourceExternalAccounts'Data'Recipient = Maybe PaymentSourceExternalAccounts'Data'Recipient'Variants
forall a. Maybe a
GHC.Maybe.Nothing,
      paymentSourceExternalAccounts'Data'RoutingNumber :: Maybe Text
paymentSourceExternalAccounts'Data'RoutingNumber = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      paymentSourceExternalAccounts'Data'Status :: Maybe Text
paymentSourceExternalAccounts'Data'Status = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      paymentSourceExternalAccounts'Data'TokenizationMethod :: Maybe Text
paymentSourceExternalAccounts'Data'TokenizationMethod = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing
    }

-- | Defines the oneOf schema located at @components.schemas.payment_source.anyOf.properties.external_accounts.properties.data.items.anyOf.properties.account.anyOf@ in the specification.
--
-- The ID of the account that the bank account is associated with.
data PaymentSourceExternalAccounts'Data'Account'Variants
  = PaymentSourceExternalAccounts'Data'Account'Text Data.Text.Internal.Text
  | PaymentSourceExternalAccounts'Data'Account'Account Account
  deriving (Int -> PaymentSourceExternalAccounts'Data'Account'Variants -> ShowS
[PaymentSourceExternalAccounts'Data'Account'Variants] -> ShowS
PaymentSourceExternalAccounts'Data'Account'Variants -> String
(Int
 -> PaymentSourceExternalAccounts'Data'Account'Variants -> ShowS)
-> (PaymentSourceExternalAccounts'Data'Account'Variants -> String)
-> ([PaymentSourceExternalAccounts'Data'Account'Variants] -> ShowS)
-> Show PaymentSourceExternalAccounts'Data'Account'Variants
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PaymentSourceExternalAccounts'Data'Account'Variants] -> ShowS
$cshowList :: [PaymentSourceExternalAccounts'Data'Account'Variants] -> ShowS
show :: PaymentSourceExternalAccounts'Data'Account'Variants -> String
$cshow :: PaymentSourceExternalAccounts'Data'Account'Variants -> String
showsPrec :: Int -> PaymentSourceExternalAccounts'Data'Account'Variants -> ShowS
$cshowsPrec :: Int -> PaymentSourceExternalAccounts'Data'Account'Variants -> ShowS
GHC.Show.Show, PaymentSourceExternalAccounts'Data'Account'Variants
-> PaymentSourceExternalAccounts'Data'Account'Variants -> Bool
(PaymentSourceExternalAccounts'Data'Account'Variants
 -> PaymentSourceExternalAccounts'Data'Account'Variants -> Bool)
-> (PaymentSourceExternalAccounts'Data'Account'Variants
    -> PaymentSourceExternalAccounts'Data'Account'Variants -> Bool)
-> Eq PaymentSourceExternalAccounts'Data'Account'Variants
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PaymentSourceExternalAccounts'Data'Account'Variants
-> PaymentSourceExternalAccounts'Data'Account'Variants -> Bool
$c/= :: PaymentSourceExternalAccounts'Data'Account'Variants
-> PaymentSourceExternalAccounts'Data'Account'Variants -> Bool
== :: PaymentSourceExternalAccounts'Data'Account'Variants
-> PaymentSourceExternalAccounts'Data'Account'Variants -> Bool
$c== :: PaymentSourceExternalAccounts'Data'Account'Variants
-> PaymentSourceExternalAccounts'Data'Account'Variants -> Bool
GHC.Classes.Eq)

instance Data.Aeson.Types.ToJSON.ToJSON PaymentSourceExternalAccounts'Data'Account'Variants where
  toJSON :: PaymentSourceExternalAccounts'Data'Account'Variants -> Value
toJSON (PaymentSourceExternalAccounts'Data'Account'Text Text
a) = Text -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON Text
a
  toJSON (PaymentSourceExternalAccounts'Data'Account'Account Account
a) = Account -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON Account
a

instance Data.Aeson.Types.FromJSON.FromJSON PaymentSourceExternalAccounts'Data'Account'Variants where
  parseJSON :: Value -> Parser PaymentSourceExternalAccounts'Data'Account'Variants
parseJSON Value
val = case (Text -> PaymentSourceExternalAccounts'Data'Account'Variants
PaymentSourceExternalAccounts'Data'Account'Text (Text -> PaymentSourceExternalAccounts'Data'Account'Variants)
-> Result Text
-> Result PaymentSourceExternalAccounts'Data'Account'Variants
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Data.Functor.<$> Value -> Result Text
forall a. FromJSON a => Value -> Result a
Data.Aeson.Types.FromJSON.fromJSON Value
val) Result PaymentSourceExternalAccounts'Data'Account'Variants
-> Result PaymentSourceExternalAccounts'Data'Account'Variants
-> Result PaymentSourceExternalAccounts'Data'Account'Variants
forall (f :: * -> *) a. Alternative f => f a -> f a -> f a
GHC.Base.<|> ((Account -> PaymentSourceExternalAccounts'Data'Account'Variants
PaymentSourceExternalAccounts'Data'Account'Account (Account -> PaymentSourceExternalAccounts'Data'Account'Variants)
-> Result Account
-> Result PaymentSourceExternalAccounts'Data'Account'Variants
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Data.Functor.<$> Value -> Result Account
forall a. FromJSON a => Value -> Result a
Data.Aeson.Types.FromJSON.fromJSON Value
val) Result PaymentSourceExternalAccounts'Data'Account'Variants
-> Result PaymentSourceExternalAccounts'Data'Account'Variants
-> Result PaymentSourceExternalAccounts'Data'Account'Variants
forall (f :: * -> *) a. Alternative f => f a -> f a -> f a
GHC.Base.<|> String
-> Result PaymentSourceExternalAccounts'Data'Account'Variants
forall a. String -> Result a
Data.Aeson.Types.Internal.Error String
"No variant matched") of
    Data.Aeson.Types.Internal.Success PaymentSourceExternalAccounts'Data'Account'Variants
a -> PaymentSourceExternalAccounts'Data'Account'Variants
-> Parser PaymentSourceExternalAccounts'Data'Account'Variants
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure PaymentSourceExternalAccounts'Data'Account'Variants
a
    Data.Aeson.Types.Internal.Error String
a -> String
-> Parser PaymentSourceExternalAccounts'Data'Account'Variants
forall (m :: * -> *) a. MonadFail m => String -> m a
Control.Monad.Fail.fail String
a

-- | Defines the enum schema located at @components.schemas.payment_source.anyOf.properties.external_accounts.properties.data.items.anyOf.properties.available_payout_methods.items@ in the specification.
data PaymentSourceExternalAccounts'Data'AvailablePayoutMethods'
  = -- | This case is used if the value encountered during decoding does not match any of the provided cases in the specification.
    PaymentSourceExternalAccounts'Data'AvailablePayoutMethods'Other Data.Aeson.Types.Internal.Value
  | -- | This constructor can be used to send values to the server which are not present in the specification yet.
    PaymentSourceExternalAccounts'Data'AvailablePayoutMethods'Typed Data.Text.Internal.Text
  | -- | Represents the JSON value @"instant"@
    PaymentSourceExternalAccounts'Data'AvailablePayoutMethods'EnumInstant
  | -- | Represents the JSON value @"standard"@
    PaymentSourceExternalAccounts'Data'AvailablePayoutMethods'EnumStandard
  deriving (Int
-> PaymentSourceExternalAccounts'Data'AvailablePayoutMethods'
-> ShowS
[PaymentSourceExternalAccounts'Data'AvailablePayoutMethods']
-> ShowS
PaymentSourceExternalAccounts'Data'AvailablePayoutMethods'
-> String
(Int
 -> PaymentSourceExternalAccounts'Data'AvailablePayoutMethods'
 -> ShowS)
-> (PaymentSourceExternalAccounts'Data'AvailablePayoutMethods'
    -> String)
-> ([PaymentSourceExternalAccounts'Data'AvailablePayoutMethods']
    -> ShowS)
-> Show PaymentSourceExternalAccounts'Data'AvailablePayoutMethods'
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PaymentSourceExternalAccounts'Data'AvailablePayoutMethods']
-> ShowS
$cshowList :: [PaymentSourceExternalAccounts'Data'AvailablePayoutMethods']
-> ShowS
show :: PaymentSourceExternalAccounts'Data'AvailablePayoutMethods'
-> String
$cshow :: PaymentSourceExternalAccounts'Data'AvailablePayoutMethods'
-> String
showsPrec :: Int
-> PaymentSourceExternalAccounts'Data'AvailablePayoutMethods'
-> ShowS
$cshowsPrec :: Int
-> PaymentSourceExternalAccounts'Data'AvailablePayoutMethods'
-> ShowS
GHC.Show.Show, PaymentSourceExternalAccounts'Data'AvailablePayoutMethods'
-> PaymentSourceExternalAccounts'Data'AvailablePayoutMethods'
-> Bool
(PaymentSourceExternalAccounts'Data'AvailablePayoutMethods'
 -> PaymentSourceExternalAccounts'Data'AvailablePayoutMethods'
 -> Bool)
-> (PaymentSourceExternalAccounts'Data'AvailablePayoutMethods'
    -> PaymentSourceExternalAccounts'Data'AvailablePayoutMethods'
    -> Bool)
-> Eq PaymentSourceExternalAccounts'Data'AvailablePayoutMethods'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PaymentSourceExternalAccounts'Data'AvailablePayoutMethods'
-> PaymentSourceExternalAccounts'Data'AvailablePayoutMethods'
-> Bool
$c/= :: PaymentSourceExternalAccounts'Data'AvailablePayoutMethods'
-> PaymentSourceExternalAccounts'Data'AvailablePayoutMethods'
-> Bool
== :: PaymentSourceExternalAccounts'Data'AvailablePayoutMethods'
-> PaymentSourceExternalAccounts'Data'AvailablePayoutMethods'
-> Bool
$c== :: PaymentSourceExternalAccounts'Data'AvailablePayoutMethods'
-> PaymentSourceExternalAccounts'Data'AvailablePayoutMethods'
-> Bool
GHC.Classes.Eq)

instance Data.Aeson.Types.ToJSON.ToJSON PaymentSourceExternalAccounts'Data'AvailablePayoutMethods' where
  toJSON :: PaymentSourceExternalAccounts'Data'AvailablePayoutMethods' -> Value
toJSON (PaymentSourceExternalAccounts'Data'AvailablePayoutMethods'Other Value
val) = Value
val
  toJSON (PaymentSourceExternalAccounts'Data'AvailablePayoutMethods'Typed Text
val) = Text -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON Text
val
  toJSON (PaymentSourceExternalAccounts'Data'AvailablePayoutMethods'
PaymentSourceExternalAccounts'Data'AvailablePayoutMethods'EnumInstant) = Value
"instant"
  toJSON (PaymentSourceExternalAccounts'Data'AvailablePayoutMethods'
PaymentSourceExternalAccounts'Data'AvailablePayoutMethods'EnumStandard) = Value
"standard"

instance Data.Aeson.Types.FromJSON.FromJSON PaymentSourceExternalAccounts'Data'AvailablePayoutMethods' where
  parseJSON :: Value
-> Parser
     PaymentSourceExternalAccounts'Data'AvailablePayoutMethods'
parseJSON Value
val =
    PaymentSourceExternalAccounts'Data'AvailablePayoutMethods'
-> Parser
     PaymentSourceExternalAccounts'Data'AvailablePayoutMethods'
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure
      ( if
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"instant" -> PaymentSourceExternalAccounts'Data'AvailablePayoutMethods'
PaymentSourceExternalAccounts'Data'AvailablePayoutMethods'EnumInstant
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"standard" -> PaymentSourceExternalAccounts'Data'AvailablePayoutMethods'
PaymentSourceExternalAccounts'Data'AvailablePayoutMethods'EnumStandard
            | Bool
GHC.Base.otherwise -> Value -> PaymentSourceExternalAccounts'Data'AvailablePayoutMethods'
PaymentSourceExternalAccounts'Data'AvailablePayoutMethods'Other Value
val
      )

-- | Defines the oneOf schema located at @components.schemas.payment_source.anyOf.properties.external_accounts.properties.data.items.anyOf.properties.customer.anyOf@ in the specification.
--
-- The ID of the customer that the bank account is associated with.
data PaymentSourceExternalAccounts'Data'Customer'Variants
  = PaymentSourceExternalAccounts'Data'Customer'Text Data.Text.Internal.Text
  | PaymentSourceExternalAccounts'Data'Customer'Customer Customer
  | PaymentSourceExternalAccounts'Data'Customer'DeletedCustomer DeletedCustomer
  deriving (Int
-> PaymentSourceExternalAccounts'Data'Customer'Variants -> ShowS
[PaymentSourceExternalAccounts'Data'Customer'Variants] -> ShowS
PaymentSourceExternalAccounts'Data'Customer'Variants -> String
(Int
 -> PaymentSourceExternalAccounts'Data'Customer'Variants -> ShowS)
-> (PaymentSourceExternalAccounts'Data'Customer'Variants -> String)
-> ([PaymentSourceExternalAccounts'Data'Customer'Variants]
    -> ShowS)
-> Show PaymentSourceExternalAccounts'Data'Customer'Variants
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PaymentSourceExternalAccounts'Data'Customer'Variants] -> ShowS
$cshowList :: [PaymentSourceExternalAccounts'Data'Customer'Variants] -> ShowS
show :: PaymentSourceExternalAccounts'Data'Customer'Variants -> String
$cshow :: PaymentSourceExternalAccounts'Data'Customer'Variants -> String
showsPrec :: Int
-> PaymentSourceExternalAccounts'Data'Customer'Variants -> ShowS
$cshowsPrec :: Int
-> PaymentSourceExternalAccounts'Data'Customer'Variants -> ShowS
GHC.Show.Show, PaymentSourceExternalAccounts'Data'Customer'Variants
-> PaymentSourceExternalAccounts'Data'Customer'Variants -> Bool
(PaymentSourceExternalAccounts'Data'Customer'Variants
 -> PaymentSourceExternalAccounts'Data'Customer'Variants -> Bool)
-> (PaymentSourceExternalAccounts'Data'Customer'Variants
    -> PaymentSourceExternalAccounts'Data'Customer'Variants -> Bool)
-> Eq PaymentSourceExternalAccounts'Data'Customer'Variants
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PaymentSourceExternalAccounts'Data'Customer'Variants
-> PaymentSourceExternalAccounts'Data'Customer'Variants -> Bool
$c/= :: PaymentSourceExternalAccounts'Data'Customer'Variants
-> PaymentSourceExternalAccounts'Data'Customer'Variants -> Bool
== :: PaymentSourceExternalAccounts'Data'Customer'Variants
-> PaymentSourceExternalAccounts'Data'Customer'Variants -> Bool
$c== :: PaymentSourceExternalAccounts'Data'Customer'Variants
-> PaymentSourceExternalAccounts'Data'Customer'Variants -> Bool
GHC.Classes.Eq)

instance Data.Aeson.Types.ToJSON.ToJSON PaymentSourceExternalAccounts'Data'Customer'Variants where
  toJSON :: PaymentSourceExternalAccounts'Data'Customer'Variants -> Value
toJSON (PaymentSourceExternalAccounts'Data'Customer'Text Text
a) = Text -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON Text
a
  toJSON (PaymentSourceExternalAccounts'Data'Customer'Customer Customer
a) = Customer -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON Customer
a
  toJSON (PaymentSourceExternalAccounts'Data'Customer'DeletedCustomer DeletedCustomer
a) = DeletedCustomer -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON DeletedCustomer
a

instance Data.Aeson.Types.FromJSON.FromJSON PaymentSourceExternalAccounts'Data'Customer'Variants where
  parseJSON :: Value
-> Parser PaymentSourceExternalAccounts'Data'Customer'Variants
parseJSON Value
val = case (Text -> PaymentSourceExternalAccounts'Data'Customer'Variants
PaymentSourceExternalAccounts'Data'Customer'Text (Text -> PaymentSourceExternalAccounts'Data'Customer'Variants)
-> Result Text
-> Result PaymentSourceExternalAccounts'Data'Customer'Variants
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Data.Functor.<$> Value -> Result Text
forall a. FromJSON a => Value -> Result a
Data.Aeson.Types.FromJSON.fromJSON Value
val) Result PaymentSourceExternalAccounts'Data'Customer'Variants
-> Result PaymentSourceExternalAccounts'Data'Customer'Variants
-> Result PaymentSourceExternalAccounts'Data'Customer'Variants
forall (f :: * -> *) a. Alternative f => f a -> f a -> f a
GHC.Base.<|> ((Customer -> PaymentSourceExternalAccounts'Data'Customer'Variants
PaymentSourceExternalAccounts'Data'Customer'Customer (Customer -> PaymentSourceExternalAccounts'Data'Customer'Variants)
-> Result Customer
-> Result PaymentSourceExternalAccounts'Data'Customer'Variants
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Data.Functor.<$> Value -> Result Customer
forall a. FromJSON a => Value -> Result a
Data.Aeson.Types.FromJSON.fromJSON Value
val) Result PaymentSourceExternalAccounts'Data'Customer'Variants
-> Result PaymentSourceExternalAccounts'Data'Customer'Variants
-> Result PaymentSourceExternalAccounts'Data'Customer'Variants
forall (f :: * -> *) a. Alternative f => f a -> f a -> f a
GHC.Base.<|> ((DeletedCustomer
-> PaymentSourceExternalAccounts'Data'Customer'Variants
PaymentSourceExternalAccounts'Data'Customer'DeletedCustomer (DeletedCustomer
 -> PaymentSourceExternalAccounts'Data'Customer'Variants)
-> Result DeletedCustomer
-> Result PaymentSourceExternalAccounts'Data'Customer'Variants
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Data.Functor.<$> Value -> Result DeletedCustomer
forall a. FromJSON a => Value -> Result a
Data.Aeson.Types.FromJSON.fromJSON Value
val) Result PaymentSourceExternalAccounts'Data'Customer'Variants
-> Result PaymentSourceExternalAccounts'Data'Customer'Variants
-> Result PaymentSourceExternalAccounts'Data'Customer'Variants
forall (f :: * -> *) a. Alternative f => f a -> f a -> f a
GHC.Base.<|> String
-> Result PaymentSourceExternalAccounts'Data'Customer'Variants
forall a. String -> Result a
Data.Aeson.Types.Internal.Error String
"No variant matched")) of
    Data.Aeson.Types.Internal.Success PaymentSourceExternalAccounts'Data'Customer'Variants
a -> PaymentSourceExternalAccounts'Data'Customer'Variants
-> Parser PaymentSourceExternalAccounts'Data'Customer'Variants
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure PaymentSourceExternalAccounts'Data'Customer'Variants
a
    Data.Aeson.Types.Internal.Error String
a -> String
-> Parser PaymentSourceExternalAccounts'Data'Customer'Variants
forall (m :: * -> *) a. MonadFail m => String -> m a
Control.Monad.Fail.fail String
a

-- | Defines the enum schema located at @components.schemas.payment_source.anyOf.properties.external_accounts.properties.data.items.anyOf.properties.object@ in the specification.
--
-- String representing the object\'s type. Objects of the same type share the same value.
data PaymentSourceExternalAccounts'Data'Object'
  = -- | This case is used if the value encountered during decoding does not match any of the provided cases in the specification.
    PaymentSourceExternalAccounts'Data'Object'Other Data.Aeson.Types.Internal.Value
  | -- | This constructor can be used to send values to the server which are not present in the specification yet.
    PaymentSourceExternalAccounts'Data'Object'Typed Data.Text.Internal.Text
  | -- | Represents the JSON value @"bank_account"@
    PaymentSourceExternalAccounts'Data'Object'EnumBankAccount
  deriving (Int -> PaymentSourceExternalAccounts'Data'Object' -> ShowS
[PaymentSourceExternalAccounts'Data'Object'] -> ShowS
PaymentSourceExternalAccounts'Data'Object' -> String
(Int -> PaymentSourceExternalAccounts'Data'Object' -> ShowS)
-> (PaymentSourceExternalAccounts'Data'Object' -> String)
-> ([PaymentSourceExternalAccounts'Data'Object'] -> ShowS)
-> Show PaymentSourceExternalAccounts'Data'Object'
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PaymentSourceExternalAccounts'Data'Object'] -> ShowS
$cshowList :: [PaymentSourceExternalAccounts'Data'Object'] -> ShowS
show :: PaymentSourceExternalAccounts'Data'Object' -> String
$cshow :: PaymentSourceExternalAccounts'Data'Object' -> String
showsPrec :: Int -> PaymentSourceExternalAccounts'Data'Object' -> ShowS
$cshowsPrec :: Int -> PaymentSourceExternalAccounts'Data'Object' -> ShowS
GHC.Show.Show, PaymentSourceExternalAccounts'Data'Object'
-> PaymentSourceExternalAccounts'Data'Object' -> Bool
(PaymentSourceExternalAccounts'Data'Object'
 -> PaymentSourceExternalAccounts'Data'Object' -> Bool)
-> (PaymentSourceExternalAccounts'Data'Object'
    -> PaymentSourceExternalAccounts'Data'Object' -> Bool)
-> Eq PaymentSourceExternalAccounts'Data'Object'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PaymentSourceExternalAccounts'Data'Object'
-> PaymentSourceExternalAccounts'Data'Object' -> Bool
$c/= :: PaymentSourceExternalAccounts'Data'Object'
-> PaymentSourceExternalAccounts'Data'Object' -> Bool
== :: PaymentSourceExternalAccounts'Data'Object'
-> PaymentSourceExternalAccounts'Data'Object' -> Bool
$c== :: PaymentSourceExternalAccounts'Data'Object'
-> PaymentSourceExternalAccounts'Data'Object' -> Bool
GHC.Classes.Eq)

instance Data.Aeson.Types.ToJSON.ToJSON PaymentSourceExternalAccounts'Data'Object' where
  toJSON :: PaymentSourceExternalAccounts'Data'Object' -> Value
toJSON (PaymentSourceExternalAccounts'Data'Object'Other Value
val) = Value
val
  toJSON (PaymentSourceExternalAccounts'Data'Object'Typed Text
val) = Text -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON Text
val
  toJSON (PaymentSourceExternalAccounts'Data'Object'
PaymentSourceExternalAccounts'Data'Object'EnumBankAccount) = Value
"bank_account"

instance Data.Aeson.Types.FromJSON.FromJSON PaymentSourceExternalAccounts'Data'Object' where
  parseJSON :: Value -> Parser PaymentSourceExternalAccounts'Data'Object'
parseJSON Value
val =
    PaymentSourceExternalAccounts'Data'Object'
-> Parser PaymentSourceExternalAccounts'Data'Object'
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure
      ( if
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"bank_account" -> PaymentSourceExternalAccounts'Data'Object'
PaymentSourceExternalAccounts'Data'Object'EnumBankAccount
            | Bool
GHC.Base.otherwise -> Value -> PaymentSourceExternalAccounts'Data'Object'
PaymentSourceExternalAccounts'Data'Object'Other Value
val
      )

-- | Defines the oneOf schema located at @components.schemas.payment_source.anyOf.properties.external_accounts.properties.data.items.anyOf.properties.recipient.anyOf@ in the specification.
--
-- The recipient that this card belongs to. This attribute will not be in the card object if the card belongs to a customer or account instead.
data PaymentSourceExternalAccounts'Data'Recipient'Variants
  = PaymentSourceExternalAccounts'Data'Recipient'Text Data.Text.Internal.Text
  | PaymentSourceExternalAccounts'Data'Recipient'Recipient Recipient
  deriving (Int
-> PaymentSourceExternalAccounts'Data'Recipient'Variants -> ShowS
[PaymentSourceExternalAccounts'Data'Recipient'Variants] -> ShowS
PaymentSourceExternalAccounts'Data'Recipient'Variants -> String
(Int
 -> PaymentSourceExternalAccounts'Data'Recipient'Variants -> ShowS)
-> (PaymentSourceExternalAccounts'Data'Recipient'Variants
    -> String)
-> ([PaymentSourceExternalAccounts'Data'Recipient'Variants]
    -> ShowS)
-> Show PaymentSourceExternalAccounts'Data'Recipient'Variants
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PaymentSourceExternalAccounts'Data'Recipient'Variants] -> ShowS
$cshowList :: [PaymentSourceExternalAccounts'Data'Recipient'Variants] -> ShowS
show :: PaymentSourceExternalAccounts'Data'Recipient'Variants -> String
$cshow :: PaymentSourceExternalAccounts'Data'Recipient'Variants -> String
showsPrec :: Int
-> PaymentSourceExternalAccounts'Data'Recipient'Variants -> ShowS
$cshowsPrec :: Int
-> PaymentSourceExternalAccounts'Data'Recipient'Variants -> ShowS
GHC.Show.Show, PaymentSourceExternalAccounts'Data'Recipient'Variants
-> PaymentSourceExternalAccounts'Data'Recipient'Variants -> Bool
(PaymentSourceExternalAccounts'Data'Recipient'Variants
 -> PaymentSourceExternalAccounts'Data'Recipient'Variants -> Bool)
-> (PaymentSourceExternalAccounts'Data'Recipient'Variants
    -> PaymentSourceExternalAccounts'Data'Recipient'Variants -> Bool)
-> Eq PaymentSourceExternalAccounts'Data'Recipient'Variants
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PaymentSourceExternalAccounts'Data'Recipient'Variants
-> PaymentSourceExternalAccounts'Data'Recipient'Variants -> Bool
$c/= :: PaymentSourceExternalAccounts'Data'Recipient'Variants
-> PaymentSourceExternalAccounts'Data'Recipient'Variants -> Bool
== :: PaymentSourceExternalAccounts'Data'Recipient'Variants
-> PaymentSourceExternalAccounts'Data'Recipient'Variants -> Bool
$c== :: PaymentSourceExternalAccounts'Data'Recipient'Variants
-> PaymentSourceExternalAccounts'Data'Recipient'Variants -> Bool
GHC.Classes.Eq)

instance Data.Aeson.Types.ToJSON.ToJSON PaymentSourceExternalAccounts'Data'Recipient'Variants where
  toJSON :: PaymentSourceExternalAccounts'Data'Recipient'Variants -> Value
toJSON (PaymentSourceExternalAccounts'Data'Recipient'Text Text
a) = Text -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON Text
a
  toJSON (PaymentSourceExternalAccounts'Data'Recipient'Recipient Recipient
a) = Recipient -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON Recipient
a

instance Data.Aeson.Types.FromJSON.FromJSON PaymentSourceExternalAccounts'Data'Recipient'Variants where
  parseJSON :: Value
-> Parser PaymentSourceExternalAccounts'Data'Recipient'Variants
parseJSON Value
val = case (Text -> PaymentSourceExternalAccounts'Data'Recipient'Variants
PaymentSourceExternalAccounts'Data'Recipient'Text (Text -> PaymentSourceExternalAccounts'Data'Recipient'Variants)
-> Result Text
-> Result PaymentSourceExternalAccounts'Data'Recipient'Variants
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Data.Functor.<$> Value -> Result Text
forall a. FromJSON a => Value -> Result a
Data.Aeson.Types.FromJSON.fromJSON Value
val) Result PaymentSourceExternalAccounts'Data'Recipient'Variants
-> Result PaymentSourceExternalAccounts'Data'Recipient'Variants
-> Result PaymentSourceExternalAccounts'Data'Recipient'Variants
forall (f :: * -> *) a. Alternative f => f a -> f a -> f a
GHC.Base.<|> ((Recipient -> PaymentSourceExternalAccounts'Data'Recipient'Variants
PaymentSourceExternalAccounts'Data'Recipient'Recipient (Recipient
 -> PaymentSourceExternalAccounts'Data'Recipient'Variants)
-> Result Recipient
-> Result PaymentSourceExternalAccounts'Data'Recipient'Variants
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Data.Functor.<$> Value -> Result Recipient
forall a. FromJSON a => Value -> Result a
Data.Aeson.Types.FromJSON.fromJSON Value
val) Result PaymentSourceExternalAccounts'Data'Recipient'Variants
-> Result PaymentSourceExternalAccounts'Data'Recipient'Variants
-> Result PaymentSourceExternalAccounts'Data'Recipient'Variants
forall (f :: * -> *) a. Alternative f => f a -> f a -> f a
GHC.Base.<|> String
-> Result PaymentSourceExternalAccounts'Data'Recipient'Variants
forall a. String -> Result a
Data.Aeson.Types.Internal.Error String
"No variant matched") of
    Data.Aeson.Types.Internal.Success PaymentSourceExternalAccounts'Data'Recipient'Variants
a -> PaymentSourceExternalAccounts'Data'Recipient'Variants
-> Parser PaymentSourceExternalAccounts'Data'Recipient'Variants
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure PaymentSourceExternalAccounts'Data'Recipient'Variants
a
    Data.Aeson.Types.Internal.Error String
a -> String
-> Parser PaymentSourceExternalAccounts'Data'Recipient'Variants
forall (m :: * -> *) a. MonadFail m => String -> m a
Control.Monad.Fail.fail String
a

-- | Defines the enum schema located at @components.schemas.payment_source.anyOf.properties.object@ in the specification.
--
-- String representing the object\'s type. Objects of the same type share the same value.
data PaymentSourceObject'
  = -- | This case is used if the value encountered during decoding does not match any of the provided cases in the specification.
    PaymentSourceObject'Other Data.Aeson.Types.Internal.Value
  | -- | This constructor can be used to send values to the server which are not present in the specification yet.
    PaymentSourceObject'Typed Data.Text.Internal.Text
  | -- | Represents the JSON value @"account"@
    PaymentSourceObject'EnumAccount
  deriving (Int -> PaymentSourceObject' -> ShowS
[PaymentSourceObject'] -> ShowS
PaymentSourceObject' -> String
(Int -> PaymentSourceObject' -> ShowS)
-> (PaymentSourceObject' -> String)
-> ([PaymentSourceObject'] -> ShowS)
-> Show PaymentSourceObject'
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PaymentSourceObject'] -> ShowS
$cshowList :: [PaymentSourceObject'] -> ShowS
show :: PaymentSourceObject' -> String
$cshow :: PaymentSourceObject' -> String
showsPrec :: Int -> PaymentSourceObject' -> ShowS
$cshowsPrec :: Int -> PaymentSourceObject' -> ShowS
GHC.Show.Show, PaymentSourceObject' -> PaymentSourceObject' -> Bool
(PaymentSourceObject' -> PaymentSourceObject' -> Bool)
-> (PaymentSourceObject' -> PaymentSourceObject' -> Bool)
-> Eq PaymentSourceObject'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PaymentSourceObject' -> PaymentSourceObject' -> Bool
$c/= :: PaymentSourceObject' -> PaymentSourceObject' -> Bool
== :: PaymentSourceObject' -> PaymentSourceObject' -> Bool
$c== :: PaymentSourceObject' -> PaymentSourceObject' -> Bool
GHC.Classes.Eq)

instance Data.Aeson.Types.ToJSON.ToJSON PaymentSourceObject' where
  toJSON :: PaymentSourceObject' -> Value
toJSON (PaymentSourceObject'Other Value
val) = Value
val
  toJSON (PaymentSourceObject'Typed Text
val) = Text -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON Text
val
  toJSON (PaymentSourceObject'
PaymentSourceObject'EnumAccount) = Value
"account"

instance Data.Aeson.Types.FromJSON.FromJSON PaymentSourceObject' where
  parseJSON :: Value -> Parser PaymentSourceObject'
parseJSON Value
val =
    PaymentSourceObject' -> Parser PaymentSourceObject'
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure
      ( if
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"account" -> PaymentSourceObject'
PaymentSourceObject'EnumAccount
            | Bool
GHC.Base.otherwise -> Value -> PaymentSourceObject'
PaymentSourceObject'Other Value
val
      )

-- | Defines the object schema located at @components.schemas.payment_source.anyOf.properties.owner.anyOf@ in the specification.
--
-- Information about the owner of the payment instrument that may be used or required by particular source types.
data PaymentSourceOwner' = PaymentSourceOwner'
  { -- | address: Owner\'s address.
    PaymentSourceOwner' -> Maybe PaymentSourceOwner'Address'
paymentSourceOwner'Address :: (GHC.Maybe.Maybe PaymentSourceOwner'Address'),
    -- | email: Owner\'s email address.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PaymentSourceOwner' -> Maybe Text
paymentSourceOwner'Email :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | name: Owner\'s full name.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PaymentSourceOwner' -> Maybe Text
paymentSourceOwner'Name :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | phone: Owner\'s phone number (including extension).
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PaymentSourceOwner' -> Maybe Text
paymentSourceOwner'Phone :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | verified_address: Verified owner\'s address. Verified values are verified or provided by the payment method directly (and if supported) at the time of authorization or settlement. They cannot be set or mutated.
    PaymentSourceOwner' -> Maybe PaymentSourceOwner'VerifiedAddress'
paymentSourceOwner'VerifiedAddress :: (GHC.Maybe.Maybe PaymentSourceOwner'VerifiedAddress'),
    -- | verified_email: Verified owner\'s email address. Verified values are verified or provided by the payment method directly (and if supported) at the time of authorization or settlement. They cannot be set or mutated.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PaymentSourceOwner' -> Maybe Text
paymentSourceOwner'VerifiedEmail :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | verified_name: Verified owner\'s full name. Verified values are verified or provided by the payment method directly (and if supported) at the time of authorization or settlement. They cannot be set or mutated.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PaymentSourceOwner' -> Maybe Text
paymentSourceOwner'VerifiedName :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | verified_phone: Verified owner\'s phone number (including extension). Verified values are verified or provided by the payment method directly (and if supported) at the time of authorization or settlement. They cannot be set or mutated.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PaymentSourceOwner' -> Maybe Text
paymentSourceOwner'VerifiedPhone :: (GHC.Maybe.Maybe Data.Text.Internal.Text)
  }
  deriving
    ( Int -> PaymentSourceOwner' -> ShowS
[PaymentSourceOwner'] -> ShowS
PaymentSourceOwner' -> String
(Int -> PaymentSourceOwner' -> ShowS)
-> (PaymentSourceOwner' -> String)
-> ([PaymentSourceOwner'] -> ShowS)
-> Show PaymentSourceOwner'
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PaymentSourceOwner'] -> ShowS
$cshowList :: [PaymentSourceOwner'] -> ShowS
show :: PaymentSourceOwner' -> String
$cshow :: PaymentSourceOwner' -> String
showsPrec :: Int -> PaymentSourceOwner' -> ShowS
$cshowsPrec :: Int -> PaymentSourceOwner' -> ShowS
GHC.Show.Show,
      PaymentSourceOwner' -> PaymentSourceOwner' -> Bool
(PaymentSourceOwner' -> PaymentSourceOwner' -> Bool)
-> (PaymentSourceOwner' -> PaymentSourceOwner' -> Bool)
-> Eq PaymentSourceOwner'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PaymentSourceOwner' -> PaymentSourceOwner' -> Bool
$c/= :: PaymentSourceOwner' -> PaymentSourceOwner' -> Bool
== :: PaymentSourceOwner' -> PaymentSourceOwner' -> Bool
$c== :: PaymentSourceOwner' -> PaymentSourceOwner' -> Bool
GHC.Classes.Eq
    )

instance Data.Aeson.Types.ToJSON.ToJSON PaymentSourceOwner' where
  toJSON :: PaymentSourceOwner' -> Value
toJSON PaymentSourceOwner'
obj = [Pair] -> Value
Data.Aeson.Types.Internal.object (Text
"address" Text -> Maybe PaymentSourceOwner'Address' -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSourceOwner' -> Maybe PaymentSourceOwner'Address'
paymentSourceOwner'Address PaymentSourceOwner'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"email" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSourceOwner' -> Maybe Text
paymentSourceOwner'Email PaymentSourceOwner'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"name" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSourceOwner' -> Maybe Text
paymentSourceOwner'Name PaymentSourceOwner'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"phone" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSourceOwner' -> Maybe Text
paymentSourceOwner'Phone PaymentSourceOwner'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"verified_address" Text -> Maybe PaymentSourceOwner'VerifiedAddress' -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSourceOwner' -> Maybe PaymentSourceOwner'VerifiedAddress'
paymentSourceOwner'VerifiedAddress PaymentSourceOwner'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"verified_email" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSourceOwner' -> Maybe Text
paymentSourceOwner'VerifiedEmail PaymentSourceOwner'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"verified_name" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSourceOwner' -> Maybe Text
paymentSourceOwner'VerifiedName PaymentSourceOwner'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"verified_phone" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSourceOwner' -> Maybe Text
paymentSourceOwner'VerifiedPhone PaymentSourceOwner'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: PaymentSourceOwner' -> Encoding
toEncoding PaymentSourceOwner'
obj = Series -> Encoding
Data.Aeson.Encoding.Internal.pairs ((Text
"address" Text -> Maybe PaymentSourceOwner'Address' -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSourceOwner' -> Maybe PaymentSourceOwner'Address'
paymentSourceOwner'Address PaymentSourceOwner'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"email" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSourceOwner' -> Maybe Text
paymentSourceOwner'Email PaymentSourceOwner'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"name" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSourceOwner' -> Maybe Text
paymentSourceOwner'Name PaymentSourceOwner'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"phone" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSourceOwner' -> Maybe Text
paymentSourceOwner'Phone PaymentSourceOwner'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"verified_address" Text -> Maybe PaymentSourceOwner'VerifiedAddress' -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSourceOwner' -> Maybe PaymentSourceOwner'VerifiedAddress'
paymentSourceOwner'VerifiedAddress PaymentSourceOwner'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"verified_email" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSourceOwner' -> Maybe Text
paymentSourceOwner'VerifiedEmail PaymentSourceOwner'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"verified_name" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSourceOwner' -> Maybe Text
paymentSourceOwner'VerifiedName PaymentSourceOwner'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> (Text
"verified_phone" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSourceOwner' -> Maybe Text
paymentSourceOwner'VerifiedPhone PaymentSourceOwner'
obj))))))))

instance Data.Aeson.Types.FromJSON.FromJSON PaymentSourceOwner' where
  parseJSON :: Value -> Parser PaymentSourceOwner'
parseJSON = String
-> (Object -> Parser PaymentSourceOwner')
-> Value
-> Parser PaymentSourceOwner'
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.Aeson.Types.FromJSON.withObject String
"PaymentSourceOwner'" (\Object
obj -> ((((((((Maybe PaymentSourceOwner'Address'
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe PaymentSourceOwner'VerifiedAddress'
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> PaymentSourceOwner')
-> Parser
     (Maybe PaymentSourceOwner'Address'
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe PaymentSourceOwner'VerifiedAddress'
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> PaymentSourceOwner')
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure Maybe PaymentSourceOwner'Address'
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe PaymentSourceOwner'VerifiedAddress'
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> PaymentSourceOwner'
PaymentSourceOwner' Parser
  (Maybe PaymentSourceOwner'Address'
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe PaymentSourceOwner'VerifiedAddress'
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> PaymentSourceOwner')
-> Parser (Maybe PaymentSourceOwner'Address')
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe PaymentSourceOwner'VerifiedAddress'
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> PaymentSourceOwner')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe PaymentSourceOwner'Address')
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"address")) Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe PaymentSourceOwner'VerifiedAddress'
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> PaymentSourceOwner')
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe PaymentSourceOwner'VerifiedAddress'
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> PaymentSourceOwner')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"email")) Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe PaymentSourceOwner'VerifiedAddress'
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> PaymentSourceOwner')
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe PaymentSourceOwner'VerifiedAddress'
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> PaymentSourceOwner')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"name")) Parser
  (Maybe Text
   -> Maybe PaymentSourceOwner'VerifiedAddress'
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> PaymentSourceOwner')
-> Parser (Maybe Text)
-> Parser
     (Maybe PaymentSourceOwner'VerifiedAddress'
      -> Maybe Text -> Maybe Text -> Maybe Text -> PaymentSourceOwner')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"phone")) Parser
  (Maybe PaymentSourceOwner'VerifiedAddress'
   -> Maybe Text -> Maybe Text -> Maybe Text -> PaymentSourceOwner')
-> Parser (Maybe PaymentSourceOwner'VerifiedAddress')
-> Parser
     (Maybe Text -> Maybe Text -> Maybe Text -> PaymentSourceOwner')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text -> Parser (Maybe PaymentSourceOwner'VerifiedAddress')
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"verified_address")) Parser
  (Maybe Text -> Maybe Text -> Maybe Text -> PaymentSourceOwner')
-> Parser (Maybe Text)
-> Parser (Maybe Text -> Maybe Text -> PaymentSourceOwner')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"verified_email")) Parser (Maybe Text -> Maybe Text -> PaymentSourceOwner')
-> Parser (Maybe Text)
-> Parser (Maybe Text -> PaymentSourceOwner')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"verified_name")) Parser (Maybe Text -> PaymentSourceOwner')
-> Parser (Maybe Text) -> Parser PaymentSourceOwner'
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"verified_phone"))

-- | Create a new 'PaymentSourceOwner'' with all required fields.
mkPaymentSourceOwner' :: PaymentSourceOwner'
mkPaymentSourceOwner' :: PaymentSourceOwner'
mkPaymentSourceOwner' =
  PaymentSourceOwner' :: Maybe PaymentSourceOwner'Address'
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe PaymentSourceOwner'VerifiedAddress'
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> PaymentSourceOwner'
PaymentSourceOwner'
    { paymentSourceOwner'Address :: Maybe PaymentSourceOwner'Address'
paymentSourceOwner'Address = Maybe PaymentSourceOwner'Address'
forall a. Maybe a
GHC.Maybe.Nothing,
      paymentSourceOwner'Email :: Maybe Text
paymentSourceOwner'Email = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      paymentSourceOwner'Name :: Maybe Text
paymentSourceOwner'Name = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      paymentSourceOwner'Phone :: Maybe Text
paymentSourceOwner'Phone = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      paymentSourceOwner'VerifiedAddress :: Maybe PaymentSourceOwner'VerifiedAddress'
paymentSourceOwner'VerifiedAddress = Maybe PaymentSourceOwner'VerifiedAddress'
forall a. Maybe a
GHC.Maybe.Nothing,
      paymentSourceOwner'VerifiedEmail :: Maybe Text
paymentSourceOwner'VerifiedEmail = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      paymentSourceOwner'VerifiedName :: Maybe Text
paymentSourceOwner'VerifiedName = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      paymentSourceOwner'VerifiedPhone :: Maybe Text
paymentSourceOwner'VerifiedPhone = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing
    }

-- | Defines the object schema located at @components.schemas.payment_source.anyOf.properties.owner.anyOf.properties.address.anyOf@ in the specification.
--
-- Owner\\\'s address.
data PaymentSourceOwner'Address' = PaymentSourceOwner'Address'
  { -- | city: City, district, suburb, town, or village.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PaymentSourceOwner'Address' -> Maybe Text
paymentSourceOwner'Address'City :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | country: Two-letter country code ([ISO 3166-1 alpha-2](https:\/\/en.wikipedia.org\/wiki\/ISO_3166-1_alpha-2)).
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PaymentSourceOwner'Address' -> Maybe Text
paymentSourceOwner'Address'Country :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | line1: Address line 1 (e.g., street, PO Box, or company name).
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PaymentSourceOwner'Address' -> Maybe Text
paymentSourceOwner'Address'Line1 :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | line2: Address line 2 (e.g., apartment, suite, unit, or building).
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PaymentSourceOwner'Address' -> Maybe Text
paymentSourceOwner'Address'Line2 :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | postal_code: ZIP or postal code.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PaymentSourceOwner'Address' -> Maybe Text
paymentSourceOwner'Address'PostalCode :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | state: State, county, province, or region.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PaymentSourceOwner'Address' -> Maybe Text
paymentSourceOwner'Address'State :: (GHC.Maybe.Maybe Data.Text.Internal.Text)
  }
  deriving
    ( Int -> PaymentSourceOwner'Address' -> ShowS
[PaymentSourceOwner'Address'] -> ShowS
PaymentSourceOwner'Address' -> String
(Int -> PaymentSourceOwner'Address' -> ShowS)
-> (PaymentSourceOwner'Address' -> String)
-> ([PaymentSourceOwner'Address'] -> ShowS)
-> Show PaymentSourceOwner'Address'
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PaymentSourceOwner'Address'] -> ShowS
$cshowList :: [PaymentSourceOwner'Address'] -> ShowS
show :: PaymentSourceOwner'Address' -> String
$cshow :: PaymentSourceOwner'Address' -> String
showsPrec :: Int -> PaymentSourceOwner'Address' -> ShowS
$cshowsPrec :: Int -> PaymentSourceOwner'Address' -> ShowS
GHC.Show.Show,
      PaymentSourceOwner'Address' -> PaymentSourceOwner'Address' -> Bool
(PaymentSourceOwner'Address'
 -> PaymentSourceOwner'Address' -> Bool)
-> (PaymentSourceOwner'Address'
    -> PaymentSourceOwner'Address' -> Bool)
-> Eq PaymentSourceOwner'Address'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PaymentSourceOwner'Address' -> PaymentSourceOwner'Address' -> Bool
$c/= :: PaymentSourceOwner'Address' -> PaymentSourceOwner'Address' -> Bool
== :: PaymentSourceOwner'Address' -> PaymentSourceOwner'Address' -> Bool
$c== :: PaymentSourceOwner'Address' -> PaymentSourceOwner'Address' -> Bool
GHC.Classes.Eq
    )

instance Data.Aeson.Types.ToJSON.ToJSON PaymentSourceOwner'Address' where
  toJSON :: PaymentSourceOwner'Address' -> Value
toJSON PaymentSourceOwner'Address'
obj = [Pair] -> Value
Data.Aeson.Types.Internal.object (Text
"city" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSourceOwner'Address' -> Maybe Text
paymentSourceOwner'Address'City PaymentSourceOwner'Address'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"country" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSourceOwner'Address' -> Maybe Text
paymentSourceOwner'Address'Country PaymentSourceOwner'Address'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"line1" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSourceOwner'Address' -> Maybe Text
paymentSourceOwner'Address'Line1 PaymentSourceOwner'Address'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"line2" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSourceOwner'Address' -> Maybe Text
paymentSourceOwner'Address'Line2 PaymentSourceOwner'Address'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"postal_code" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSourceOwner'Address' -> Maybe Text
paymentSourceOwner'Address'PostalCode PaymentSourceOwner'Address'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"state" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSourceOwner'Address' -> Maybe Text
paymentSourceOwner'Address'State PaymentSourceOwner'Address'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: PaymentSourceOwner'Address' -> Encoding
toEncoding PaymentSourceOwner'Address'
obj = Series -> Encoding
Data.Aeson.Encoding.Internal.pairs ((Text
"city" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSourceOwner'Address' -> Maybe Text
paymentSourceOwner'Address'City PaymentSourceOwner'Address'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"country" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSourceOwner'Address' -> Maybe Text
paymentSourceOwner'Address'Country PaymentSourceOwner'Address'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"line1" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSourceOwner'Address' -> Maybe Text
paymentSourceOwner'Address'Line1 PaymentSourceOwner'Address'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"line2" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSourceOwner'Address' -> Maybe Text
paymentSourceOwner'Address'Line2 PaymentSourceOwner'Address'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"postal_code" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSourceOwner'Address' -> Maybe Text
paymentSourceOwner'Address'PostalCode PaymentSourceOwner'Address'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> (Text
"state" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSourceOwner'Address' -> Maybe Text
paymentSourceOwner'Address'State PaymentSourceOwner'Address'
obj))))))

instance Data.Aeson.Types.FromJSON.FromJSON PaymentSourceOwner'Address' where
  parseJSON :: Value -> Parser PaymentSourceOwner'Address'
parseJSON = String
-> (Object -> Parser PaymentSourceOwner'Address')
-> Value
-> Parser PaymentSourceOwner'Address'
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.Aeson.Types.FromJSON.withObject String
"PaymentSourceOwner'Address'" (\Object
obj -> ((((((Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> PaymentSourceOwner'Address')
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> PaymentSourceOwner'Address')
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> PaymentSourceOwner'Address'
PaymentSourceOwner'Address' Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> PaymentSourceOwner'Address')
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> PaymentSourceOwner'Address')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"city")) Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> PaymentSourceOwner'Address')
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> PaymentSourceOwner'Address')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"country")) Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> PaymentSourceOwner'Address')
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Text -> Maybe Text -> PaymentSourceOwner'Address')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"line1")) Parser
  (Maybe Text
   -> Maybe Text -> Maybe Text -> PaymentSourceOwner'Address')
-> Parser (Maybe Text)
-> Parser (Maybe Text -> Maybe Text -> PaymentSourceOwner'Address')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"line2")) Parser (Maybe Text -> Maybe Text -> PaymentSourceOwner'Address')
-> Parser (Maybe Text)
-> Parser (Maybe Text -> PaymentSourceOwner'Address')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"postal_code")) Parser (Maybe Text -> PaymentSourceOwner'Address')
-> Parser (Maybe Text) -> Parser PaymentSourceOwner'Address'
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"state"))

-- | Create a new 'PaymentSourceOwner'Address'' with all required fields.
mkPaymentSourceOwner'Address' :: PaymentSourceOwner'Address'
mkPaymentSourceOwner'Address' :: PaymentSourceOwner'Address'
mkPaymentSourceOwner'Address' =
  PaymentSourceOwner'Address' :: Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> PaymentSourceOwner'Address'
PaymentSourceOwner'Address'
    { paymentSourceOwner'Address'City :: Maybe Text
paymentSourceOwner'Address'City = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      paymentSourceOwner'Address'Country :: Maybe Text
paymentSourceOwner'Address'Country = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      paymentSourceOwner'Address'Line1 :: Maybe Text
paymentSourceOwner'Address'Line1 = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      paymentSourceOwner'Address'Line2 :: Maybe Text
paymentSourceOwner'Address'Line2 = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      paymentSourceOwner'Address'PostalCode :: Maybe Text
paymentSourceOwner'Address'PostalCode = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      paymentSourceOwner'Address'State :: Maybe Text
paymentSourceOwner'Address'State = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing
    }

-- | Defines the object schema located at @components.schemas.payment_source.anyOf.properties.owner.anyOf.properties.verified_address.anyOf@ in the specification.
--
-- Verified owner\\\'s address. Verified values are verified or provided by the payment method directly (and if supported) at the time of authorization or settlement. They cannot be set or mutated.
data PaymentSourceOwner'VerifiedAddress' = PaymentSourceOwner'VerifiedAddress'
  { -- | city: City, district, suburb, town, or village.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PaymentSourceOwner'VerifiedAddress' -> Maybe Text
paymentSourceOwner'VerifiedAddress'City :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | country: Two-letter country code ([ISO 3166-1 alpha-2](https:\/\/en.wikipedia.org\/wiki\/ISO_3166-1_alpha-2)).
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PaymentSourceOwner'VerifiedAddress' -> Maybe Text
paymentSourceOwner'VerifiedAddress'Country :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | line1: Address line 1 (e.g., street, PO Box, or company name).
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PaymentSourceOwner'VerifiedAddress' -> Maybe Text
paymentSourceOwner'VerifiedAddress'Line1 :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | line2: Address line 2 (e.g., apartment, suite, unit, or building).
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PaymentSourceOwner'VerifiedAddress' -> Maybe Text
paymentSourceOwner'VerifiedAddress'Line2 :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | postal_code: ZIP or postal code.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PaymentSourceOwner'VerifiedAddress' -> Maybe Text
paymentSourceOwner'VerifiedAddress'PostalCode :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | state: State, county, province, or region.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PaymentSourceOwner'VerifiedAddress' -> Maybe Text
paymentSourceOwner'VerifiedAddress'State :: (GHC.Maybe.Maybe Data.Text.Internal.Text)
  }
  deriving
    ( Int -> PaymentSourceOwner'VerifiedAddress' -> ShowS
[PaymentSourceOwner'VerifiedAddress'] -> ShowS
PaymentSourceOwner'VerifiedAddress' -> String
(Int -> PaymentSourceOwner'VerifiedAddress' -> ShowS)
-> (PaymentSourceOwner'VerifiedAddress' -> String)
-> ([PaymentSourceOwner'VerifiedAddress'] -> ShowS)
-> Show PaymentSourceOwner'VerifiedAddress'
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PaymentSourceOwner'VerifiedAddress'] -> ShowS
$cshowList :: [PaymentSourceOwner'VerifiedAddress'] -> ShowS
show :: PaymentSourceOwner'VerifiedAddress' -> String
$cshow :: PaymentSourceOwner'VerifiedAddress' -> String
showsPrec :: Int -> PaymentSourceOwner'VerifiedAddress' -> ShowS
$cshowsPrec :: Int -> PaymentSourceOwner'VerifiedAddress' -> ShowS
GHC.Show.Show,
      PaymentSourceOwner'VerifiedAddress'
-> PaymentSourceOwner'VerifiedAddress' -> Bool
(PaymentSourceOwner'VerifiedAddress'
 -> PaymentSourceOwner'VerifiedAddress' -> Bool)
-> (PaymentSourceOwner'VerifiedAddress'
    -> PaymentSourceOwner'VerifiedAddress' -> Bool)
-> Eq PaymentSourceOwner'VerifiedAddress'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PaymentSourceOwner'VerifiedAddress'
-> PaymentSourceOwner'VerifiedAddress' -> Bool
$c/= :: PaymentSourceOwner'VerifiedAddress'
-> PaymentSourceOwner'VerifiedAddress' -> Bool
== :: PaymentSourceOwner'VerifiedAddress'
-> PaymentSourceOwner'VerifiedAddress' -> Bool
$c== :: PaymentSourceOwner'VerifiedAddress'
-> PaymentSourceOwner'VerifiedAddress' -> Bool
GHC.Classes.Eq
    )

instance Data.Aeson.Types.ToJSON.ToJSON PaymentSourceOwner'VerifiedAddress' where
  toJSON :: PaymentSourceOwner'VerifiedAddress' -> Value
toJSON PaymentSourceOwner'VerifiedAddress'
obj = [Pair] -> Value
Data.Aeson.Types.Internal.object (Text
"city" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSourceOwner'VerifiedAddress' -> Maybe Text
paymentSourceOwner'VerifiedAddress'City PaymentSourceOwner'VerifiedAddress'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"country" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSourceOwner'VerifiedAddress' -> Maybe Text
paymentSourceOwner'VerifiedAddress'Country PaymentSourceOwner'VerifiedAddress'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"line1" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSourceOwner'VerifiedAddress' -> Maybe Text
paymentSourceOwner'VerifiedAddress'Line1 PaymentSourceOwner'VerifiedAddress'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"line2" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSourceOwner'VerifiedAddress' -> Maybe Text
paymentSourceOwner'VerifiedAddress'Line2 PaymentSourceOwner'VerifiedAddress'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"postal_code" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSourceOwner'VerifiedAddress' -> Maybe Text
paymentSourceOwner'VerifiedAddress'PostalCode PaymentSourceOwner'VerifiedAddress'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"state" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSourceOwner'VerifiedAddress' -> Maybe Text
paymentSourceOwner'VerifiedAddress'State PaymentSourceOwner'VerifiedAddress'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: PaymentSourceOwner'VerifiedAddress' -> Encoding
toEncoding PaymentSourceOwner'VerifiedAddress'
obj = Series -> Encoding
Data.Aeson.Encoding.Internal.pairs ((Text
"city" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSourceOwner'VerifiedAddress' -> Maybe Text
paymentSourceOwner'VerifiedAddress'City PaymentSourceOwner'VerifiedAddress'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"country" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSourceOwner'VerifiedAddress' -> Maybe Text
paymentSourceOwner'VerifiedAddress'Country PaymentSourceOwner'VerifiedAddress'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"line1" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSourceOwner'VerifiedAddress' -> Maybe Text
paymentSourceOwner'VerifiedAddress'Line1 PaymentSourceOwner'VerifiedAddress'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"line2" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSourceOwner'VerifiedAddress' -> Maybe Text
paymentSourceOwner'VerifiedAddress'Line2 PaymentSourceOwner'VerifiedAddress'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"postal_code" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSourceOwner'VerifiedAddress' -> Maybe Text
paymentSourceOwner'VerifiedAddress'PostalCode PaymentSourceOwner'VerifiedAddress'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> (Text
"state" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSourceOwner'VerifiedAddress' -> Maybe Text
paymentSourceOwner'VerifiedAddress'State PaymentSourceOwner'VerifiedAddress'
obj))))))

instance Data.Aeson.Types.FromJSON.FromJSON PaymentSourceOwner'VerifiedAddress' where
  parseJSON :: Value -> Parser PaymentSourceOwner'VerifiedAddress'
parseJSON = String
-> (Object -> Parser PaymentSourceOwner'VerifiedAddress')
-> Value
-> Parser PaymentSourceOwner'VerifiedAddress'
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.Aeson.Types.FromJSON.withObject String
"PaymentSourceOwner'VerifiedAddress'" (\Object
obj -> ((((((Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> PaymentSourceOwner'VerifiedAddress')
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> PaymentSourceOwner'VerifiedAddress')
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> PaymentSourceOwner'VerifiedAddress'
PaymentSourceOwner'VerifiedAddress' Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> PaymentSourceOwner'VerifiedAddress')
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> PaymentSourceOwner'VerifiedAddress')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"city")) Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> PaymentSourceOwner'VerifiedAddress')
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> PaymentSourceOwner'VerifiedAddress')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"country")) Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> PaymentSourceOwner'VerifiedAddress')
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Text -> Maybe Text -> PaymentSourceOwner'VerifiedAddress')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"line1")) Parser
  (Maybe Text
   -> Maybe Text -> Maybe Text -> PaymentSourceOwner'VerifiedAddress')
-> Parser (Maybe Text)
-> Parser
     (Maybe Text -> Maybe Text -> PaymentSourceOwner'VerifiedAddress')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"line2")) Parser
  (Maybe Text -> Maybe Text -> PaymentSourceOwner'VerifiedAddress')
-> Parser (Maybe Text)
-> Parser (Maybe Text -> PaymentSourceOwner'VerifiedAddress')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"postal_code")) Parser (Maybe Text -> PaymentSourceOwner'VerifiedAddress')
-> Parser (Maybe Text)
-> Parser PaymentSourceOwner'VerifiedAddress'
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"state"))

-- | Create a new 'PaymentSourceOwner'VerifiedAddress'' with all required fields.
mkPaymentSourceOwner'VerifiedAddress' :: PaymentSourceOwner'VerifiedAddress'
mkPaymentSourceOwner'VerifiedAddress' :: PaymentSourceOwner'VerifiedAddress'
mkPaymentSourceOwner'VerifiedAddress' =
  PaymentSourceOwner'VerifiedAddress' :: Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> PaymentSourceOwner'VerifiedAddress'
PaymentSourceOwner'VerifiedAddress'
    { paymentSourceOwner'VerifiedAddress'City :: Maybe Text
paymentSourceOwner'VerifiedAddress'City = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      paymentSourceOwner'VerifiedAddress'Country :: Maybe Text
paymentSourceOwner'VerifiedAddress'Country = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      paymentSourceOwner'VerifiedAddress'Line1 :: Maybe Text
paymentSourceOwner'VerifiedAddress'Line1 = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      paymentSourceOwner'VerifiedAddress'Line2 :: Maybe Text
paymentSourceOwner'VerifiedAddress'Line2 = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      paymentSourceOwner'VerifiedAddress'PostalCode :: Maybe Text
paymentSourceOwner'VerifiedAddress'PostalCode = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      paymentSourceOwner'VerifiedAddress'State :: Maybe Text
paymentSourceOwner'VerifiedAddress'State = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing
    }

-- | Defines the oneOf schema located at @components.schemas.payment_source.anyOf.properties.recipient.anyOf@ in the specification.
--
-- The recipient that this card belongs to. This attribute will not be in the card object if the card belongs to a customer or account instead.
data PaymentSourceRecipient'Variants
  = PaymentSourceRecipient'Text Data.Text.Internal.Text
  | PaymentSourceRecipient'Recipient Recipient
  deriving (Int -> PaymentSourceRecipient'Variants -> ShowS
[PaymentSourceRecipient'Variants] -> ShowS
PaymentSourceRecipient'Variants -> String
(Int -> PaymentSourceRecipient'Variants -> ShowS)
-> (PaymentSourceRecipient'Variants -> String)
-> ([PaymentSourceRecipient'Variants] -> ShowS)
-> Show PaymentSourceRecipient'Variants
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PaymentSourceRecipient'Variants] -> ShowS
$cshowList :: [PaymentSourceRecipient'Variants] -> ShowS
show :: PaymentSourceRecipient'Variants -> String
$cshow :: PaymentSourceRecipient'Variants -> String
showsPrec :: Int -> PaymentSourceRecipient'Variants -> ShowS
$cshowsPrec :: Int -> PaymentSourceRecipient'Variants -> ShowS
GHC.Show.Show, PaymentSourceRecipient'Variants
-> PaymentSourceRecipient'Variants -> Bool
(PaymentSourceRecipient'Variants
 -> PaymentSourceRecipient'Variants -> Bool)
-> (PaymentSourceRecipient'Variants
    -> PaymentSourceRecipient'Variants -> Bool)
-> Eq PaymentSourceRecipient'Variants
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PaymentSourceRecipient'Variants
-> PaymentSourceRecipient'Variants -> Bool
$c/= :: PaymentSourceRecipient'Variants
-> PaymentSourceRecipient'Variants -> Bool
== :: PaymentSourceRecipient'Variants
-> PaymentSourceRecipient'Variants -> Bool
$c== :: PaymentSourceRecipient'Variants
-> PaymentSourceRecipient'Variants -> Bool
GHC.Classes.Eq)

instance Data.Aeson.Types.ToJSON.ToJSON PaymentSourceRecipient'Variants where
  toJSON :: PaymentSourceRecipient'Variants -> Value
toJSON (PaymentSourceRecipient'Text Text
a) = Text -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON Text
a
  toJSON (PaymentSourceRecipient'Recipient Recipient
a) = Recipient -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON Recipient
a

instance Data.Aeson.Types.FromJSON.FromJSON PaymentSourceRecipient'Variants where
  parseJSON :: Value -> Parser PaymentSourceRecipient'Variants
parseJSON Value
val = case (Text -> PaymentSourceRecipient'Variants
PaymentSourceRecipient'Text (Text -> PaymentSourceRecipient'Variants)
-> Result Text -> Result PaymentSourceRecipient'Variants
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Data.Functor.<$> Value -> Result Text
forall a. FromJSON a => Value -> Result a
Data.Aeson.Types.FromJSON.fromJSON Value
val) Result PaymentSourceRecipient'Variants
-> Result PaymentSourceRecipient'Variants
-> Result PaymentSourceRecipient'Variants
forall (f :: * -> *) a. Alternative f => f a -> f a -> f a
GHC.Base.<|> ((Recipient -> PaymentSourceRecipient'Variants
PaymentSourceRecipient'Recipient (Recipient -> PaymentSourceRecipient'Variants)
-> Result Recipient -> Result PaymentSourceRecipient'Variants
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Data.Functor.<$> Value -> Result Recipient
forall a. FromJSON a => Value -> Result a
Data.Aeson.Types.FromJSON.fromJSON Value
val) Result PaymentSourceRecipient'Variants
-> Result PaymentSourceRecipient'Variants
-> Result PaymentSourceRecipient'Variants
forall (f :: * -> *) a. Alternative f => f a -> f a -> f a
GHC.Base.<|> String -> Result PaymentSourceRecipient'Variants
forall a. String -> Result a
Data.Aeson.Types.Internal.Error String
"No variant matched") of
    Data.Aeson.Types.Internal.Success PaymentSourceRecipient'Variants
a -> PaymentSourceRecipient'Variants
-> Parser PaymentSourceRecipient'Variants
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure PaymentSourceRecipient'Variants
a
    Data.Aeson.Types.Internal.Error String
a -> String -> Parser PaymentSourceRecipient'Variants
forall (m :: * -> *) a. MonadFail m => String -> m a
Control.Monad.Fail.fail String
a

-- | Defines the object schema located at @components.schemas.payment_source.anyOf.properties.settings.anyOf@ in the specification.
--
-- Options for customizing how the account functions within Stripe.
data PaymentSourceSettings' = PaymentSourceSettings'
  { -- | bacs_debit_payments:
    PaymentSourceSettings' -> Maybe AccountBacsDebitPaymentsSettings
paymentSourceSettings'BacsDebitPayments :: (GHC.Maybe.Maybe AccountBacsDebitPaymentsSettings),
    -- | branding:
    PaymentSourceSettings' -> Maybe AccountBrandingSettings
paymentSourceSettings'Branding :: (GHC.Maybe.Maybe AccountBrandingSettings),
    -- | card_issuing:
    PaymentSourceSettings' -> Maybe AccountCardIssuingSettings
paymentSourceSettings'CardIssuing :: (GHC.Maybe.Maybe AccountCardIssuingSettings),
    -- | card_payments:
    PaymentSourceSettings' -> Maybe AccountCardPaymentsSettings
paymentSourceSettings'CardPayments :: (GHC.Maybe.Maybe AccountCardPaymentsSettings),
    -- | dashboard:
    PaymentSourceSettings' -> Maybe AccountDashboardSettings
paymentSourceSettings'Dashboard :: (GHC.Maybe.Maybe AccountDashboardSettings),
    -- | payments:
    PaymentSourceSettings' -> Maybe AccountPaymentsSettings
paymentSourceSettings'Payments :: (GHC.Maybe.Maybe AccountPaymentsSettings),
    -- | payouts:
    PaymentSourceSettings' -> Maybe AccountPayoutSettings
paymentSourceSettings'Payouts :: (GHC.Maybe.Maybe AccountPayoutSettings),
    -- | sepa_debit_payments:
    PaymentSourceSettings' -> Maybe AccountSepaDebitPaymentsSettings
paymentSourceSettings'SepaDebitPayments :: (GHC.Maybe.Maybe AccountSepaDebitPaymentsSettings)
  }
  deriving
    ( Int -> PaymentSourceSettings' -> ShowS
[PaymentSourceSettings'] -> ShowS
PaymentSourceSettings' -> String
(Int -> PaymentSourceSettings' -> ShowS)
-> (PaymentSourceSettings' -> String)
-> ([PaymentSourceSettings'] -> ShowS)
-> Show PaymentSourceSettings'
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PaymentSourceSettings'] -> ShowS
$cshowList :: [PaymentSourceSettings'] -> ShowS
show :: PaymentSourceSettings' -> String
$cshow :: PaymentSourceSettings' -> String
showsPrec :: Int -> PaymentSourceSettings' -> ShowS
$cshowsPrec :: Int -> PaymentSourceSettings' -> ShowS
GHC.Show.Show,
      PaymentSourceSettings' -> PaymentSourceSettings' -> Bool
(PaymentSourceSettings' -> PaymentSourceSettings' -> Bool)
-> (PaymentSourceSettings' -> PaymentSourceSettings' -> Bool)
-> Eq PaymentSourceSettings'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PaymentSourceSettings' -> PaymentSourceSettings' -> Bool
$c/= :: PaymentSourceSettings' -> PaymentSourceSettings' -> Bool
== :: PaymentSourceSettings' -> PaymentSourceSettings' -> Bool
$c== :: PaymentSourceSettings' -> PaymentSourceSettings' -> Bool
GHC.Classes.Eq
    )

instance Data.Aeson.Types.ToJSON.ToJSON PaymentSourceSettings' where
  toJSON :: PaymentSourceSettings' -> Value
toJSON PaymentSourceSettings'
obj = [Pair] -> Value
Data.Aeson.Types.Internal.object (Text
"bacs_debit_payments" Text -> Maybe AccountBacsDebitPaymentsSettings -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSourceSettings' -> Maybe AccountBacsDebitPaymentsSettings
paymentSourceSettings'BacsDebitPayments PaymentSourceSettings'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"branding" Text -> Maybe AccountBrandingSettings -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSourceSettings' -> Maybe AccountBrandingSettings
paymentSourceSettings'Branding PaymentSourceSettings'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"card_issuing" Text -> Maybe AccountCardIssuingSettings -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSourceSettings' -> Maybe AccountCardIssuingSettings
paymentSourceSettings'CardIssuing PaymentSourceSettings'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"card_payments" Text -> Maybe AccountCardPaymentsSettings -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSourceSettings' -> Maybe AccountCardPaymentsSettings
paymentSourceSettings'CardPayments PaymentSourceSettings'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"dashboard" Text -> Maybe AccountDashboardSettings -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSourceSettings' -> Maybe AccountDashboardSettings
paymentSourceSettings'Dashboard PaymentSourceSettings'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"payments" Text -> Maybe AccountPaymentsSettings -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSourceSettings' -> Maybe AccountPaymentsSettings
paymentSourceSettings'Payments PaymentSourceSettings'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"payouts" Text -> Maybe AccountPayoutSettings -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSourceSettings' -> Maybe AccountPayoutSettings
paymentSourceSettings'Payouts PaymentSourceSettings'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"sepa_debit_payments" Text -> Maybe AccountSepaDebitPaymentsSettings -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSourceSettings' -> Maybe AccountSepaDebitPaymentsSettings
paymentSourceSettings'SepaDebitPayments PaymentSourceSettings'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: PaymentSourceSettings' -> Encoding
toEncoding PaymentSourceSettings'
obj = Series -> Encoding
Data.Aeson.Encoding.Internal.pairs ((Text
"bacs_debit_payments" Text -> Maybe AccountBacsDebitPaymentsSettings -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSourceSettings' -> Maybe AccountBacsDebitPaymentsSettings
paymentSourceSettings'BacsDebitPayments PaymentSourceSettings'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"branding" Text -> Maybe AccountBrandingSettings -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSourceSettings' -> Maybe AccountBrandingSettings
paymentSourceSettings'Branding PaymentSourceSettings'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"card_issuing" Text -> Maybe AccountCardIssuingSettings -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSourceSettings' -> Maybe AccountCardIssuingSettings
paymentSourceSettings'CardIssuing PaymentSourceSettings'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"card_payments" Text -> Maybe AccountCardPaymentsSettings -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSourceSettings' -> Maybe AccountCardPaymentsSettings
paymentSourceSettings'CardPayments PaymentSourceSettings'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"dashboard" Text -> Maybe AccountDashboardSettings -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSourceSettings' -> Maybe AccountDashboardSettings
paymentSourceSettings'Dashboard PaymentSourceSettings'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"payments" Text -> Maybe AccountPaymentsSettings -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSourceSettings' -> Maybe AccountPaymentsSettings
paymentSourceSettings'Payments PaymentSourceSettings'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"payouts" Text -> Maybe AccountPayoutSettings -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSourceSettings' -> Maybe AccountPayoutSettings
paymentSourceSettings'Payouts PaymentSourceSettings'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> (Text
"sepa_debit_payments" Text -> Maybe AccountSepaDebitPaymentsSettings -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSourceSettings' -> Maybe AccountSepaDebitPaymentsSettings
paymentSourceSettings'SepaDebitPayments PaymentSourceSettings'
obj))))))))

instance Data.Aeson.Types.FromJSON.FromJSON PaymentSourceSettings' where
  parseJSON :: Value -> Parser PaymentSourceSettings'
parseJSON = String
-> (Object -> Parser PaymentSourceSettings')
-> Value
-> Parser PaymentSourceSettings'
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.Aeson.Types.FromJSON.withObject String
"PaymentSourceSettings'" (\Object
obj -> ((((((((Maybe AccountBacsDebitPaymentsSettings
 -> Maybe AccountBrandingSettings
 -> Maybe AccountCardIssuingSettings
 -> Maybe AccountCardPaymentsSettings
 -> Maybe AccountDashboardSettings
 -> Maybe AccountPaymentsSettings
 -> Maybe AccountPayoutSettings
 -> Maybe AccountSepaDebitPaymentsSettings
 -> PaymentSourceSettings')
-> Parser
     (Maybe AccountBacsDebitPaymentsSettings
      -> Maybe AccountBrandingSettings
      -> Maybe AccountCardIssuingSettings
      -> Maybe AccountCardPaymentsSettings
      -> Maybe AccountDashboardSettings
      -> Maybe AccountPaymentsSettings
      -> Maybe AccountPayoutSettings
      -> Maybe AccountSepaDebitPaymentsSettings
      -> PaymentSourceSettings')
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure Maybe AccountBacsDebitPaymentsSettings
-> Maybe AccountBrandingSettings
-> Maybe AccountCardIssuingSettings
-> Maybe AccountCardPaymentsSettings
-> Maybe AccountDashboardSettings
-> Maybe AccountPaymentsSettings
-> Maybe AccountPayoutSettings
-> Maybe AccountSepaDebitPaymentsSettings
-> PaymentSourceSettings'
PaymentSourceSettings' Parser
  (Maybe AccountBacsDebitPaymentsSettings
   -> Maybe AccountBrandingSettings
   -> Maybe AccountCardIssuingSettings
   -> Maybe AccountCardPaymentsSettings
   -> Maybe AccountDashboardSettings
   -> Maybe AccountPaymentsSettings
   -> Maybe AccountPayoutSettings
   -> Maybe AccountSepaDebitPaymentsSettings
   -> PaymentSourceSettings')
-> Parser (Maybe AccountBacsDebitPaymentsSettings)
-> Parser
     (Maybe AccountBrandingSettings
      -> Maybe AccountCardIssuingSettings
      -> Maybe AccountCardPaymentsSettings
      -> Maybe AccountDashboardSettings
      -> Maybe AccountPaymentsSettings
      -> Maybe AccountPayoutSettings
      -> Maybe AccountSepaDebitPaymentsSettings
      -> PaymentSourceSettings')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe AccountBacsDebitPaymentsSettings)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"bacs_debit_payments")) Parser
  (Maybe AccountBrandingSettings
   -> Maybe AccountCardIssuingSettings
   -> Maybe AccountCardPaymentsSettings
   -> Maybe AccountDashboardSettings
   -> Maybe AccountPaymentsSettings
   -> Maybe AccountPayoutSettings
   -> Maybe AccountSepaDebitPaymentsSettings
   -> PaymentSourceSettings')
-> Parser (Maybe AccountBrandingSettings)
-> Parser
     (Maybe AccountCardIssuingSettings
      -> Maybe AccountCardPaymentsSettings
      -> Maybe AccountDashboardSettings
      -> Maybe AccountPaymentsSettings
      -> Maybe AccountPayoutSettings
      -> Maybe AccountSepaDebitPaymentsSettings
      -> PaymentSourceSettings')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe AccountBrandingSettings)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"branding")) Parser
  (Maybe AccountCardIssuingSettings
   -> Maybe AccountCardPaymentsSettings
   -> Maybe AccountDashboardSettings
   -> Maybe AccountPaymentsSettings
   -> Maybe AccountPayoutSettings
   -> Maybe AccountSepaDebitPaymentsSettings
   -> PaymentSourceSettings')
-> Parser (Maybe AccountCardIssuingSettings)
-> Parser
     (Maybe AccountCardPaymentsSettings
      -> Maybe AccountDashboardSettings
      -> Maybe AccountPaymentsSettings
      -> Maybe AccountPayoutSettings
      -> Maybe AccountSepaDebitPaymentsSettings
      -> PaymentSourceSettings')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe AccountCardIssuingSettings)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"card_issuing")) Parser
  (Maybe AccountCardPaymentsSettings
   -> Maybe AccountDashboardSettings
   -> Maybe AccountPaymentsSettings
   -> Maybe AccountPayoutSettings
   -> Maybe AccountSepaDebitPaymentsSettings
   -> PaymentSourceSettings')
-> Parser (Maybe AccountCardPaymentsSettings)
-> Parser
     (Maybe AccountDashboardSettings
      -> Maybe AccountPaymentsSettings
      -> Maybe AccountPayoutSettings
      -> Maybe AccountSepaDebitPaymentsSettings
      -> PaymentSourceSettings')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe AccountCardPaymentsSettings)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"card_payments")) Parser
  (Maybe AccountDashboardSettings
   -> Maybe AccountPaymentsSettings
   -> Maybe AccountPayoutSettings
   -> Maybe AccountSepaDebitPaymentsSettings
   -> PaymentSourceSettings')
-> Parser (Maybe AccountDashboardSettings)
-> Parser
     (Maybe AccountPaymentsSettings
      -> Maybe AccountPayoutSettings
      -> Maybe AccountSepaDebitPaymentsSettings
      -> PaymentSourceSettings')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe AccountDashboardSettings)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"dashboard")) Parser
  (Maybe AccountPaymentsSettings
   -> Maybe AccountPayoutSettings
   -> Maybe AccountSepaDebitPaymentsSettings
   -> PaymentSourceSettings')
-> Parser (Maybe AccountPaymentsSettings)
-> Parser
     (Maybe AccountPayoutSettings
      -> Maybe AccountSepaDebitPaymentsSettings
      -> PaymentSourceSettings')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe AccountPaymentsSettings)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"payments")) Parser
  (Maybe AccountPayoutSettings
   -> Maybe AccountSepaDebitPaymentsSettings
   -> PaymentSourceSettings')
-> Parser (Maybe AccountPayoutSettings)
-> Parser
     (Maybe AccountSepaDebitPaymentsSettings -> PaymentSourceSettings')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe AccountPayoutSettings)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"payouts")) Parser
  (Maybe AccountSepaDebitPaymentsSettings -> PaymentSourceSettings')
-> Parser (Maybe AccountSepaDebitPaymentsSettings)
-> Parser PaymentSourceSettings'
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe AccountSepaDebitPaymentsSettings)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"sepa_debit_payments"))

-- | Create a new 'PaymentSourceSettings'' with all required fields.
mkPaymentSourceSettings' :: PaymentSourceSettings'
mkPaymentSourceSettings' :: PaymentSourceSettings'
mkPaymentSourceSettings' =
  PaymentSourceSettings' :: Maybe AccountBacsDebitPaymentsSettings
-> Maybe AccountBrandingSettings
-> Maybe AccountCardIssuingSettings
-> Maybe AccountCardPaymentsSettings
-> Maybe AccountDashboardSettings
-> Maybe AccountPaymentsSettings
-> Maybe AccountPayoutSettings
-> Maybe AccountSepaDebitPaymentsSettings
-> PaymentSourceSettings'
PaymentSourceSettings'
    { paymentSourceSettings'BacsDebitPayments :: Maybe AccountBacsDebitPaymentsSettings
paymentSourceSettings'BacsDebitPayments = Maybe AccountBacsDebitPaymentsSettings
forall a. Maybe a
GHC.Maybe.Nothing,
      paymentSourceSettings'Branding :: Maybe AccountBrandingSettings
paymentSourceSettings'Branding = Maybe AccountBrandingSettings
forall a. Maybe a
GHC.Maybe.Nothing,
      paymentSourceSettings'CardIssuing :: Maybe AccountCardIssuingSettings
paymentSourceSettings'CardIssuing = Maybe AccountCardIssuingSettings
forall a. Maybe a
GHC.Maybe.Nothing,
      paymentSourceSettings'CardPayments :: Maybe AccountCardPaymentsSettings
paymentSourceSettings'CardPayments = Maybe AccountCardPaymentsSettings
forall a. Maybe a
GHC.Maybe.Nothing,
      paymentSourceSettings'Dashboard :: Maybe AccountDashboardSettings
paymentSourceSettings'Dashboard = Maybe AccountDashboardSettings
forall a. Maybe a
GHC.Maybe.Nothing,
      paymentSourceSettings'Payments :: Maybe AccountPaymentsSettings
paymentSourceSettings'Payments = Maybe AccountPaymentsSettings
forall a. Maybe a
GHC.Maybe.Nothing,
      paymentSourceSettings'Payouts :: Maybe AccountPayoutSettings
paymentSourceSettings'Payouts = Maybe AccountPayoutSettings
forall a. Maybe a
GHC.Maybe.Nothing,
      paymentSourceSettings'SepaDebitPayments :: Maybe AccountSepaDebitPaymentsSettings
paymentSourceSettings'SepaDebitPayments = Maybe AccountSepaDebitPaymentsSettings
forall a. Maybe a
GHC.Maybe.Nothing
    }

-- | Defines the object schema located at @components.schemas.payment_source.anyOf.properties.transactions@ in the specification.
--
-- A list with one entry for each time that the customer sent bitcoin to the receiver. Hidden when viewing the receiver with a publishable key.
data PaymentSourceTransactions' = PaymentSourceTransactions'
  { -- | data: Details about each object.
    PaymentSourceTransactions' -> [BitcoinTransaction]
paymentSourceTransactions'Data :: ([BitcoinTransaction]),
    -- | has_more: True if this list has another page of items after this one that can be fetched.
    PaymentSourceTransactions' -> Bool
paymentSourceTransactions'HasMore :: GHC.Types.Bool,
    -- | url: The URL where this list can be accessed.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PaymentSourceTransactions' -> Text
paymentSourceTransactions'Url :: Data.Text.Internal.Text
  }
  deriving
    ( Int -> PaymentSourceTransactions' -> ShowS
[PaymentSourceTransactions'] -> ShowS
PaymentSourceTransactions' -> String
(Int -> PaymentSourceTransactions' -> ShowS)
-> (PaymentSourceTransactions' -> String)
-> ([PaymentSourceTransactions'] -> ShowS)
-> Show PaymentSourceTransactions'
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PaymentSourceTransactions'] -> ShowS
$cshowList :: [PaymentSourceTransactions'] -> ShowS
show :: PaymentSourceTransactions' -> String
$cshow :: PaymentSourceTransactions' -> String
showsPrec :: Int -> PaymentSourceTransactions' -> ShowS
$cshowsPrec :: Int -> PaymentSourceTransactions' -> ShowS
GHC.Show.Show,
      PaymentSourceTransactions' -> PaymentSourceTransactions' -> Bool
(PaymentSourceTransactions' -> PaymentSourceTransactions' -> Bool)
-> (PaymentSourceTransactions'
    -> PaymentSourceTransactions' -> Bool)
-> Eq PaymentSourceTransactions'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PaymentSourceTransactions' -> PaymentSourceTransactions' -> Bool
$c/= :: PaymentSourceTransactions' -> PaymentSourceTransactions' -> Bool
== :: PaymentSourceTransactions' -> PaymentSourceTransactions' -> Bool
$c== :: PaymentSourceTransactions' -> PaymentSourceTransactions' -> Bool
GHC.Classes.Eq
    )

instance Data.Aeson.Types.ToJSON.ToJSON PaymentSourceTransactions' where
  toJSON :: PaymentSourceTransactions' -> Value
toJSON PaymentSourceTransactions'
obj = [Pair] -> Value
Data.Aeson.Types.Internal.object (Text
"data" Text -> [BitcoinTransaction] -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSourceTransactions' -> [BitcoinTransaction]
paymentSourceTransactions'Data PaymentSourceTransactions'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"has_more" Text -> Bool -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSourceTransactions' -> Bool
paymentSourceTransactions'HasMore PaymentSourceTransactions'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"url" Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSourceTransactions' -> Text
paymentSourceTransactions'Url PaymentSourceTransactions'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"object" Text -> Value -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Text -> Value
Data.Aeson.Types.Internal.String Text
"list" Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: PaymentSourceTransactions' -> Encoding
toEncoding PaymentSourceTransactions'
obj = Series -> Encoding
Data.Aeson.Encoding.Internal.pairs ((Text
"data" Text -> [BitcoinTransaction] -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSourceTransactions' -> [BitcoinTransaction]
paymentSourceTransactions'Data PaymentSourceTransactions'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"has_more" Text -> Bool -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSourceTransactions' -> Bool
paymentSourceTransactions'HasMore PaymentSourceTransactions'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"url" Text -> Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentSourceTransactions' -> Text
paymentSourceTransactions'Url PaymentSourceTransactions'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> (Text
"object" Text -> Value -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Text -> Value
Data.Aeson.Types.Internal.String Text
"list"))))

instance Data.Aeson.Types.FromJSON.FromJSON PaymentSourceTransactions' where
  parseJSON :: Value -> Parser PaymentSourceTransactions'
parseJSON = String
-> (Object -> Parser PaymentSourceTransactions')
-> Value
-> Parser PaymentSourceTransactions'
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.Aeson.Types.FromJSON.withObject String
"PaymentSourceTransactions'" (\Object
obj -> ((([BitcoinTransaction]
 -> Bool -> Text -> PaymentSourceTransactions')
-> Parser
     ([BitcoinTransaction]
      -> Bool -> Text -> PaymentSourceTransactions')
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure [BitcoinTransaction] -> Bool -> Text -> PaymentSourceTransactions'
PaymentSourceTransactions' Parser
  ([BitcoinTransaction]
   -> Bool -> Text -> PaymentSourceTransactions')
-> Parser [BitcoinTransaction]
-> Parser (Bool -> Text -> PaymentSourceTransactions')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser [BitcoinTransaction]
forall a. FromJSON a => Object -> Text -> Parser a
Data.Aeson.Types.FromJSON..: Text
"data")) Parser (Bool -> Text -> PaymentSourceTransactions')
-> Parser Bool -> Parser (Text -> PaymentSourceTransactions')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser Bool
forall a. FromJSON a => Object -> Text -> Parser a
Data.Aeson.Types.FromJSON..: Text
"has_more")) Parser (Text -> PaymentSourceTransactions')
-> Parser Text -> Parser PaymentSourceTransactions'
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
Data.Aeson.Types.FromJSON..: Text
"url"))

-- | Create a new 'PaymentSourceTransactions'' with all required fields.
mkPaymentSourceTransactions' ::
  -- | 'paymentSourceTransactions'Data'
  [BitcoinTransaction] ->
  -- | 'paymentSourceTransactions'HasMore'
  GHC.Types.Bool ->
  -- | 'paymentSourceTransactions'Url'
  Data.Text.Internal.Text ->
  PaymentSourceTransactions'
mkPaymentSourceTransactions' :: [BitcoinTransaction] -> Bool -> Text -> PaymentSourceTransactions'
mkPaymentSourceTransactions' [BitcoinTransaction]
paymentSourceTransactions'Data Bool
paymentSourceTransactions'HasMore Text
paymentSourceTransactions'Url =
  PaymentSourceTransactions' :: [BitcoinTransaction] -> Bool -> Text -> PaymentSourceTransactions'
PaymentSourceTransactions'
    { paymentSourceTransactions'Data :: [BitcoinTransaction]
paymentSourceTransactions'Data = [BitcoinTransaction]
paymentSourceTransactions'Data,
      paymentSourceTransactions'HasMore :: Bool
paymentSourceTransactions'HasMore = Bool
paymentSourceTransactions'HasMore,
      paymentSourceTransactions'Url :: Text
paymentSourceTransactions'Url = Text
paymentSourceTransactions'Url
    }

-- | Defines the enum schema located at @components.schemas.payment_source.anyOf.properties.type@ in the specification.
--
-- The Stripe account type. Can be \`standard\`, \`express\`, or \`custom\`.
data PaymentSourceType'
  = -- | This case is used if the value encountered during decoding does not match any of the provided cases in the specification.
    PaymentSourceType'Other Data.Aeson.Types.Internal.Value
  | -- | This constructor can be used to send values to the server which are not present in the specification yet.
    PaymentSourceType'Typed Data.Text.Internal.Text
  | -- | Represents the JSON value @"custom"@
    PaymentSourceType'EnumCustom
  | -- | Represents the JSON value @"express"@
    PaymentSourceType'EnumExpress
  | -- | Represents the JSON value @"standard"@
    PaymentSourceType'EnumStandard
  deriving (Int -> PaymentSourceType' -> ShowS
[PaymentSourceType'] -> ShowS
PaymentSourceType' -> String
(Int -> PaymentSourceType' -> ShowS)
-> (PaymentSourceType' -> String)
-> ([PaymentSourceType'] -> ShowS)
-> Show PaymentSourceType'
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PaymentSourceType'] -> ShowS
$cshowList :: [PaymentSourceType'] -> ShowS
show :: PaymentSourceType' -> String
$cshow :: PaymentSourceType' -> String
showsPrec :: Int -> PaymentSourceType' -> ShowS
$cshowsPrec :: Int -> PaymentSourceType' -> ShowS
GHC.Show.Show, PaymentSourceType' -> PaymentSourceType' -> Bool
(PaymentSourceType' -> PaymentSourceType' -> Bool)
-> (PaymentSourceType' -> PaymentSourceType' -> Bool)
-> Eq PaymentSourceType'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PaymentSourceType' -> PaymentSourceType' -> Bool
$c/= :: PaymentSourceType' -> PaymentSourceType' -> Bool
== :: PaymentSourceType' -> PaymentSourceType' -> Bool
$c== :: PaymentSourceType' -> PaymentSourceType' -> Bool
GHC.Classes.Eq)

instance Data.Aeson.Types.ToJSON.ToJSON PaymentSourceType' where
  toJSON :: PaymentSourceType' -> Value
toJSON (PaymentSourceType'Other Value
val) = Value
val
  toJSON (PaymentSourceType'Typed Text
val) = Text -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON Text
val
  toJSON (PaymentSourceType'
PaymentSourceType'EnumCustom) = Value
"custom"
  toJSON (PaymentSourceType'
PaymentSourceType'EnumExpress) = Value
"express"
  toJSON (PaymentSourceType'
PaymentSourceType'EnumStandard) = Value
"standard"

instance Data.Aeson.Types.FromJSON.FromJSON PaymentSourceType' where
  parseJSON :: Value -> Parser PaymentSourceType'
parseJSON Value
val =
    PaymentSourceType' -> Parser PaymentSourceType'
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure
      ( if
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"custom" -> PaymentSourceType'
PaymentSourceType'EnumCustom
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"express" -> PaymentSourceType'
PaymentSourceType'EnumExpress
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"standard" -> PaymentSourceType'
PaymentSourceType'EnumStandard
            | Bool
GHC.Base.otherwise -> Value -> PaymentSourceType'
PaymentSourceType'Other Value
val
      )