{-# 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 Customer
module StripeAPI.Types.Customer 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.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.Coupon
import {-# SOURCE #-} StripeAPI.Types.CustomerTax
import {-# SOURCE #-} StripeAPI.Types.DeletedCustomer
import {-# SOURCE #-} StripeAPI.Types.Discount
import {-# SOURCE #-} StripeAPI.Types.InvoiceSettingCustomerSetting
import {-# SOURCE #-} StripeAPI.Types.PromotionCode
import {-# SOURCE #-} StripeAPI.Types.Recipient
import {-# SOURCE #-} StripeAPI.Types.Shipping
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 {-# SOURCE #-} StripeAPI.Types.Subscription
import {-# SOURCE #-} StripeAPI.Types.TaxId
import qualified Prelude as GHC.Integer.Type
import qualified Prelude as GHC.Maybe

-- | Defines the object schema located at @components.schemas.customer@ in the specification.
--
-- \`Customer\` objects allow you to perform recurring charges, and to track
-- multiple charges, that are associated with the same customer. The API allows
-- you to create, delete, and update your customers. You can retrieve individual
-- customers as well as a list of all your customers.
--
-- Related guide: [Save a card during payment](https:\/\/stripe.com\/docs\/payments\/save-during-payment).
data Customer = Customer
  { -- | address: The customer\'s address.
    Customer -> Maybe CustomerAddress'
customerAddress :: (GHC.Maybe.Maybe CustomerAddress'),
    -- | balance: Current balance, if any, being stored on the customer. If negative, the customer has credit to apply to their next invoice. If positive, the customer has an amount owed that will be added to their next invoice. The balance does not refer to any unpaid invoices; it solely takes into account amounts that have yet to be successfully applied to any invoice. This balance is only taken into account as invoices are finalized.
    Customer -> Maybe Int
customerBalance :: (GHC.Maybe.Maybe GHC.Types.Int),
    -- | created: Time at which the object was created. Measured in seconds since the Unix epoch.
    Customer -> Int
customerCreated :: GHC.Types.Int,
    -- | currency: Three-letter [ISO code for the currency](https:\/\/stripe.com\/docs\/currencies) the customer can be charged in for recurring billing purposes.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    Customer -> Maybe Text
customerCurrency :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | default_source: ID of the default payment source for the customer.
    --
    -- If you are using payment methods created via the PaymentMethods API, see the [invoice_settings.default_payment_method](https:\/\/stripe.com\/docs\/api\/customers\/object\#customer_object-invoice_settings-default_payment_method) field instead.
    Customer -> Maybe CustomerDefaultSource'Variants
customerDefaultSource :: (GHC.Maybe.Maybe CustomerDefaultSource'Variants),
    -- | delinquent: When the customer\'s latest invoice is billed by charging automatically, \`delinquent\` is \`true\` if the invoice\'s latest charge failed. When the customer\'s latest invoice is billed by sending an invoice, \`delinquent\` is \`true\` if the invoice isn\'t paid by its due date.
    --
    -- If an invoice is marked uncollectible by [dunning](https:\/\/stripe.com\/docs\/billing\/automatic-collection), \`delinquent\` doesn\'t get reset to \`false\`.
    Customer -> Maybe Bool
customerDelinquent :: (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
    Customer -> Maybe Text
customerDescription :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | discount: Describes the current discount active on the customer, if there is one.
    Customer -> Maybe CustomerDiscount'
customerDiscount :: (GHC.Maybe.Maybe CustomerDiscount'),
    -- | email: The customer\'s email address.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    Customer -> Maybe Text
customerEmail :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | id: Unique identifier for the object.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    Customer -> Text
customerId :: Data.Text.Internal.Text,
    -- | invoice_prefix: The prefix for the customer used to generate unique invoice numbers.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    Customer -> Maybe Text
customerInvoicePrefix :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | invoice_settings:
    Customer -> Maybe InvoiceSettingCustomerSetting
customerInvoiceSettings :: (GHC.Maybe.Maybe InvoiceSettingCustomerSetting),
    -- | livemode: Has the value \`true\` if the object exists in live mode or the value \`false\` if the object exists in test mode.
    Customer -> Bool
customerLivemode :: 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.
    Customer -> Maybe Object
customerMetadata :: (GHC.Maybe.Maybe Data.Aeson.Types.Internal.Object),
    -- | name: The customer\'s full name or business name.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    Customer -> Maybe Text
customerName :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | next_invoice_sequence: The suffix of the customer\'s next invoice number, e.g., 0001.
    Customer -> Maybe Int
customerNextInvoiceSequence :: (GHC.Maybe.Maybe GHC.Types.Int),
    -- | phone: The customer\'s phone number.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    Customer -> Maybe Text
customerPhone :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | preferred_locales: The customer\'s preferred locales (languages), ordered by preference.
    Customer -> Maybe [Text]
customerPreferredLocales :: (GHC.Maybe.Maybe ([Data.Text.Internal.Text])),
    -- | shipping: Mailing and shipping address for the customer. Appears on invoices emailed to this customer.
    Customer -> Maybe CustomerShipping'
customerShipping :: (GHC.Maybe.Maybe CustomerShipping'),
    -- | sources: The customer\'s payment sources, if any.
    Customer -> Maybe CustomerSources'
customerSources :: (GHC.Maybe.Maybe CustomerSources'),
    -- | subscriptions: The customer\'s current subscriptions, if any.
    Customer -> Maybe CustomerSubscriptions'
customerSubscriptions :: (GHC.Maybe.Maybe CustomerSubscriptions'),
    -- | tax:
    Customer -> Maybe CustomerTax
customerTax :: (GHC.Maybe.Maybe CustomerTax),
    -- | tax_exempt: Describes the customer\'s tax exemption status. One of \`none\`, \`exempt\`, or \`reverse\`. When set to \`reverse\`, invoice and receipt PDFs include the text **\"Reverse charge\"**.
    Customer -> Maybe CustomerTaxExempt'
customerTaxExempt :: (GHC.Maybe.Maybe CustomerTaxExempt'),
    -- | tax_ids: The customer\'s tax IDs.
    Customer -> Maybe CustomerTaxIds'
customerTaxIds :: (GHC.Maybe.Maybe CustomerTaxIds')
  }
  deriving
    ( Int -> Customer -> ShowS
[Customer] -> ShowS
Customer -> String
(Int -> Customer -> ShowS)
-> (Customer -> String) -> ([Customer] -> ShowS) -> Show Customer
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [Customer] -> ShowS
$cshowList :: [Customer] -> ShowS
show :: Customer -> String
$cshow :: Customer -> String
showsPrec :: Int -> Customer -> ShowS
$cshowsPrec :: Int -> Customer -> ShowS
GHC.Show.Show,
      Customer -> Customer -> Bool
(Customer -> Customer -> Bool)
-> (Customer -> Customer -> Bool) -> Eq Customer
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: Customer -> Customer -> Bool
$c/= :: Customer -> Customer -> Bool
== :: Customer -> Customer -> Bool
$c== :: Customer -> Customer -> Bool
GHC.Classes.Eq
    )

instance Data.Aeson.Types.ToJSON.ToJSON Customer where
  toJSON :: Customer -> Value
toJSON Customer
obj = [Pair] -> Value
Data.Aeson.Types.Internal.object (Text
"address" Text -> Maybe CustomerAddress' -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Customer -> Maybe CustomerAddress'
customerAddress Customer
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"balance" Text -> Maybe Int -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Customer -> Maybe Int
customerBalance Customer
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"created" Text -> Int -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Customer -> Int
customerCreated Customer
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..= Customer -> Maybe Text
customerCurrency Customer
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"default_source" Text -> Maybe CustomerDefaultSource'Variants -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Customer -> Maybe CustomerDefaultSource'Variants
customerDefaultSource Customer
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"delinquent" Text -> Maybe Bool -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Customer -> Maybe Bool
customerDelinquent Customer
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..= Customer -> Maybe Text
customerDescription Customer
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"discount" Text -> Maybe CustomerDiscount' -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Customer -> Maybe CustomerDiscount'
customerDiscount Customer
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..= Customer -> Maybe Text
customerEmail Customer
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"id" Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Customer -> Text
customerId Customer
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"invoice_prefix" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Customer -> Maybe Text
customerInvoicePrefix Customer
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"invoice_settings" Text -> Maybe InvoiceSettingCustomerSetting -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Customer -> Maybe InvoiceSettingCustomerSetting
customerInvoiceSettings Customer
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"livemode" Text -> Bool -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Customer -> Bool
customerLivemode Customer
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..= Customer -> Maybe Object
customerMetadata Customer
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..= Customer -> Maybe Text
customerName Customer
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"next_invoice_sequence" Text -> Maybe Int -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Customer -> Maybe Int
customerNextInvoiceSequence Customer
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..= Customer -> Maybe Text
customerPhone Customer
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"preferred_locales" Text -> Maybe [Text] -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Customer -> Maybe [Text]
customerPreferredLocales Customer
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"shipping" Text -> Maybe CustomerShipping' -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Customer -> Maybe CustomerShipping'
customerShipping Customer
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"sources" Text -> Maybe CustomerSources' -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Customer -> Maybe CustomerSources'
customerSources Customer
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"subscriptions" Text -> Maybe CustomerSubscriptions' -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Customer -> Maybe CustomerSubscriptions'
customerSubscriptions Customer
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"tax" Text -> Maybe CustomerTax -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Customer -> Maybe CustomerTax
customerTax Customer
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"tax_exempt" Text -> Maybe CustomerTaxExempt' -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Customer -> Maybe CustomerTaxExempt'
customerTaxExempt Customer
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"tax_ids" Text -> Maybe CustomerTaxIds' -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Customer -> Maybe CustomerTaxIds'
customerTaxIds Customer
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
"customer" Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: Customer -> Encoding
toEncoding Customer
obj = Series -> Encoding
Data.Aeson.Encoding.Internal.pairs ((Text
"address" Text -> Maybe CustomerAddress' -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Customer -> Maybe CustomerAddress'
customerAddress Customer
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"balance" Text -> Maybe Int -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Customer -> Maybe Int
customerBalance Customer
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"created" Text -> Int -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Customer -> Int
customerCreated Customer
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..= Customer -> Maybe Text
customerCurrency Customer
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"default_source" Text -> Maybe CustomerDefaultSource'Variants -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Customer -> Maybe CustomerDefaultSource'Variants
customerDefaultSource Customer
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"delinquent" Text -> Maybe Bool -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Customer -> Maybe Bool
customerDelinquent Customer
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..= Customer -> Maybe Text
customerDescription Customer
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"discount" Text -> Maybe CustomerDiscount' -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Customer -> Maybe CustomerDiscount'
customerDiscount Customer
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..= Customer -> Maybe Text
customerEmail Customer
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"id" Text -> Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Customer -> Text
customerId Customer
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"invoice_prefix" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Customer -> Maybe Text
customerInvoicePrefix Customer
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"invoice_settings" Text -> Maybe InvoiceSettingCustomerSetting -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Customer -> Maybe InvoiceSettingCustomerSetting
customerInvoiceSettings Customer
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"livemode" Text -> Bool -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Customer -> Bool
customerLivemode Customer
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..= Customer -> Maybe Object
customerMetadata Customer
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..= Customer -> Maybe Text
customerName Customer
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"next_invoice_sequence" Text -> Maybe Int -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Customer -> Maybe Int
customerNextInvoiceSequence Customer
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..= Customer -> Maybe Text
customerPhone Customer
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"preferred_locales" Text -> Maybe [Text] -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Customer -> Maybe [Text]
customerPreferredLocales Customer
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"shipping" Text -> Maybe CustomerShipping' -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Customer -> Maybe CustomerShipping'
customerShipping Customer
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"sources" Text -> Maybe CustomerSources' -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Customer -> Maybe CustomerSources'
customerSources Customer
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"subscriptions" Text -> Maybe CustomerSubscriptions' -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Customer -> Maybe CustomerSubscriptions'
customerSubscriptions Customer
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"tax" Text -> Maybe CustomerTax -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Customer -> Maybe CustomerTax
customerTax Customer
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"tax_exempt" Text -> Maybe CustomerTaxExempt' -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Customer -> Maybe CustomerTaxExempt'
customerTaxExempt Customer
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"tax_ids" Text -> Maybe CustomerTaxIds' -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Customer -> Maybe CustomerTaxIds'
customerTaxIds Customer
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
"customer")))))))))))))))))))))))))

instance Data.Aeson.Types.FromJSON.FromJSON Customer where
  parseJSON :: Value -> Parser Customer
parseJSON = String -> (Object -> Parser Customer) -> Value -> Parser Customer
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.Aeson.Types.FromJSON.withObject String
"Customer" (\Object
obj -> ((((((((((((((((((((((((Maybe CustomerAddress'
 -> Maybe Int
 -> Int
 -> Maybe Text
 -> Maybe CustomerDefaultSource'Variants
 -> Maybe Bool
 -> Maybe Text
 -> Maybe CustomerDiscount'
 -> Maybe Text
 -> Text
 -> Maybe Text
 -> Maybe InvoiceSettingCustomerSetting
 -> Bool
 -> Maybe Object
 -> Maybe Text
 -> Maybe Int
 -> Maybe Text
 -> Maybe [Text]
 -> Maybe CustomerShipping'
 -> Maybe CustomerSources'
 -> Maybe CustomerSubscriptions'
 -> Maybe CustomerTax
 -> Maybe CustomerTaxExempt'
 -> Maybe CustomerTaxIds'
 -> Customer)
-> Parser
     (Maybe CustomerAddress'
      -> Maybe Int
      -> Int
      -> Maybe Text
      -> Maybe CustomerDefaultSource'Variants
      -> Maybe Bool
      -> Maybe Text
      -> Maybe CustomerDiscount'
      -> Maybe Text
      -> Text
      -> Maybe Text
      -> Maybe InvoiceSettingCustomerSetting
      -> Bool
      -> Maybe Object
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe CustomerShipping'
      -> Maybe CustomerSources'
      -> Maybe CustomerSubscriptions'
      -> Maybe CustomerTax
      -> Maybe CustomerTaxExempt'
      -> Maybe CustomerTaxIds'
      -> Customer)
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure Maybe CustomerAddress'
-> Maybe Int
-> Int
-> Maybe Text
-> Maybe CustomerDefaultSource'Variants
-> Maybe Bool
-> Maybe Text
-> Maybe CustomerDiscount'
-> Maybe Text
-> Text
-> Maybe Text
-> Maybe InvoiceSettingCustomerSetting
-> Bool
-> Maybe Object
-> Maybe Text
-> Maybe Int
-> Maybe Text
-> Maybe [Text]
-> Maybe CustomerShipping'
-> Maybe CustomerSources'
-> Maybe CustomerSubscriptions'
-> Maybe CustomerTax
-> Maybe CustomerTaxExempt'
-> Maybe CustomerTaxIds'
-> Customer
Customer Parser
  (Maybe CustomerAddress'
   -> Maybe Int
   -> Int
   -> Maybe Text
   -> Maybe CustomerDefaultSource'Variants
   -> Maybe Bool
   -> Maybe Text
   -> Maybe CustomerDiscount'
   -> Maybe Text
   -> Text
   -> Maybe Text
   -> Maybe InvoiceSettingCustomerSetting
   -> Bool
   -> Maybe Object
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe CustomerShipping'
   -> Maybe CustomerSources'
   -> Maybe CustomerSubscriptions'
   -> Maybe CustomerTax
   -> Maybe CustomerTaxExempt'
   -> Maybe CustomerTaxIds'
   -> Customer)
-> Parser (Maybe CustomerAddress')
-> Parser
     (Maybe Int
      -> Int
      -> Maybe Text
      -> Maybe CustomerDefaultSource'Variants
      -> Maybe Bool
      -> Maybe Text
      -> Maybe CustomerDiscount'
      -> Maybe Text
      -> Text
      -> Maybe Text
      -> Maybe InvoiceSettingCustomerSetting
      -> Bool
      -> Maybe Object
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe CustomerShipping'
      -> Maybe CustomerSources'
      -> Maybe CustomerSubscriptions'
      -> Maybe CustomerTax
      -> Maybe CustomerTaxExempt'
      -> Maybe CustomerTaxIds'
      -> Customer)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe CustomerAddress')
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"address")) Parser
  (Maybe Int
   -> Int
   -> Maybe Text
   -> Maybe CustomerDefaultSource'Variants
   -> Maybe Bool
   -> Maybe Text
   -> Maybe CustomerDiscount'
   -> Maybe Text
   -> Text
   -> Maybe Text
   -> Maybe InvoiceSettingCustomerSetting
   -> Bool
   -> Maybe Object
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe CustomerShipping'
   -> Maybe CustomerSources'
   -> Maybe CustomerSubscriptions'
   -> Maybe CustomerTax
   -> Maybe CustomerTaxExempt'
   -> Maybe CustomerTaxIds'
   -> Customer)
-> Parser (Maybe Int)
-> Parser
     (Int
      -> Maybe Text
      -> Maybe CustomerDefaultSource'Variants
      -> Maybe Bool
      -> Maybe Text
      -> Maybe CustomerDiscount'
      -> Maybe Text
      -> Text
      -> Maybe Text
      -> Maybe InvoiceSettingCustomerSetting
      -> Bool
      -> Maybe Object
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe CustomerShipping'
      -> Maybe CustomerSources'
      -> Maybe CustomerSubscriptions'
      -> Maybe CustomerTax
      -> Maybe CustomerTaxExempt'
      -> Maybe CustomerTaxIds'
      -> Customer)
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
"balance")) Parser
  (Int
   -> Maybe Text
   -> Maybe CustomerDefaultSource'Variants
   -> Maybe Bool
   -> Maybe Text
   -> Maybe CustomerDiscount'
   -> Maybe Text
   -> Text
   -> Maybe Text
   -> Maybe InvoiceSettingCustomerSetting
   -> Bool
   -> Maybe Object
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe CustomerShipping'
   -> Maybe CustomerSources'
   -> Maybe CustomerSubscriptions'
   -> Maybe CustomerTax
   -> Maybe CustomerTaxExempt'
   -> Maybe CustomerTaxIds'
   -> Customer)
-> Parser Int
-> Parser
     (Maybe Text
      -> Maybe CustomerDefaultSource'Variants
      -> Maybe Bool
      -> Maybe Text
      -> Maybe CustomerDiscount'
      -> Maybe Text
      -> Text
      -> Maybe Text
      -> Maybe InvoiceSettingCustomerSetting
      -> Bool
      -> Maybe Object
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe CustomerShipping'
      -> Maybe CustomerSources'
      -> Maybe CustomerSubscriptions'
      -> Maybe CustomerTax
      -> Maybe CustomerTaxExempt'
      -> Maybe CustomerTaxIds'
      -> Customer)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser Int
forall a. FromJSON a => Object -> Text -> Parser a
Data.Aeson.Types.FromJSON..: Text
"created")) Parser
  (Maybe Text
   -> Maybe CustomerDefaultSource'Variants
   -> Maybe Bool
   -> Maybe Text
   -> Maybe CustomerDiscount'
   -> Maybe Text
   -> Text
   -> Maybe Text
   -> Maybe InvoiceSettingCustomerSetting
   -> Bool
   -> Maybe Object
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe CustomerShipping'
   -> Maybe CustomerSources'
   -> Maybe CustomerSubscriptions'
   -> Maybe CustomerTax
   -> Maybe CustomerTaxExempt'
   -> Maybe CustomerTaxIds'
   -> Customer)
-> Parser (Maybe Text)
-> Parser
     (Maybe CustomerDefaultSource'Variants
      -> Maybe Bool
      -> Maybe Text
      -> Maybe CustomerDiscount'
      -> Maybe Text
      -> Text
      -> Maybe Text
      -> Maybe InvoiceSettingCustomerSetting
      -> Bool
      -> Maybe Object
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe CustomerShipping'
      -> Maybe CustomerSources'
      -> Maybe CustomerSubscriptions'
      -> Maybe CustomerTax
      -> Maybe CustomerTaxExempt'
      -> Maybe CustomerTaxIds'
      -> Customer)
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 CustomerDefaultSource'Variants
   -> Maybe Bool
   -> Maybe Text
   -> Maybe CustomerDiscount'
   -> Maybe Text
   -> Text
   -> Maybe Text
   -> Maybe InvoiceSettingCustomerSetting
   -> Bool
   -> Maybe Object
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe CustomerShipping'
   -> Maybe CustomerSources'
   -> Maybe CustomerSubscriptions'
   -> Maybe CustomerTax
   -> Maybe CustomerTaxExempt'
   -> Maybe CustomerTaxIds'
   -> Customer)
-> Parser (Maybe CustomerDefaultSource'Variants)
-> Parser
     (Maybe Bool
      -> Maybe Text
      -> Maybe CustomerDiscount'
      -> Maybe Text
      -> Text
      -> Maybe Text
      -> Maybe InvoiceSettingCustomerSetting
      -> Bool
      -> Maybe Object
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe CustomerShipping'
      -> Maybe CustomerSources'
      -> Maybe CustomerSubscriptions'
      -> Maybe CustomerTax
      -> Maybe CustomerTaxExempt'
      -> Maybe CustomerTaxIds'
      -> Customer)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe CustomerDefaultSource'Variants)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"default_source")) Parser
  (Maybe Bool
   -> Maybe Text
   -> Maybe CustomerDiscount'
   -> Maybe Text
   -> Text
   -> Maybe Text
   -> Maybe InvoiceSettingCustomerSetting
   -> Bool
   -> Maybe Object
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe CustomerShipping'
   -> Maybe CustomerSources'
   -> Maybe CustomerSubscriptions'
   -> Maybe CustomerTax
   -> Maybe CustomerTaxExempt'
   -> Maybe CustomerTaxIds'
   -> Customer)
-> Parser (Maybe Bool)
-> Parser
     (Maybe Text
      -> Maybe CustomerDiscount'
      -> Maybe Text
      -> Text
      -> Maybe Text
      -> Maybe InvoiceSettingCustomerSetting
      -> Bool
      -> Maybe Object
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe CustomerShipping'
      -> Maybe CustomerSources'
      -> Maybe CustomerSubscriptions'
      -> Maybe CustomerTax
      -> Maybe CustomerTaxExempt'
      -> Maybe CustomerTaxIds'
      -> Customer)
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
"delinquent")) Parser
  (Maybe Text
   -> Maybe CustomerDiscount'
   -> Maybe Text
   -> Text
   -> Maybe Text
   -> Maybe InvoiceSettingCustomerSetting
   -> Bool
   -> Maybe Object
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe CustomerShipping'
   -> Maybe CustomerSources'
   -> Maybe CustomerSubscriptions'
   -> Maybe CustomerTax
   -> Maybe CustomerTaxExempt'
   -> Maybe CustomerTaxIds'
   -> Customer)
-> Parser (Maybe Text)
-> Parser
     (Maybe CustomerDiscount'
      -> Maybe Text
      -> Text
      -> Maybe Text
      -> Maybe InvoiceSettingCustomerSetting
      -> Bool
      -> Maybe Object
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe CustomerShipping'
      -> Maybe CustomerSources'
      -> Maybe CustomerSubscriptions'
      -> Maybe CustomerTax
      -> Maybe CustomerTaxExempt'
      -> Maybe CustomerTaxIds'
      -> Customer)
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 CustomerDiscount'
   -> Maybe Text
   -> Text
   -> Maybe Text
   -> Maybe InvoiceSettingCustomerSetting
   -> Bool
   -> Maybe Object
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe CustomerShipping'
   -> Maybe CustomerSources'
   -> Maybe CustomerSubscriptions'
   -> Maybe CustomerTax
   -> Maybe CustomerTaxExempt'
   -> Maybe CustomerTaxIds'
   -> Customer)
-> Parser (Maybe CustomerDiscount')
-> Parser
     (Maybe Text
      -> Text
      -> Maybe Text
      -> Maybe InvoiceSettingCustomerSetting
      -> Bool
      -> Maybe Object
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe CustomerShipping'
      -> Maybe CustomerSources'
      -> Maybe CustomerSubscriptions'
      -> Maybe CustomerTax
      -> Maybe CustomerTaxExempt'
      -> Maybe CustomerTaxIds'
      -> Customer)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe CustomerDiscount')
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"discount")) Parser
  (Maybe Text
   -> Text
   -> Maybe Text
   -> Maybe InvoiceSettingCustomerSetting
   -> Bool
   -> Maybe Object
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe CustomerShipping'
   -> Maybe CustomerSources'
   -> Maybe CustomerSubscriptions'
   -> Maybe CustomerTax
   -> Maybe CustomerTaxExempt'
   -> Maybe CustomerTaxIds'
   -> Customer)
-> Parser (Maybe Text)
-> Parser
     (Text
      -> Maybe Text
      -> Maybe InvoiceSettingCustomerSetting
      -> Bool
      -> Maybe Object
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe CustomerShipping'
      -> Maybe CustomerSources'
      -> Maybe CustomerSubscriptions'
      -> Maybe CustomerTax
      -> Maybe CustomerTaxExempt'
      -> Maybe CustomerTaxIds'
      -> Customer)
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
  (Text
   -> Maybe Text
   -> Maybe InvoiceSettingCustomerSetting
   -> Bool
   -> Maybe Object
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe CustomerShipping'
   -> Maybe CustomerSources'
   -> Maybe CustomerSubscriptions'
   -> Maybe CustomerTax
   -> Maybe CustomerTaxExempt'
   -> Maybe CustomerTaxIds'
   -> Customer)
-> Parser Text
-> Parser
     (Maybe Text
      -> Maybe InvoiceSettingCustomerSetting
      -> Bool
      -> Maybe Object
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe CustomerShipping'
      -> Maybe CustomerSources'
      -> Maybe CustomerSubscriptions'
      -> Maybe CustomerTax
      -> Maybe CustomerTaxExempt'
      -> Maybe CustomerTaxIds'
      -> Customer)
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
"id")) Parser
  (Maybe Text
   -> Maybe InvoiceSettingCustomerSetting
   -> Bool
   -> Maybe Object
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe CustomerShipping'
   -> Maybe CustomerSources'
   -> Maybe CustomerSubscriptions'
   -> Maybe CustomerTax
   -> Maybe CustomerTaxExempt'
   -> Maybe CustomerTaxIds'
   -> Customer)
-> Parser (Maybe Text)
-> Parser
     (Maybe InvoiceSettingCustomerSetting
      -> Bool
      -> Maybe Object
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe CustomerShipping'
      -> Maybe CustomerSources'
      -> Maybe CustomerSubscriptions'
      -> Maybe CustomerTax
      -> Maybe CustomerTaxExempt'
      -> Maybe CustomerTaxIds'
      -> Customer)
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
"invoice_prefix")) Parser
  (Maybe InvoiceSettingCustomerSetting
   -> Bool
   -> Maybe Object
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe CustomerShipping'
   -> Maybe CustomerSources'
   -> Maybe CustomerSubscriptions'
   -> Maybe CustomerTax
   -> Maybe CustomerTaxExempt'
   -> Maybe CustomerTaxIds'
   -> Customer)
-> Parser (Maybe InvoiceSettingCustomerSetting)
-> Parser
     (Bool
      -> Maybe Object
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe CustomerShipping'
      -> Maybe CustomerSources'
      -> Maybe CustomerSubscriptions'
      -> Maybe CustomerTax
      -> Maybe CustomerTaxExempt'
      -> Maybe CustomerTaxIds'
      -> Customer)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe InvoiceSettingCustomerSetting)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"invoice_settings")) Parser
  (Bool
   -> Maybe Object
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe CustomerShipping'
   -> Maybe CustomerSources'
   -> Maybe CustomerSubscriptions'
   -> Maybe CustomerTax
   -> Maybe CustomerTaxExempt'
   -> Maybe CustomerTaxIds'
   -> Customer)
-> Parser Bool
-> Parser
     (Maybe Object
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe CustomerShipping'
      -> Maybe CustomerSources'
      -> Maybe CustomerSubscriptions'
      -> Maybe CustomerTax
      -> Maybe CustomerTaxExempt'
      -> Maybe CustomerTaxIds'
      -> Customer)
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
"livemode")) Parser
  (Maybe Object
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe CustomerShipping'
   -> Maybe CustomerSources'
   -> Maybe CustomerSubscriptions'
   -> Maybe CustomerTax
   -> Maybe CustomerTaxExempt'
   -> Maybe CustomerTaxIds'
   -> Customer)
-> Parser (Maybe Object)
-> Parser
     (Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe CustomerShipping'
      -> Maybe CustomerSources'
      -> Maybe CustomerSubscriptions'
      -> Maybe CustomerTax
      -> Maybe CustomerTaxExempt'
      -> Maybe CustomerTaxIds'
      -> Customer)
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 Int
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe CustomerShipping'
   -> Maybe CustomerSources'
   -> Maybe CustomerSubscriptions'
   -> Maybe CustomerTax
   -> Maybe CustomerTaxExempt'
   -> Maybe CustomerTaxIds'
   -> Customer)
-> Parser (Maybe Text)
-> Parser
     (Maybe Int
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe CustomerShipping'
      -> Maybe CustomerSources'
      -> Maybe CustomerSubscriptions'
      -> Maybe CustomerTax
      -> Maybe CustomerTaxExempt'
      -> Maybe CustomerTaxIds'
      -> Customer)
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 Int
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe CustomerShipping'
   -> Maybe CustomerSources'
   -> Maybe CustomerSubscriptions'
   -> Maybe CustomerTax
   -> Maybe CustomerTaxExempt'
   -> Maybe CustomerTaxIds'
   -> Customer)
-> Parser (Maybe Int)
-> Parser
     (Maybe Text
      -> Maybe [Text]
      -> Maybe CustomerShipping'
      -> Maybe CustomerSources'
      -> Maybe CustomerSubscriptions'
      -> Maybe CustomerTax
      -> Maybe CustomerTaxExempt'
      -> Maybe CustomerTaxIds'
      -> Customer)
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
"next_invoice_sequence")) Parser
  (Maybe Text
   -> Maybe [Text]
   -> Maybe CustomerShipping'
   -> Maybe CustomerSources'
   -> Maybe CustomerSubscriptions'
   -> Maybe CustomerTax
   -> Maybe CustomerTaxExempt'
   -> Maybe CustomerTaxIds'
   -> Customer)
-> Parser (Maybe Text)
-> Parser
     (Maybe [Text]
      -> Maybe CustomerShipping'
      -> Maybe CustomerSources'
      -> Maybe CustomerSubscriptions'
      -> Maybe CustomerTax
      -> Maybe CustomerTaxExempt'
      -> Maybe CustomerTaxIds'
      -> Customer)
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 [Text]
   -> Maybe CustomerShipping'
   -> Maybe CustomerSources'
   -> Maybe CustomerSubscriptions'
   -> Maybe CustomerTax
   -> Maybe CustomerTaxExempt'
   -> Maybe CustomerTaxIds'
   -> Customer)
-> Parser (Maybe [Text])
-> Parser
     (Maybe CustomerShipping'
      -> Maybe CustomerSources'
      -> Maybe CustomerSubscriptions'
      -> Maybe CustomerTax
      -> Maybe CustomerTaxExempt'
      -> Maybe CustomerTaxIds'
      -> Customer)
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
"preferred_locales")) Parser
  (Maybe CustomerShipping'
   -> Maybe CustomerSources'
   -> Maybe CustomerSubscriptions'
   -> Maybe CustomerTax
   -> Maybe CustomerTaxExempt'
   -> Maybe CustomerTaxIds'
   -> Customer)
-> Parser (Maybe CustomerShipping')
-> Parser
     (Maybe CustomerSources'
      -> Maybe CustomerSubscriptions'
      -> Maybe CustomerTax
      -> Maybe CustomerTaxExempt'
      -> Maybe CustomerTaxIds'
      -> Customer)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe CustomerShipping')
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"shipping")) Parser
  (Maybe CustomerSources'
   -> Maybe CustomerSubscriptions'
   -> Maybe CustomerTax
   -> Maybe CustomerTaxExempt'
   -> Maybe CustomerTaxIds'
   -> Customer)
-> Parser (Maybe CustomerSources')
-> Parser
     (Maybe CustomerSubscriptions'
      -> Maybe CustomerTax
      -> Maybe CustomerTaxExempt'
      -> Maybe CustomerTaxIds'
      -> Customer)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe CustomerSources')
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"sources")) Parser
  (Maybe CustomerSubscriptions'
   -> Maybe CustomerTax
   -> Maybe CustomerTaxExempt'
   -> Maybe CustomerTaxIds'
   -> Customer)
-> Parser (Maybe CustomerSubscriptions')
-> Parser
     (Maybe CustomerTax
      -> Maybe CustomerTaxExempt' -> Maybe CustomerTaxIds' -> Customer)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe CustomerSubscriptions')
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"subscriptions")) Parser
  (Maybe CustomerTax
   -> Maybe CustomerTaxExempt' -> Maybe CustomerTaxIds' -> Customer)
-> Parser (Maybe CustomerTax)
-> Parser
     (Maybe CustomerTaxExempt' -> Maybe CustomerTaxIds' -> Customer)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe CustomerTax)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"tax")) Parser
  (Maybe CustomerTaxExempt' -> Maybe CustomerTaxIds' -> Customer)
-> Parser (Maybe CustomerTaxExempt')
-> Parser (Maybe CustomerTaxIds' -> Customer)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe CustomerTaxExempt')
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"tax_exempt")) Parser (Maybe CustomerTaxIds' -> Customer)
-> Parser (Maybe CustomerTaxIds') -> Parser Customer
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe CustomerTaxIds')
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"tax_ids"))

-- | Create a new 'Customer' with all required fields.
mkCustomer ::
  -- | 'customerCreated'
  GHC.Types.Int ->
  -- | 'customerId'
  Data.Text.Internal.Text ->
  -- | 'customerLivemode'
  GHC.Types.Bool ->
  Customer
mkCustomer :: Int -> Text -> Bool -> Customer
mkCustomer Int
customerCreated Text
customerId Bool
customerLivemode =
  Customer :: Maybe CustomerAddress'
-> Maybe Int
-> Int
-> Maybe Text
-> Maybe CustomerDefaultSource'Variants
-> Maybe Bool
-> Maybe Text
-> Maybe CustomerDiscount'
-> Maybe Text
-> Text
-> Maybe Text
-> Maybe InvoiceSettingCustomerSetting
-> Bool
-> Maybe Object
-> Maybe Text
-> Maybe Int
-> Maybe Text
-> Maybe [Text]
-> Maybe CustomerShipping'
-> Maybe CustomerSources'
-> Maybe CustomerSubscriptions'
-> Maybe CustomerTax
-> Maybe CustomerTaxExempt'
-> Maybe CustomerTaxIds'
-> Customer
Customer
    { customerAddress :: Maybe CustomerAddress'
customerAddress = Maybe CustomerAddress'
forall a. Maybe a
GHC.Maybe.Nothing,
      customerBalance :: Maybe Int
customerBalance = Maybe Int
forall a. Maybe a
GHC.Maybe.Nothing,
      customerCreated :: Int
customerCreated = Int
customerCreated,
      customerCurrency :: Maybe Text
customerCurrency = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      customerDefaultSource :: Maybe CustomerDefaultSource'Variants
customerDefaultSource = Maybe CustomerDefaultSource'Variants
forall a. Maybe a
GHC.Maybe.Nothing,
      customerDelinquent :: Maybe Bool
customerDelinquent = Maybe Bool
forall a. Maybe a
GHC.Maybe.Nothing,
      customerDescription :: Maybe Text
customerDescription = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      customerDiscount :: Maybe CustomerDiscount'
customerDiscount = Maybe CustomerDiscount'
forall a. Maybe a
GHC.Maybe.Nothing,
      customerEmail :: Maybe Text
customerEmail = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      customerId :: Text
customerId = Text
customerId,
      customerInvoicePrefix :: Maybe Text
customerInvoicePrefix = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      customerInvoiceSettings :: Maybe InvoiceSettingCustomerSetting
customerInvoiceSettings = Maybe InvoiceSettingCustomerSetting
forall a. Maybe a
GHC.Maybe.Nothing,
      customerLivemode :: Bool
customerLivemode = Bool
customerLivemode,
      customerMetadata :: Maybe Object
customerMetadata = Maybe Object
forall a. Maybe a
GHC.Maybe.Nothing,
      customerName :: Maybe Text
customerName = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      customerNextInvoiceSequence :: Maybe Int
customerNextInvoiceSequence = Maybe Int
forall a. Maybe a
GHC.Maybe.Nothing,
      customerPhone :: Maybe Text
customerPhone = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      customerPreferredLocales :: Maybe [Text]
customerPreferredLocales = Maybe [Text]
forall a. Maybe a
GHC.Maybe.Nothing,
      customerShipping :: Maybe CustomerShipping'
customerShipping = Maybe CustomerShipping'
forall a. Maybe a
GHC.Maybe.Nothing,
      customerSources :: Maybe CustomerSources'
customerSources = Maybe CustomerSources'
forall a. Maybe a
GHC.Maybe.Nothing,
      customerSubscriptions :: Maybe CustomerSubscriptions'
customerSubscriptions = Maybe CustomerSubscriptions'
forall a. Maybe a
GHC.Maybe.Nothing,
      customerTax :: Maybe CustomerTax
customerTax = Maybe CustomerTax
forall a. Maybe a
GHC.Maybe.Nothing,
      customerTaxExempt :: Maybe CustomerTaxExempt'
customerTaxExempt = Maybe CustomerTaxExempt'
forall a. Maybe a
GHC.Maybe.Nothing,
      customerTaxIds :: Maybe CustomerTaxIds'
customerTaxIds = Maybe CustomerTaxIds'
forall a. Maybe a
GHC.Maybe.Nothing
    }

-- | Defines the object schema located at @components.schemas.customer.properties.address.anyOf@ in the specification.
--
-- The customer\\\'s address.
data CustomerAddress' = CustomerAddress'
  { -- | city: City, district, suburb, town, or village.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    CustomerAddress' -> Maybe Text
customerAddress'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
    CustomerAddress' -> Maybe Text
customerAddress'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
    CustomerAddress' -> Maybe Text
customerAddress'Line1 :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | line2: Address line 2 (e.g., apartment, suite, unit, or building).
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    CustomerAddress' -> Maybe Text
customerAddress'Line2 :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | postal_code: ZIP or postal code.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    CustomerAddress' -> Maybe Text
customerAddress'PostalCode :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | state: State, county, province, or region.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    CustomerAddress' -> Maybe Text
customerAddress'State :: (GHC.Maybe.Maybe Data.Text.Internal.Text)
  }
  deriving
    ( Int -> CustomerAddress' -> ShowS
[CustomerAddress'] -> ShowS
CustomerAddress' -> String
(Int -> CustomerAddress' -> ShowS)
-> (CustomerAddress' -> String)
-> ([CustomerAddress'] -> ShowS)
-> Show CustomerAddress'
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CustomerAddress'] -> ShowS
$cshowList :: [CustomerAddress'] -> ShowS
show :: CustomerAddress' -> String
$cshow :: CustomerAddress' -> String
showsPrec :: Int -> CustomerAddress' -> ShowS
$cshowsPrec :: Int -> CustomerAddress' -> ShowS
GHC.Show.Show,
      CustomerAddress' -> CustomerAddress' -> Bool
(CustomerAddress' -> CustomerAddress' -> Bool)
-> (CustomerAddress' -> CustomerAddress' -> Bool)
-> Eq CustomerAddress'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CustomerAddress' -> CustomerAddress' -> Bool
$c/= :: CustomerAddress' -> CustomerAddress' -> Bool
== :: CustomerAddress' -> CustomerAddress' -> Bool
$c== :: CustomerAddress' -> CustomerAddress' -> Bool
GHC.Classes.Eq
    )

instance Data.Aeson.Types.ToJSON.ToJSON CustomerAddress' where
  toJSON :: CustomerAddress' -> Value
toJSON CustomerAddress'
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..= CustomerAddress' -> Maybe Text
customerAddress'City CustomerAddress'
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..= CustomerAddress' -> Maybe Text
customerAddress'Country CustomerAddress'
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..= CustomerAddress' -> Maybe Text
customerAddress'Line1 CustomerAddress'
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..= CustomerAddress' -> Maybe Text
customerAddress'Line2 CustomerAddress'
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..= CustomerAddress' -> Maybe Text
customerAddress'PostalCode CustomerAddress'
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..= CustomerAddress' -> Maybe Text
customerAddress'State CustomerAddress'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: CustomerAddress' -> Encoding
toEncoding CustomerAddress'
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..= CustomerAddress' -> Maybe Text
customerAddress'City CustomerAddress'
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..= CustomerAddress' -> Maybe Text
customerAddress'Country CustomerAddress'
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..= CustomerAddress' -> Maybe Text
customerAddress'Line1 CustomerAddress'
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..= CustomerAddress' -> Maybe Text
customerAddress'Line2 CustomerAddress'
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..= CustomerAddress' -> Maybe Text
customerAddress'PostalCode CustomerAddress'
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..= CustomerAddress' -> Maybe Text
customerAddress'State CustomerAddress'
obj))))))

instance Data.Aeson.Types.FromJSON.FromJSON CustomerAddress' where
  parseJSON :: Value -> Parser CustomerAddress'
parseJSON = String
-> (Object -> Parser CustomerAddress')
-> Value
-> Parser CustomerAddress'
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.Aeson.Types.FromJSON.withObject String
"CustomerAddress'" (\Object
obj -> ((((((Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> CustomerAddress')
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> CustomerAddress')
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> CustomerAddress'
CustomerAddress' Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> CustomerAddress')
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> CustomerAddress')
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
   -> CustomerAddress')
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Text -> Maybe Text -> Maybe Text -> CustomerAddress')
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 -> CustomerAddress')
-> Parser (Maybe Text)
-> Parser
     (Maybe Text -> Maybe Text -> Maybe Text -> CustomerAddress')
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 -> CustomerAddress')
-> Parser (Maybe Text)
-> Parser (Maybe Text -> Maybe Text -> CustomerAddress')
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 -> CustomerAddress')
-> Parser (Maybe Text) -> Parser (Maybe Text -> CustomerAddress')
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 -> CustomerAddress')
-> Parser (Maybe Text) -> Parser CustomerAddress'
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 'CustomerAddress'' with all required fields.
mkCustomerAddress' :: CustomerAddress'
mkCustomerAddress' :: CustomerAddress'
mkCustomerAddress' =
  CustomerAddress' :: Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> CustomerAddress'
CustomerAddress'
    { customerAddress'City :: Maybe Text
customerAddress'City = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      customerAddress'Country :: Maybe Text
customerAddress'Country = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      customerAddress'Line1 :: Maybe Text
customerAddress'Line1 = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      customerAddress'Line2 :: Maybe Text
customerAddress'Line2 = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      customerAddress'PostalCode :: Maybe Text
customerAddress'PostalCode = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      customerAddress'State :: Maybe Text
customerAddress'State = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing
    }

-- | Defines the oneOf schema located at @components.schemas.customer.properties.default_source.anyOf@ in the specification.
--
-- ID of the default payment source for the customer.
--
-- If you are using payment methods created via the PaymentMethods API, see the [invoice_settings.default_payment_method](https:\/\/stripe.com\/docs\/api\/customers\/object\#customer_object-invoice_settings-default_payment_method) field instead.
data CustomerDefaultSource'Variants
  = CustomerDefaultSource'Text Data.Text.Internal.Text
  | CustomerDefaultSource'AlipayAccount AlipayAccount
  | CustomerDefaultSource'BankAccount BankAccount
  | CustomerDefaultSource'BitcoinReceiver BitcoinReceiver
  | CustomerDefaultSource'Card Card
  | CustomerDefaultSource'Source Source
  deriving (Int -> CustomerDefaultSource'Variants -> ShowS
[CustomerDefaultSource'Variants] -> ShowS
CustomerDefaultSource'Variants -> String
(Int -> CustomerDefaultSource'Variants -> ShowS)
-> (CustomerDefaultSource'Variants -> String)
-> ([CustomerDefaultSource'Variants] -> ShowS)
-> Show CustomerDefaultSource'Variants
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CustomerDefaultSource'Variants] -> ShowS
$cshowList :: [CustomerDefaultSource'Variants] -> ShowS
show :: CustomerDefaultSource'Variants -> String
$cshow :: CustomerDefaultSource'Variants -> String
showsPrec :: Int -> CustomerDefaultSource'Variants -> ShowS
$cshowsPrec :: Int -> CustomerDefaultSource'Variants -> ShowS
GHC.Show.Show, CustomerDefaultSource'Variants
-> CustomerDefaultSource'Variants -> Bool
(CustomerDefaultSource'Variants
 -> CustomerDefaultSource'Variants -> Bool)
-> (CustomerDefaultSource'Variants
    -> CustomerDefaultSource'Variants -> Bool)
-> Eq CustomerDefaultSource'Variants
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CustomerDefaultSource'Variants
-> CustomerDefaultSource'Variants -> Bool
$c/= :: CustomerDefaultSource'Variants
-> CustomerDefaultSource'Variants -> Bool
== :: CustomerDefaultSource'Variants
-> CustomerDefaultSource'Variants -> Bool
$c== :: CustomerDefaultSource'Variants
-> CustomerDefaultSource'Variants -> Bool
GHC.Classes.Eq)

instance Data.Aeson.Types.ToJSON.ToJSON CustomerDefaultSource'Variants where
  toJSON :: CustomerDefaultSource'Variants -> Value
toJSON (CustomerDefaultSource'Text Text
a) = Text -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON Text
a
  toJSON (CustomerDefaultSource'AlipayAccount AlipayAccount
a) = AlipayAccount -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON AlipayAccount
a
  toJSON (CustomerDefaultSource'BankAccount BankAccount
a) = BankAccount -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON BankAccount
a
  toJSON (CustomerDefaultSource'BitcoinReceiver BitcoinReceiver
a) = BitcoinReceiver -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON BitcoinReceiver
a
  toJSON (CustomerDefaultSource'Card Card
a) = Card -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON Card
a
  toJSON (CustomerDefaultSource'Source Source
a) = Source -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON Source
a

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

-- | Defines the object schema located at @components.schemas.customer.properties.discount.anyOf@ in the specification.
--
-- Describes the current discount active on the customer, if there is one.
data CustomerDiscount' = CustomerDiscount'
  { -- | checkout_session: The Checkout session that this coupon is applied to, if it is applied to a particular session in payment mode. Will not be present for subscription mode.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    CustomerDiscount' -> Maybe Text
customerDiscount'CheckoutSession :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | coupon: A coupon contains information about a percent-off or amount-off discount you
    -- might want to apply to a customer. Coupons may be applied to [invoices](https:\/\/stripe.com\/docs\/api\#invoices) or
    -- [orders](https:\/\/stripe.com\/docs\/api\#create_order-coupon). Coupons do not work with conventional one-off [charges](https:\/\/stripe.com\/docs\/api\#create_charge).
    CustomerDiscount' -> Maybe Coupon
customerDiscount'Coupon :: (GHC.Maybe.Maybe Coupon),
    -- | customer: The ID of the customer associated with this discount.
    CustomerDiscount' -> Maybe CustomerDiscount'Customer'Variants
customerDiscount'Customer :: (GHC.Maybe.Maybe CustomerDiscount'Customer'Variants),
    -- | end: If the coupon has a duration of \`repeating\`, the date that this discount will end. If the coupon has a duration of \`once\` or \`forever\`, this attribute will be null.
    CustomerDiscount' -> Maybe Int
customerDiscount'End :: (GHC.Maybe.Maybe GHC.Types.Int),
    -- | id: The ID of the discount object. Discounts cannot be fetched by ID. Use \`expand[]=discounts\` in API calls to expand discount IDs in an array.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    CustomerDiscount' -> Maybe Text
customerDiscount'Id :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | invoice: The invoice that the discount\'s coupon was applied to, if it was applied directly to a particular invoice.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    CustomerDiscount' -> Maybe Text
customerDiscount'Invoice :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | invoice_item: The invoice item \`id\` (or invoice line item \`id\` for invoice line items of type=\'subscription\') that the discount\'s coupon was applied to, if it was applied directly to a particular invoice item or invoice line item.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    CustomerDiscount' -> Maybe Text
customerDiscount'InvoiceItem :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | object: String representing the object\'s type. Objects of the same type share the same value.
    CustomerDiscount' -> Maybe CustomerDiscount'Object'
customerDiscount'Object :: (GHC.Maybe.Maybe CustomerDiscount'Object'),
    -- | promotion_code: The promotion code applied to create this discount.
    CustomerDiscount' -> Maybe CustomerDiscount'PromotionCode'Variants
customerDiscount'PromotionCode :: (GHC.Maybe.Maybe CustomerDiscount'PromotionCode'Variants),
    -- | start: Date that the coupon was applied.
    CustomerDiscount' -> Maybe Int
customerDiscount'Start :: (GHC.Maybe.Maybe GHC.Types.Int),
    -- | subscription: The subscription that this coupon is applied to, if it is applied to a particular subscription.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    CustomerDiscount' -> Maybe Text
customerDiscount'Subscription :: (GHC.Maybe.Maybe Data.Text.Internal.Text)
  }
  deriving
    ( Int -> CustomerDiscount' -> ShowS
[CustomerDiscount'] -> ShowS
CustomerDiscount' -> String
(Int -> CustomerDiscount' -> ShowS)
-> (CustomerDiscount' -> String)
-> ([CustomerDiscount'] -> ShowS)
-> Show CustomerDiscount'
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CustomerDiscount'] -> ShowS
$cshowList :: [CustomerDiscount'] -> ShowS
show :: CustomerDiscount' -> String
$cshow :: CustomerDiscount' -> String
showsPrec :: Int -> CustomerDiscount' -> ShowS
$cshowsPrec :: Int -> CustomerDiscount' -> ShowS
GHC.Show.Show,
      CustomerDiscount' -> CustomerDiscount' -> Bool
(CustomerDiscount' -> CustomerDiscount' -> Bool)
-> (CustomerDiscount' -> CustomerDiscount' -> Bool)
-> Eq CustomerDiscount'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CustomerDiscount' -> CustomerDiscount' -> Bool
$c/= :: CustomerDiscount' -> CustomerDiscount' -> Bool
== :: CustomerDiscount' -> CustomerDiscount' -> Bool
$c== :: CustomerDiscount' -> CustomerDiscount' -> Bool
GHC.Classes.Eq
    )

instance Data.Aeson.Types.ToJSON.ToJSON CustomerDiscount' where
  toJSON :: CustomerDiscount' -> Value
toJSON CustomerDiscount'
obj = [Pair] -> Value
Data.Aeson.Types.Internal.object (Text
"checkout_session" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= CustomerDiscount' -> Maybe Text
customerDiscount'CheckoutSession CustomerDiscount'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"coupon" Text -> Maybe Coupon -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= CustomerDiscount' -> Maybe Coupon
customerDiscount'Coupon CustomerDiscount'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"customer" Text -> Maybe CustomerDiscount'Customer'Variants -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= CustomerDiscount' -> Maybe CustomerDiscount'Customer'Variants
customerDiscount'Customer CustomerDiscount'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"end" Text -> Maybe Int -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= CustomerDiscount' -> Maybe Int
customerDiscount'End CustomerDiscount'
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..= CustomerDiscount' -> Maybe Text
customerDiscount'Id CustomerDiscount'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"invoice" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= CustomerDiscount' -> Maybe Text
customerDiscount'Invoice CustomerDiscount'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"invoice_item" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= CustomerDiscount' -> Maybe Text
customerDiscount'InvoiceItem CustomerDiscount'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"object" Text -> Maybe CustomerDiscount'Object' -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= CustomerDiscount' -> Maybe CustomerDiscount'Object'
customerDiscount'Object CustomerDiscount'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"promotion_code" Text -> Maybe CustomerDiscount'PromotionCode'Variants -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= CustomerDiscount' -> Maybe CustomerDiscount'PromotionCode'Variants
customerDiscount'PromotionCode CustomerDiscount'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"start" Text -> Maybe Int -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= CustomerDiscount' -> Maybe Int
customerDiscount'Start CustomerDiscount'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"subscription" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= CustomerDiscount' -> Maybe Text
customerDiscount'Subscription CustomerDiscount'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: CustomerDiscount' -> Encoding
toEncoding CustomerDiscount'
obj = Series -> Encoding
Data.Aeson.Encoding.Internal.pairs ((Text
"checkout_session" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= CustomerDiscount' -> Maybe Text
customerDiscount'CheckoutSession CustomerDiscount'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"coupon" Text -> Maybe Coupon -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= CustomerDiscount' -> Maybe Coupon
customerDiscount'Coupon CustomerDiscount'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"customer" Text -> Maybe CustomerDiscount'Customer'Variants -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= CustomerDiscount' -> Maybe CustomerDiscount'Customer'Variants
customerDiscount'Customer CustomerDiscount'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"end" Text -> Maybe Int -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= CustomerDiscount' -> Maybe Int
customerDiscount'End CustomerDiscount'
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..= CustomerDiscount' -> Maybe Text
customerDiscount'Id CustomerDiscount'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"invoice" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= CustomerDiscount' -> Maybe Text
customerDiscount'Invoice CustomerDiscount'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"invoice_item" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= CustomerDiscount' -> Maybe Text
customerDiscount'InvoiceItem CustomerDiscount'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"object" Text -> Maybe CustomerDiscount'Object' -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= CustomerDiscount' -> Maybe CustomerDiscount'Object'
customerDiscount'Object CustomerDiscount'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"promotion_code" Text -> Maybe CustomerDiscount'PromotionCode'Variants -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= CustomerDiscount' -> Maybe CustomerDiscount'PromotionCode'Variants
customerDiscount'PromotionCode CustomerDiscount'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"start" Text -> Maybe Int -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= CustomerDiscount' -> Maybe Int
customerDiscount'Start CustomerDiscount'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> (Text
"subscription" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= CustomerDiscount' -> Maybe Text
customerDiscount'Subscription CustomerDiscount'
obj)))))))))))

instance Data.Aeson.Types.FromJSON.FromJSON CustomerDiscount' where
  parseJSON :: Value -> Parser CustomerDiscount'
parseJSON = String
-> (Object -> Parser CustomerDiscount')
-> Value
-> Parser CustomerDiscount'
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.Aeson.Types.FromJSON.withObject String
"CustomerDiscount'" (\Object
obj -> (((((((((((Maybe Text
 -> Maybe Coupon
 -> Maybe CustomerDiscount'Customer'Variants
 -> Maybe Int
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe CustomerDiscount'Object'
 -> Maybe CustomerDiscount'PromotionCode'Variants
 -> Maybe Int
 -> Maybe Text
 -> CustomerDiscount')
-> Parser
     (Maybe Text
      -> Maybe Coupon
      -> Maybe CustomerDiscount'Customer'Variants
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe CustomerDiscount'Object'
      -> Maybe CustomerDiscount'PromotionCode'Variants
      -> Maybe Int
      -> Maybe Text
      -> CustomerDiscount')
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure Maybe Text
-> Maybe Coupon
-> Maybe CustomerDiscount'Customer'Variants
-> Maybe Int
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe CustomerDiscount'Object'
-> Maybe CustomerDiscount'PromotionCode'Variants
-> Maybe Int
-> Maybe Text
-> CustomerDiscount'
CustomerDiscount' Parser
  (Maybe Text
   -> Maybe Coupon
   -> Maybe CustomerDiscount'Customer'Variants
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe CustomerDiscount'Object'
   -> Maybe CustomerDiscount'PromotionCode'Variants
   -> Maybe Int
   -> Maybe Text
   -> CustomerDiscount')
-> Parser (Maybe Text)
-> Parser
     (Maybe Coupon
      -> Maybe CustomerDiscount'Customer'Variants
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe CustomerDiscount'Object'
      -> Maybe CustomerDiscount'PromotionCode'Variants
      -> Maybe Int
      -> Maybe Text
      -> CustomerDiscount')
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
"checkout_session")) Parser
  (Maybe Coupon
   -> Maybe CustomerDiscount'Customer'Variants
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe CustomerDiscount'Object'
   -> Maybe CustomerDiscount'PromotionCode'Variants
   -> Maybe Int
   -> Maybe Text
   -> CustomerDiscount')
-> Parser (Maybe Coupon)
-> Parser
     (Maybe CustomerDiscount'Customer'Variants
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe CustomerDiscount'Object'
      -> Maybe CustomerDiscount'PromotionCode'Variants
      -> Maybe Int
      -> Maybe Text
      -> CustomerDiscount')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Coupon)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"coupon")) Parser
  (Maybe CustomerDiscount'Customer'Variants
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe CustomerDiscount'Object'
   -> Maybe CustomerDiscount'PromotionCode'Variants
   -> Maybe Int
   -> Maybe Text
   -> CustomerDiscount')
-> Parser (Maybe CustomerDiscount'Customer'Variants)
-> Parser
     (Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe CustomerDiscount'Object'
      -> Maybe CustomerDiscount'PromotionCode'Variants
      -> Maybe Int
      -> Maybe Text
      -> CustomerDiscount')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe CustomerDiscount'Customer'Variants)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"customer")) Parser
  (Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe CustomerDiscount'Object'
   -> Maybe CustomerDiscount'PromotionCode'Variants
   -> Maybe Int
   -> Maybe Text
   -> CustomerDiscount')
-> Parser (Maybe Int)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe CustomerDiscount'Object'
      -> Maybe CustomerDiscount'PromotionCode'Variants
      -> Maybe Int
      -> Maybe Text
      -> CustomerDiscount')
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
"end")) Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe CustomerDiscount'Object'
   -> Maybe CustomerDiscount'PromotionCode'Variants
   -> Maybe Int
   -> Maybe Text
   -> CustomerDiscount')
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe CustomerDiscount'Object'
      -> Maybe CustomerDiscount'PromotionCode'Variants
      -> Maybe Int
      -> Maybe Text
      -> CustomerDiscount')
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 Text
   -> Maybe CustomerDiscount'Object'
   -> Maybe CustomerDiscount'PromotionCode'Variants
   -> Maybe Int
   -> Maybe Text
   -> CustomerDiscount')
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe CustomerDiscount'Object'
      -> Maybe CustomerDiscount'PromotionCode'Variants
      -> Maybe Int
      -> Maybe Text
      -> CustomerDiscount')
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
"invoice")) Parser
  (Maybe Text
   -> Maybe CustomerDiscount'Object'
   -> Maybe CustomerDiscount'PromotionCode'Variants
   -> Maybe Int
   -> Maybe Text
   -> CustomerDiscount')
-> Parser (Maybe Text)
-> Parser
     (Maybe CustomerDiscount'Object'
      -> Maybe CustomerDiscount'PromotionCode'Variants
      -> Maybe Int
      -> Maybe Text
      -> CustomerDiscount')
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
"invoice_item")) Parser
  (Maybe CustomerDiscount'Object'
   -> Maybe CustomerDiscount'PromotionCode'Variants
   -> Maybe Int
   -> Maybe Text
   -> CustomerDiscount')
-> Parser (Maybe CustomerDiscount'Object')
-> Parser
     (Maybe CustomerDiscount'PromotionCode'Variants
      -> Maybe Int -> Maybe Text -> CustomerDiscount')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe CustomerDiscount'Object')
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"object")) Parser
  (Maybe CustomerDiscount'PromotionCode'Variants
   -> Maybe Int -> Maybe Text -> CustomerDiscount')
-> Parser (Maybe CustomerDiscount'PromotionCode'Variants)
-> Parser (Maybe Int -> Maybe Text -> CustomerDiscount')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text -> Parser (Maybe CustomerDiscount'PromotionCode'Variants)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"promotion_code")) Parser (Maybe Int -> Maybe Text -> CustomerDiscount')
-> Parser (Maybe Int) -> Parser (Maybe Text -> CustomerDiscount')
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
"start")) Parser (Maybe Text -> CustomerDiscount')
-> Parser (Maybe Text) -> Parser CustomerDiscount'
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
"subscription"))

-- | Create a new 'CustomerDiscount'' with all required fields.
mkCustomerDiscount' :: CustomerDiscount'
mkCustomerDiscount' :: CustomerDiscount'
mkCustomerDiscount' =
  CustomerDiscount' :: Maybe Text
-> Maybe Coupon
-> Maybe CustomerDiscount'Customer'Variants
-> Maybe Int
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe CustomerDiscount'Object'
-> Maybe CustomerDiscount'PromotionCode'Variants
-> Maybe Int
-> Maybe Text
-> CustomerDiscount'
CustomerDiscount'
    { customerDiscount'CheckoutSession :: Maybe Text
customerDiscount'CheckoutSession = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      customerDiscount'Coupon :: Maybe Coupon
customerDiscount'Coupon = Maybe Coupon
forall a. Maybe a
GHC.Maybe.Nothing,
      customerDiscount'Customer :: Maybe CustomerDiscount'Customer'Variants
customerDiscount'Customer = Maybe CustomerDiscount'Customer'Variants
forall a. Maybe a
GHC.Maybe.Nothing,
      customerDiscount'End :: Maybe Int
customerDiscount'End = Maybe Int
forall a. Maybe a
GHC.Maybe.Nothing,
      customerDiscount'Id :: Maybe Text
customerDiscount'Id = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      customerDiscount'Invoice :: Maybe Text
customerDiscount'Invoice = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      customerDiscount'InvoiceItem :: Maybe Text
customerDiscount'InvoiceItem = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      customerDiscount'Object :: Maybe CustomerDiscount'Object'
customerDiscount'Object = Maybe CustomerDiscount'Object'
forall a. Maybe a
GHC.Maybe.Nothing,
      customerDiscount'PromotionCode :: Maybe CustomerDiscount'PromotionCode'Variants
customerDiscount'PromotionCode = Maybe CustomerDiscount'PromotionCode'Variants
forall a. Maybe a
GHC.Maybe.Nothing,
      customerDiscount'Start :: Maybe Int
customerDiscount'Start = Maybe Int
forall a. Maybe a
GHC.Maybe.Nothing,
      customerDiscount'Subscription :: Maybe Text
customerDiscount'Subscription = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing
    }

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

instance Data.Aeson.Types.ToJSON.ToJSON CustomerDiscount'Customer'Variants where
  toJSON :: CustomerDiscount'Customer'Variants -> Value
toJSON (CustomerDiscount'Customer'Text Text
a) = Text -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON Text
a
  toJSON (CustomerDiscount'Customer'Customer Customer
a) = Customer -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON Customer
a
  toJSON (CustomerDiscount'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 CustomerDiscount'Customer'Variants where
  parseJSON :: Value -> Parser CustomerDiscount'Customer'Variants
parseJSON Value
val = case (Text -> CustomerDiscount'Customer'Variants
CustomerDiscount'Customer'Text (Text -> CustomerDiscount'Customer'Variants)
-> Result Text -> Result CustomerDiscount'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 CustomerDiscount'Customer'Variants
-> Result CustomerDiscount'Customer'Variants
-> Result CustomerDiscount'Customer'Variants
forall (f :: * -> *) a. Alternative f => f a -> f a -> f a
GHC.Base.<|> ((Customer -> CustomerDiscount'Customer'Variants
CustomerDiscount'Customer'Customer (Customer -> CustomerDiscount'Customer'Variants)
-> Result Customer -> Result CustomerDiscount'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 CustomerDiscount'Customer'Variants
-> Result CustomerDiscount'Customer'Variants
-> Result CustomerDiscount'Customer'Variants
forall (f :: * -> *) a. Alternative f => f a -> f a -> f a
GHC.Base.<|> ((DeletedCustomer -> CustomerDiscount'Customer'Variants
CustomerDiscount'Customer'DeletedCustomer (DeletedCustomer -> CustomerDiscount'Customer'Variants)
-> Result DeletedCustomer
-> Result CustomerDiscount'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 CustomerDiscount'Customer'Variants
-> Result CustomerDiscount'Customer'Variants
-> Result CustomerDiscount'Customer'Variants
forall (f :: * -> *) a. Alternative f => f a -> f a -> f a
GHC.Base.<|> String -> Result CustomerDiscount'Customer'Variants
forall a. String -> Result a
Data.Aeson.Types.Internal.Error String
"No variant matched")) of
    Data.Aeson.Types.Internal.Success CustomerDiscount'Customer'Variants
a -> CustomerDiscount'Customer'Variants
-> Parser CustomerDiscount'Customer'Variants
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure CustomerDiscount'Customer'Variants
a
    Data.Aeson.Types.Internal.Error String
a -> String -> Parser CustomerDiscount'Customer'Variants
forall (m :: * -> *) a. MonadFail m => String -> m a
Control.Monad.Fail.fail String
a

-- | Defines the enum schema located at @components.schemas.customer.properties.discount.anyOf.properties.object@ in the specification.
--
-- String representing the object\'s type. Objects of the same type share the same value.
data CustomerDiscount'Object'
  = -- | This case is used if the value encountered during decoding does not match any of the provided cases in the specification.
    CustomerDiscount'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.
    CustomerDiscount'Object'Typed Data.Text.Internal.Text
  | -- | Represents the JSON value @"discount"@
    CustomerDiscount'Object'EnumDiscount
  deriving (Int -> CustomerDiscount'Object' -> ShowS
[CustomerDiscount'Object'] -> ShowS
CustomerDiscount'Object' -> String
(Int -> CustomerDiscount'Object' -> ShowS)
-> (CustomerDiscount'Object' -> String)
-> ([CustomerDiscount'Object'] -> ShowS)
-> Show CustomerDiscount'Object'
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CustomerDiscount'Object'] -> ShowS
$cshowList :: [CustomerDiscount'Object'] -> ShowS
show :: CustomerDiscount'Object' -> String
$cshow :: CustomerDiscount'Object' -> String
showsPrec :: Int -> CustomerDiscount'Object' -> ShowS
$cshowsPrec :: Int -> CustomerDiscount'Object' -> ShowS
GHC.Show.Show, CustomerDiscount'Object' -> CustomerDiscount'Object' -> Bool
(CustomerDiscount'Object' -> CustomerDiscount'Object' -> Bool)
-> (CustomerDiscount'Object' -> CustomerDiscount'Object' -> Bool)
-> Eq CustomerDiscount'Object'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CustomerDiscount'Object' -> CustomerDiscount'Object' -> Bool
$c/= :: CustomerDiscount'Object' -> CustomerDiscount'Object' -> Bool
== :: CustomerDiscount'Object' -> CustomerDiscount'Object' -> Bool
$c== :: CustomerDiscount'Object' -> CustomerDiscount'Object' -> Bool
GHC.Classes.Eq)

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

instance Data.Aeson.Types.FromJSON.FromJSON CustomerDiscount'Object' where
  parseJSON :: Value -> Parser CustomerDiscount'Object'
parseJSON Value
val =
    CustomerDiscount'Object' -> Parser CustomerDiscount'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
"discount" -> CustomerDiscount'Object'
CustomerDiscount'Object'EnumDiscount
            | Bool
GHC.Base.otherwise -> Value -> CustomerDiscount'Object'
CustomerDiscount'Object'Other Value
val
      )

-- | Defines the oneOf schema located at @components.schemas.customer.properties.discount.anyOf.properties.promotion_code.anyOf@ in the specification.
--
-- The promotion code applied to create this discount.
data CustomerDiscount'PromotionCode'Variants
  = CustomerDiscount'PromotionCode'Text Data.Text.Internal.Text
  | CustomerDiscount'PromotionCode'PromotionCode PromotionCode
  deriving (Int -> CustomerDiscount'PromotionCode'Variants -> ShowS
[CustomerDiscount'PromotionCode'Variants] -> ShowS
CustomerDiscount'PromotionCode'Variants -> String
(Int -> CustomerDiscount'PromotionCode'Variants -> ShowS)
-> (CustomerDiscount'PromotionCode'Variants -> String)
-> ([CustomerDiscount'PromotionCode'Variants] -> ShowS)
-> Show CustomerDiscount'PromotionCode'Variants
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CustomerDiscount'PromotionCode'Variants] -> ShowS
$cshowList :: [CustomerDiscount'PromotionCode'Variants] -> ShowS
show :: CustomerDiscount'PromotionCode'Variants -> String
$cshow :: CustomerDiscount'PromotionCode'Variants -> String
showsPrec :: Int -> CustomerDiscount'PromotionCode'Variants -> ShowS
$cshowsPrec :: Int -> CustomerDiscount'PromotionCode'Variants -> ShowS
GHC.Show.Show, CustomerDiscount'PromotionCode'Variants
-> CustomerDiscount'PromotionCode'Variants -> Bool
(CustomerDiscount'PromotionCode'Variants
 -> CustomerDiscount'PromotionCode'Variants -> Bool)
-> (CustomerDiscount'PromotionCode'Variants
    -> CustomerDiscount'PromotionCode'Variants -> Bool)
-> Eq CustomerDiscount'PromotionCode'Variants
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CustomerDiscount'PromotionCode'Variants
-> CustomerDiscount'PromotionCode'Variants -> Bool
$c/= :: CustomerDiscount'PromotionCode'Variants
-> CustomerDiscount'PromotionCode'Variants -> Bool
== :: CustomerDiscount'PromotionCode'Variants
-> CustomerDiscount'PromotionCode'Variants -> Bool
$c== :: CustomerDiscount'PromotionCode'Variants
-> CustomerDiscount'PromotionCode'Variants -> Bool
GHC.Classes.Eq)

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

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

-- | Defines the object schema located at @components.schemas.customer.properties.shipping.anyOf@ in the specification.
--
-- Mailing and shipping address for the customer. Appears on invoices emailed to this customer.
data CustomerShipping' = CustomerShipping'
  { -- | address:
    CustomerShipping' -> Maybe Address
customerShipping'Address :: (GHC.Maybe.Maybe Address),
    -- | carrier: The delivery service that shipped a physical product, such as Fedex, UPS, USPS, etc.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    CustomerShipping' -> Maybe Text
customerShipping'Carrier :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | name: Recipient name.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    CustomerShipping' -> Maybe Text
customerShipping'Name :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | phone: Recipient phone (including extension).
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    CustomerShipping' -> Maybe Text
customerShipping'Phone :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | tracking_number: The tracking number for a physical product, obtained from the delivery service. If multiple tracking numbers were generated for this purchase, please separate them with commas.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    CustomerShipping' -> Maybe Text
customerShipping'TrackingNumber :: (GHC.Maybe.Maybe Data.Text.Internal.Text)
  }
  deriving
    ( Int -> CustomerShipping' -> ShowS
[CustomerShipping'] -> ShowS
CustomerShipping' -> String
(Int -> CustomerShipping' -> ShowS)
-> (CustomerShipping' -> String)
-> ([CustomerShipping'] -> ShowS)
-> Show CustomerShipping'
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CustomerShipping'] -> ShowS
$cshowList :: [CustomerShipping'] -> ShowS
show :: CustomerShipping' -> String
$cshow :: CustomerShipping' -> String
showsPrec :: Int -> CustomerShipping' -> ShowS
$cshowsPrec :: Int -> CustomerShipping' -> ShowS
GHC.Show.Show,
      CustomerShipping' -> CustomerShipping' -> Bool
(CustomerShipping' -> CustomerShipping' -> Bool)
-> (CustomerShipping' -> CustomerShipping' -> Bool)
-> Eq CustomerShipping'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CustomerShipping' -> CustomerShipping' -> Bool
$c/= :: CustomerShipping' -> CustomerShipping' -> Bool
== :: CustomerShipping' -> CustomerShipping' -> Bool
$c== :: CustomerShipping' -> CustomerShipping' -> Bool
GHC.Classes.Eq
    )

instance Data.Aeson.Types.ToJSON.ToJSON CustomerShipping' where
  toJSON :: CustomerShipping' -> Value
toJSON CustomerShipping'
obj = [Pair] -> Value
Data.Aeson.Types.Internal.object (Text
"address" Text -> Maybe Address -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= CustomerShipping' -> Maybe Address
customerShipping'Address CustomerShipping'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"carrier" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= CustomerShipping' -> Maybe Text
customerShipping'Carrier CustomerShipping'
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..= CustomerShipping' -> Maybe Text
customerShipping'Name CustomerShipping'
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..= CustomerShipping' -> Maybe Text
customerShipping'Phone CustomerShipping'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"tracking_number" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= CustomerShipping' -> Maybe Text
customerShipping'TrackingNumber CustomerShipping'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: CustomerShipping' -> Encoding
toEncoding CustomerShipping'
obj = Series -> Encoding
Data.Aeson.Encoding.Internal.pairs ((Text
"address" Text -> Maybe Address -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= CustomerShipping' -> Maybe Address
customerShipping'Address CustomerShipping'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"carrier" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= CustomerShipping' -> Maybe Text
customerShipping'Carrier CustomerShipping'
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..= CustomerShipping' -> Maybe Text
customerShipping'Name CustomerShipping'
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..= CustomerShipping' -> Maybe Text
customerShipping'Phone CustomerShipping'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> (Text
"tracking_number" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= CustomerShipping' -> Maybe Text
customerShipping'TrackingNumber CustomerShipping'
obj)))))

instance Data.Aeson.Types.FromJSON.FromJSON CustomerShipping' where
  parseJSON :: Value -> Parser CustomerShipping'
parseJSON = String
-> (Object -> Parser CustomerShipping')
-> Value
-> Parser CustomerShipping'
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.Aeson.Types.FromJSON.withObject String
"CustomerShipping'" (\Object
obj -> (((((Maybe Address
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> CustomerShipping')
-> Parser
     (Maybe Address
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> CustomerShipping')
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure Maybe Address
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> CustomerShipping'
CustomerShipping' Parser
  (Maybe Address
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> CustomerShipping')
-> Parser (Maybe Address)
-> Parser
     (Maybe Text
      -> Maybe Text -> Maybe Text -> Maybe Text -> CustomerShipping')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Address)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"address")) Parser
  (Maybe Text
   -> Maybe Text -> Maybe Text -> Maybe Text -> CustomerShipping')
-> Parser (Maybe Text)
-> Parser
     (Maybe Text -> Maybe Text -> Maybe Text -> CustomerShipping')
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
"carrier")) Parser
  (Maybe Text -> Maybe Text -> Maybe Text -> CustomerShipping')
-> Parser (Maybe Text)
-> Parser (Maybe Text -> Maybe Text -> CustomerShipping')
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 Text -> CustomerShipping')
-> Parser (Maybe Text) -> Parser (Maybe Text -> CustomerShipping')
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 Text -> CustomerShipping')
-> Parser (Maybe Text) -> Parser CustomerShipping'
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
"tracking_number"))

-- | Create a new 'CustomerShipping'' with all required fields.
mkCustomerShipping' :: CustomerShipping'
mkCustomerShipping' :: CustomerShipping'
mkCustomerShipping' =
  CustomerShipping' :: Maybe Address
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> CustomerShipping'
CustomerShipping'
    { customerShipping'Address :: Maybe Address
customerShipping'Address = Maybe Address
forall a. Maybe a
GHC.Maybe.Nothing,
      customerShipping'Carrier :: Maybe Text
customerShipping'Carrier = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      customerShipping'Name :: Maybe Text
customerShipping'Name = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      customerShipping'Phone :: Maybe Text
customerShipping'Phone = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      customerShipping'TrackingNumber :: Maybe Text
customerShipping'TrackingNumber = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing
    }

-- | Defines the object schema located at @components.schemas.customer.properties.sources@ in the specification.
--
-- The customer\'s payment sources, if any.
data CustomerSources' = CustomerSources'
  { -- | data: Details about each object.
    CustomerSources' -> [CustomerSources'Data']
customerSources'Data :: ([CustomerSources'Data']),
    -- | has_more: True if this list has another page of items after this one that can be fetched.
    CustomerSources' -> Bool
customerSources'HasMore :: GHC.Types.Bool,
    -- | url: The URL where this list can be accessed.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    CustomerSources' -> Text
customerSources'Url :: Data.Text.Internal.Text
  }
  deriving
    ( Int -> CustomerSources' -> ShowS
[CustomerSources'] -> ShowS
CustomerSources' -> String
(Int -> CustomerSources' -> ShowS)
-> (CustomerSources' -> String)
-> ([CustomerSources'] -> ShowS)
-> Show CustomerSources'
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CustomerSources'] -> ShowS
$cshowList :: [CustomerSources'] -> ShowS
show :: CustomerSources' -> String
$cshow :: CustomerSources' -> String
showsPrec :: Int -> CustomerSources' -> ShowS
$cshowsPrec :: Int -> CustomerSources' -> ShowS
GHC.Show.Show,
      CustomerSources' -> CustomerSources' -> Bool
(CustomerSources' -> CustomerSources' -> Bool)
-> (CustomerSources' -> CustomerSources' -> Bool)
-> Eq CustomerSources'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CustomerSources' -> CustomerSources' -> Bool
$c/= :: CustomerSources' -> CustomerSources' -> Bool
== :: CustomerSources' -> CustomerSources' -> Bool
$c== :: CustomerSources' -> CustomerSources' -> Bool
GHC.Classes.Eq
    )

instance Data.Aeson.Types.ToJSON.ToJSON CustomerSources' where
  toJSON :: CustomerSources' -> Value
toJSON CustomerSources'
obj = [Pair] -> Value
Data.Aeson.Types.Internal.object (Text
"data" Text -> [CustomerSources'Data'] -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= CustomerSources' -> [CustomerSources'Data']
customerSources'Data CustomerSources'
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..= CustomerSources' -> Bool
customerSources'HasMore CustomerSources'
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..= CustomerSources' -> Text
customerSources'Url CustomerSources'
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 :: CustomerSources' -> Encoding
toEncoding CustomerSources'
obj = Series -> Encoding
Data.Aeson.Encoding.Internal.pairs ((Text
"data" Text -> [CustomerSources'Data'] -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= CustomerSources' -> [CustomerSources'Data']
customerSources'Data CustomerSources'
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..= CustomerSources' -> Bool
customerSources'HasMore CustomerSources'
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..= CustomerSources' -> Text
customerSources'Url CustomerSources'
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 CustomerSources' where
  parseJSON :: Value -> Parser CustomerSources'
parseJSON = String
-> (Object -> Parser CustomerSources')
-> Value
-> Parser CustomerSources'
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.Aeson.Types.FromJSON.withObject String
"CustomerSources'" (\Object
obj -> ((([CustomerSources'Data'] -> Bool -> Text -> CustomerSources')
-> Parser
     ([CustomerSources'Data'] -> Bool -> Text -> CustomerSources')
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure [CustomerSources'Data'] -> Bool -> Text -> CustomerSources'
CustomerSources' Parser
  ([CustomerSources'Data'] -> Bool -> Text -> CustomerSources')
-> Parser [CustomerSources'Data']
-> Parser (Bool -> Text -> CustomerSources')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser [CustomerSources'Data']
forall a. FromJSON a => Object -> Text -> Parser a
Data.Aeson.Types.FromJSON..: Text
"data")) Parser (Bool -> Text -> CustomerSources')
-> Parser Bool -> Parser (Text -> CustomerSources')
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 -> CustomerSources')
-> Parser Text -> Parser CustomerSources'
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 'CustomerSources'' with all required fields.
mkCustomerSources' ::
  -- | 'customerSources'Data'
  [CustomerSources'Data'] ->
  -- | 'customerSources'HasMore'
  GHC.Types.Bool ->
  -- | 'customerSources'Url'
  Data.Text.Internal.Text ->
  CustomerSources'
mkCustomerSources' :: [CustomerSources'Data'] -> Bool -> Text -> CustomerSources'
mkCustomerSources' [CustomerSources'Data']
customerSources'Data Bool
customerSources'HasMore Text
customerSources'Url =
  CustomerSources' :: [CustomerSources'Data'] -> Bool -> Text -> CustomerSources'
CustomerSources'
    { customerSources'Data :: [CustomerSources'Data']
customerSources'Data = [CustomerSources'Data']
customerSources'Data,
      customerSources'HasMore :: Bool
customerSources'HasMore = Bool
customerSources'HasMore,
      customerSources'Url :: Text
customerSources'Url = Text
customerSources'Url
    }

-- | Defines the object schema located at @components.schemas.customer.properties.sources.properties.data.items.anyOf@ in the specification.
data CustomerSources'Data' = CustomerSources'Data'
  { -- | account: The ID of the account that the bank account is associated with.
    CustomerSources'Data'
-> Maybe CustomerSources'Data'Account'Variants
customerSources'Data'Account :: (GHC.Maybe.Maybe CustomerSources'Data'Account'Variants),
    -- | account_holder_name: The name of the person or business that owns the bank account.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    CustomerSources'Data' -> Maybe Text
customerSources'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
    CustomerSources'Data' -> Maybe Text
customerSources'Data'AccountHolderType :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | ach_credit_transfer
    CustomerSources'Data' -> Maybe SourceTypeAchCreditTransfer
customerSources'Data'AchCreditTransfer :: (GHC.Maybe.Maybe SourceTypeAchCreditTransfer),
    -- | ach_debit
    CustomerSources'Data' -> Maybe SourceTypeAchDebit
customerSources'Data'AchDebit :: (GHC.Maybe.Maybe SourceTypeAchDebit),
    -- | acss_debit
    CustomerSources'Data' -> Maybe SourceTypeAcssDebit
customerSources'Data'AcssDebit :: (GHC.Maybe.Maybe SourceTypeAcssDebit),
    -- | active: True when this bitcoin receiver has received a non-zero amount of bitcoin.
    CustomerSources'Data' -> Maybe Bool
customerSources'Data'Active :: (GHC.Maybe.Maybe GHC.Types.Bool),
    -- | address_city: City\/District\/Suburb\/Town\/Village.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    CustomerSources'Data' -> Maybe Text
customerSources'Data'AddressCity :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | address_country: Billing address country, if provided when creating card.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    CustomerSources'Data' -> Maybe Text
customerSources'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
    CustomerSources'Data' -> Maybe Text
customerSources'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
    CustomerSources'Data' -> Maybe Text
customerSources'Data'AddressLine1Check :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | address_line2: Address line 2 (Apartment\/Suite\/Unit\/Building).
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    CustomerSources'Data' -> Maybe Text
customerSources'Data'AddressLine2 :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | address_state: State\/County\/Province\/Region.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    CustomerSources'Data' -> Maybe Text
customerSources'Data'AddressState :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | address_zip: ZIP or postal code.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    CustomerSources'Data' -> Maybe Text
customerSources'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
    CustomerSources'Data' -> Maybe Text
customerSources'Data'AddressZipCheck :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | alipay
    CustomerSources'Data' -> Maybe SourceTypeAlipay
customerSources'Data'Alipay :: (GHC.Maybe.Maybe SourceTypeAlipay),
    -- | amount: The amount of \`currency\` that you are collecting as payment.
    CustomerSources'Data' -> Maybe Int
customerSources'Data'Amount :: (GHC.Maybe.Maybe GHC.Types.Int),
    -- | amount_received: The amount of \`currency\` to which \`bitcoin_amount_received\` has been converted.
    CustomerSources'Data' -> Maybe Int
customerSources'Data'AmountReceived :: (GHC.Maybe.Maybe GHC.Types.Int),
    -- | au_becs_debit
    CustomerSources'Data' -> Maybe SourceTypeAuBecsDebit
customerSources'Data'AuBecsDebit :: (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.
    CustomerSources'Data'
-> Maybe [CustomerSources'Data'AvailablePayoutMethods']
customerSources'Data'AvailablePayoutMethods :: (GHC.Maybe.Maybe ([CustomerSources'Data'AvailablePayoutMethods'])),
    -- | bancontact
    CustomerSources'Data' -> Maybe SourceTypeBancontact
customerSources'Data'Bancontact :: (GHC.Maybe.Maybe SourceTypeBancontact),
    -- | bank_name: Name of the bank associated with the routing number (e.g., \`WELLS FARGO\`).
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    CustomerSources'Data' -> Maybe Text
customerSources'Data'BankName :: (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.
    CustomerSources'Data' -> Maybe Int
customerSources'Data'BitcoinAmount :: (GHC.Maybe.Maybe GHC.Types.Int),
    -- | bitcoin_amount_received: The amount of bitcoin that has been sent by the customer to this receiver.
    CustomerSources'Data' -> Maybe Int
customerSources'Data'BitcoinAmountReceived :: (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
    CustomerSources'Data' -> Maybe Text
customerSources'Data'BitcoinUri :: (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
    CustomerSources'Data' -> Maybe Text
customerSources'Data'Brand :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | card
    CustomerSources'Data' -> Maybe SourceTypeCard
customerSources'Data'Card :: (GHC.Maybe.Maybe SourceTypeCard),
    -- | card_present
    CustomerSources'Data' -> Maybe SourceTypeCardPresent
customerSources'Data'CardPresent :: (GHC.Maybe.Maybe SourceTypeCardPresent),
    -- | client_secret: The client secret of the source. Used for client-side retrieval using a publishable key.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    CustomerSources'Data' -> Maybe Text
customerSources'Data'ClientSecret :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | code_verification:
    CustomerSources'Data' -> Maybe SourceCodeVerificationFlow
customerSources'Data'CodeVerification :: (GHC.Maybe.Maybe SourceCodeVerificationFlow),
    -- | country: Two-letter ISO code representing the country the bank account is located in.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    CustomerSources'Data' -> Maybe Text
customerSources'Data'Country :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | created: Time at which the object was created. Measured in seconds since the Unix epoch.
    CustomerSources'Data' -> Maybe Int
customerSources'Data'Created :: (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.
    CustomerSources'Data' -> Maybe Text
customerSources'Data'Currency :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | customer: The ID of the customer associated with this Alipay Account.
    CustomerSources'Data'
-> Maybe CustomerSources'Data'Customer'Variants
customerSources'Data'Customer :: (GHC.Maybe.Maybe CustomerSources'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
    CustomerSources'Data' -> Maybe Text
customerSources'Data'CvcCheck :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | default_for_currency: Whether this bank account is the default external account for its currency.
    CustomerSources'Data' -> Maybe Bool
customerSources'Data'DefaultForCurrency :: (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
    CustomerSources'Data' -> Maybe Text
customerSources'Data'Description :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | dynamic_last4: (For tokenized numbers only.) The last four digits of the device account number.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    CustomerSources'Data' -> Maybe Text
customerSources'Data'DynamicLast4 :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | email: The customer\'s email address, set by the API call that creates the receiver.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    CustomerSources'Data' -> Maybe Text
customerSources'Data'Email :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | eps
    CustomerSources'Data' -> Maybe SourceTypeEps
customerSources'Data'Eps :: (GHC.Maybe.Maybe SourceTypeEps),
    -- | exp_month: Two-digit number representing the card\'s expiration month.
    CustomerSources'Data' -> Maybe Int
customerSources'Data'ExpMonth :: (GHC.Maybe.Maybe GHC.Types.Int),
    -- | exp_year: Four-digit number representing the card\'s expiration year.
    CustomerSources'Data' -> Maybe Int
customerSources'Data'ExpYear :: (GHC.Maybe.Maybe GHC.Types.Int),
    -- | filled: This flag is initially false and updates to true when the customer sends the \`bitcoin_amount\` to this receiver.
    CustomerSources'Data' -> Maybe Bool
customerSources'Data'Filled :: (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
    CustomerSources'Data' -> Maybe Text
customerSources'Data'Fingerprint :: (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
    CustomerSources'Data' -> Maybe Text
customerSources'Data'Flow :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | funding: Card funding type. Can be \`credit\`, \`debit\`, \`prepaid\`, or \`unknown\`.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    CustomerSources'Data' -> Maybe Text
customerSources'Data'Funding :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | giropay
    CustomerSources'Data' -> Maybe SourceTypeGiropay
customerSources'Data'Giropay :: (GHC.Maybe.Maybe SourceTypeGiropay),
    -- | id: Unique identifier for the object.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    CustomerSources'Data' -> Maybe Text
customerSources'Data'Id :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | ideal
    CustomerSources'Data' -> Maybe SourceTypeIdeal
customerSources'Data'Ideal :: (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
    CustomerSources'Data' -> Maybe Text
customerSources'Data'InboundAddress :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | klarna
    CustomerSources'Data' -> Maybe SourceTypeKlarna
customerSources'Data'Klarna :: (GHC.Maybe.Maybe SourceTypeKlarna),
    -- | last4: The last four digits of the bank account number.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    CustomerSources'Data' -> Maybe Text
customerSources'Data'Last4 :: (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.
    CustomerSources'Data' -> Maybe Bool
customerSources'Data'Livemode :: (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.
    CustomerSources'Data' -> Maybe Object
customerSources'Data'Metadata :: (GHC.Maybe.Maybe Data.Aeson.Types.Internal.Object),
    -- | multibanco
    CustomerSources'Data' -> Maybe SourceTypeMultibanco
customerSources'Data'Multibanco :: (GHC.Maybe.Maybe SourceTypeMultibanco),
    -- | name: Cardholder name.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    CustomerSources'Data' -> Maybe Text
customerSources'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.
    CustomerSources'Data' -> Maybe CustomerSources'Data'Object'
customerSources'Data'Object :: (GHC.Maybe.Maybe CustomerSources'Data'Object'),
    -- | owner: Information about the owner of the payment instrument that may be used or required by particular source types.
    CustomerSources'Data' -> Maybe CustomerSources'Data'Owner'
customerSources'Data'Owner :: (GHC.Maybe.Maybe CustomerSources'Data'Owner'),
    -- | p24
    CustomerSources'Data' -> Maybe SourceTypeP24
customerSources'Data'P24 :: (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
    CustomerSources'Data' -> Maybe Text
customerSources'Data'Payment :: (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.
    CustomerSources'Data' -> Maybe Int
customerSources'Data'PaymentAmount :: (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.
    CustomerSources'Data' -> Maybe Text
customerSources'Data'PaymentCurrency :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | receiver:
    CustomerSources'Data' -> Maybe SourceReceiverFlow
customerSources'Data'Receiver :: (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.
    CustomerSources'Data'
-> Maybe CustomerSources'Data'Recipient'Variants
customerSources'Data'Recipient :: (GHC.Maybe.Maybe CustomerSources'Data'Recipient'Variants),
    -- | redirect:
    CustomerSources'Data' -> Maybe SourceRedirectFlow
customerSources'Data'Redirect :: (GHC.Maybe.Maybe SourceRedirectFlow),
    -- | refund_address: The refund address of this bitcoin receiver.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    CustomerSources'Data' -> Maybe Text
customerSources'Data'RefundAddress :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | 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.
    CustomerSources'Data' -> Maybe Bool
customerSources'Data'Reusable :: (GHC.Maybe.Maybe GHC.Types.Bool),
    -- | routing_number: The routing transit number for the bank account.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    CustomerSources'Data' -> Maybe Text
customerSources'Data'RoutingNumber :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | sepa_debit
    CustomerSources'Data' -> Maybe SourceTypeSepaDebit
customerSources'Data'SepaDebit :: (GHC.Maybe.Maybe SourceTypeSepaDebit),
    -- | sofort
    CustomerSources'Data' -> Maybe SourceTypeSofort
customerSources'Data'Sofort :: (GHC.Maybe.Maybe SourceTypeSofort),
    -- | source_order:
    CustomerSources'Data' -> Maybe SourceOrder
customerSources'Data'SourceOrder :: (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
    CustomerSources'Data' -> Maybe Text
customerSources'Data'StatementDescriptor :: (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
    CustomerSources'Data' -> Maybe Text
customerSources'Data'Status :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | three_d_secure
    CustomerSources'Data' -> Maybe SourceTypeThreeDSecure
customerSources'Data'ThreeDSecure :: (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
    CustomerSources'Data' -> Maybe Text
customerSources'Data'TokenizationMethod :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | 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.
    CustomerSources'Data' -> Maybe CustomerSources'Data'Transactions'
customerSources'Data'Transactions :: (GHC.Maybe.Maybe CustomerSources'Data'Transactions'),
    -- | type: The \`type\` of the source. The \`type\` is a payment method, one of \`ach_credit_transfer\`, \`ach_debit\`, \`alipay\`, \`bancontact\`, \`card\`, \`card_present\`, \`eps\`, \`giropay\`, \`ideal\`, \`multibanco\`, \`klarna\`, \`p24\`, \`sepa_debit\`, \`sofort\`, \`three_d_secure\`, or \`wechat\`. An additional hash is included on the source with a name matching this value. It contains additional information specific to the [payment method](https:\/\/stripe.com\/docs\/sources) used.
    CustomerSources'Data' -> Maybe CustomerSources'Data'Type'
customerSources'Data'Type :: (GHC.Maybe.Maybe CustomerSources'Data'Type'),
    -- | uncaptured_funds: This receiver contains uncaptured funds that can be used for a payment or refunded.
    CustomerSources'Data' -> Maybe Bool
customerSources'Data'UncapturedFunds :: (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
    CustomerSources'Data' -> Maybe Text
customerSources'Data'Usage :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | used: Whether this Alipay account object has ever been used for a payment.
    CustomerSources'Data' -> Maybe Bool
customerSources'Data'Used :: (GHC.Maybe.Maybe GHC.Types.Bool),
    -- | used_for_payment: Indicate if this source is used for payment.
    CustomerSources'Data' -> Maybe Bool
customerSources'Data'UsedForPayment :: (GHC.Maybe.Maybe GHC.Types.Bool),
    -- | username: The username for the Alipay account.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    CustomerSources'Data' -> Maybe Text
customerSources'Data'Username :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | wechat
    CustomerSources'Data' -> Maybe SourceTypeWechat
customerSources'Data'Wechat :: (GHC.Maybe.Maybe SourceTypeWechat)
  }
  deriving
    ( Int -> CustomerSources'Data' -> ShowS
[CustomerSources'Data'] -> ShowS
CustomerSources'Data' -> String
(Int -> CustomerSources'Data' -> ShowS)
-> (CustomerSources'Data' -> String)
-> ([CustomerSources'Data'] -> ShowS)
-> Show CustomerSources'Data'
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CustomerSources'Data'] -> ShowS
$cshowList :: [CustomerSources'Data'] -> ShowS
show :: CustomerSources'Data' -> String
$cshow :: CustomerSources'Data' -> String
showsPrec :: Int -> CustomerSources'Data' -> ShowS
$cshowsPrec :: Int -> CustomerSources'Data' -> ShowS
GHC.Show.Show,
      CustomerSources'Data' -> CustomerSources'Data' -> Bool
(CustomerSources'Data' -> CustomerSources'Data' -> Bool)
-> (CustomerSources'Data' -> CustomerSources'Data' -> Bool)
-> Eq CustomerSources'Data'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CustomerSources'Data' -> CustomerSources'Data' -> Bool
$c/= :: CustomerSources'Data' -> CustomerSources'Data' -> Bool
== :: CustomerSources'Data' -> CustomerSources'Data' -> Bool
$c== :: CustomerSources'Data' -> CustomerSources'Data' -> Bool
GHC.Classes.Eq
    )

instance Data.Aeson.Types.ToJSON.ToJSON CustomerSources'Data' where
  toJSON :: CustomerSources'Data' -> Value
toJSON CustomerSources'Data'
obj = [Pair] -> Value
Data.Aeson.Types.Internal.object (Text
"account" Text -> Maybe CustomerSources'Data'Account'Variants -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= CustomerSources'Data'
-> Maybe CustomerSources'Data'Account'Variants
customerSources'Data'Account CustomerSources'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..= CustomerSources'Data' -> Maybe Text
customerSources'Data'AccountHolderName CustomerSources'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..= CustomerSources'Data' -> Maybe Text
customerSources'Data'AccountHolderType CustomerSources'Data'
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..= CustomerSources'Data' -> Maybe SourceTypeAchCreditTransfer
customerSources'Data'AchCreditTransfer CustomerSources'Data'
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..= CustomerSources'Data' -> Maybe SourceTypeAchDebit
customerSources'Data'AchDebit CustomerSources'Data'
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..= CustomerSources'Data' -> Maybe SourceTypeAcssDebit
customerSources'Data'AcssDebit CustomerSources'Data'
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..= CustomerSources'Data' -> Maybe Bool
customerSources'Data'Active CustomerSources'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..= CustomerSources'Data' -> Maybe Text
customerSources'Data'AddressCity CustomerSources'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..= CustomerSources'Data' -> Maybe Text
customerSources'Data'AddressCountry CustomerSources'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..= CustomerSources'Data' -> Maybe Text
customerSources'Data'AddressLine1 CustomerSources'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..= CustomerSources'Data' -> Maybe Text
customerSources'Data'AddressLine1Check CustomerSources'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..= CustomerSources'Data' -> Maybe Text
customerSources'Data'AddressLine2 CustomerSources'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..= CustomerSources'Data' -> Maybe Text
customerSources'Data'AddressState CustomerSources'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..= CustomerSources'Data' -> Maybe Text
customerSources'Data'AddressZip CustomerSources'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..= CustomerSources'Data' -> Maybe Text
customerSources'Data'AddressZipCheck CustomerSources'Data'
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..= CustomerSources'Data' -> Maybe SourceTypeAlipay
customerSources'Data'Alipay CustomerSources'Data'
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..= CustomerSources'Data' -> Maybe Int
customerSources'Data'Amount CustomerSources'Data'
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..= CustomerSources'Data' -> Maybe Int
customerSources'Data'AmountReceived CustomerSources'Data'
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..= CustomerSources'Data' -> Maybe SourceTypeAuBecsDebit
customerSources'Data'AuBecsDebit CustomerSources'Data'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"available_payout_methods" Text
-> Maybe [CustomerSources'Data'AvailablePayoutMethods'] -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= CustomerSources'Data'
-> Maybe [CustomerSources'Data'AvailablePayoutMethods']
customerSources'Data'AvailablePayoutMethods CustomerSources'Data'
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..= CustomerSources'Data' -> Maybe SourceTypeBancontact
customerSources'Data'Bancontact CustomerSources'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..= CustomerSources'Data' -> Maybe Text
customerSources'Data'BankName CustomerSources'Data'
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..= CustomerSources'Data' -> Maybe Int
customerSources'Data'BitcoinAmount CustomerSources'Data'
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..= CustomerSources'Data' -> Maybe Int
customerSources'Data'BitcoinAmountReceived CustomerSources'Data'
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..= CustomerSources'Data' -> Maybe Text
customerSources'Data'BitcoinUri CustomerSources'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..= CustomerSources'Data' -> Maybe Text
customerSources'Data'Brand CustomerSources'Data'
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..= CustomerSources'Data' -> Maybe SourceTypeCard
customerSources'Data'Card CustomerSources'Data'
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..= CustomerSources'Data' -> Maybe SourceTypeCardPresent
customerSources'Data'CardPresent CustomerSources'Data'
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..= CustomerSources'Data' -> Maybe Text
customerSources'Data'ClientSecret CustomerSources'Data'
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..= CustomerSources'Data' -> Maybe SourceCodeVerificationFlow
customerSources'Data'CodeVerification CustomerSources'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..= CustomerSources'Data' -> Maybe Text
customerSources'Data'Country CustomerSources'Data'
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..= CustomerSources'Data' -> Maybe Int
customerSources'Data'Created CustomerSources'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..= CustomerSources'Data' -> Maybe Text
customerSources'Data'Currency CustomerSources'Data'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"customer" Text -> Maybe CustomerSources'Data'Customer'Variants -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= CustomerSources'Data'
-> Maybe CustomerSources'Data'Customer'Variants
customerSources'Data'Customer CustomerSources'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..= CustomerSources'Data' -> Maybe Text
customerSources'Data'CvcCheck CustomerSources'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..= CustomerSources'Data' -> Maybe Bool
customerSources'Data'DefaultForCurrency CustomerSources'Data'
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..= CustomerSources'Data' -> Maybe Text
customerSources'Data'Description CustomerSources'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..= CustomerSources'Data' -> Maybe Text
customerSources'Data'DynamicLast4 CustomerSources'Data'
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..= CustomerSources'Data' -> Maybe Text
customerSources'Data'Email CustomerSources'Data'
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..= CustomerSources'Data' -> Maybe SourceTypeEps
customerSources'Data'Eps CustomerSources'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..= CustomerSources'Data' -> Maybe Int
customerSources'Data'ExpMonth CustomerSources'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..= CustomerSources'Data' -> Maybe Int
customerSources'Data'ExpYear CustomerSources'Data'
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..= CustomerSources'Data' -> Maybe Bool
customerSources'Data'Filled CustomerSources'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..= CustomerSources'Data' -> Maybe Text
customerSources'Data'Fingerprint CustomerSources'Data'
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..= CustomerSources'Data' -> Maybe Text
customerSources'Data'Flow CustomerSources'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..= CustomerSources'Data' -> Maybe Text
customerSources'Data'Funding CustomerSources'Data'
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..= CustomerSources'Data' -> Maybe SourceTypeGiropay
customerSources'Data'Giropay CustomerSources'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..= CustomerSources'Data' -> Maybe Text
customerSources'Data'Id CustomerSources'Data'
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..= CustomerSources'Data' -> Maybe SourceTypeIdeal
customerSources'Data'Ideal CustomerSources'Data'
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..= CustomerSources'Data' -> Maybe Text
customerSources'Data'InboundAddress CustomerSources'Data'
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..= CustomerSources'Data' -> Maybe SourceTypeKlarna
customerSources'Data'Klarna CustomerSources'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..= CustomerSources'Data' -> Maybe Text
customerSources'Data'Last4 CustomerSources'Data'
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..= CustomerSources'Data' -> Maybe Bool
customerSources'Data'Livemode CustomerSources'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..= CustomerSources'Data' -> Maybe Object
customerSources'Data'Metadata CustomerSources'Data'
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..= CustomerSources'Data' -> Maybe SourceTypeMultibanco
customerSources'Data'Multibanco CustomerSources'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..= CustomerSources'Data' -> Maybe Text
customerSources'Data'Name CustomerSources'Data'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"object" Text -> Maybe CustomerSources'Data'Object' -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= CustomerSources'Data' -> Maybe CustomerSources'Data'Object'
customerSources'Data'Object CustomerSources'Data'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"owner" Text -> Maybe CustomerSources'Data'Owner' -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= CustomerSources'Data' -> Maybe CustomerSources'Data'Owner'
customerSources'Data'Owner CustomerSources'Data'
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..= CustomerSources'Data' -> Maybe SourceTypeP24
customerSources'Data'P24 CustomerSources'Data'
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..= CustomerSources'Data' -> Maybe Text
customerSources'Data'Payment CustomerSources'Data'
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..= CustomerSources'Data' -> Maybe Int
customerSources'Data'PaymentAmount CustomerSources'Data'
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..= CustomerSources'Data' -> Maybe Text
customerSources'Data'PaymentCurrency CustomerSources'Data'
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..= CustomerSources'Data' -> Maybe SourceReceiverFlow
customerSources'Data'Receiver CustomerSources'Data'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"recipient" Text -> Maybe CustomerSources'Data'Recipient'Variants -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= CustomerSources'Data'
-> Maybe CustomerSources'Data'Recipient'Variants
customerSources'Data'Recipient CustomerSources'Data'
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..= CustomerSources'Data' -> Maybe SourceRedirectFlow
customerSources'Data'Redirect CustomerSources'Data'
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..= CustomerSources'Data' -> Maybe Text
customerSources'Data'RefundAddress CustomerSources'Data'
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..= CustomerSources'Data' -> Maybe Bool
customerSources'Data'Reusable CustomerSources'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..= CustomerSources'Data' -> Maybe Text
customerSources'Data'RoutingNumber CustomerSources'Data'
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..= CustomerSources'Data' -> Maybe SourceTypeSepaDebit
customerSources'Data'SepaDebit CustomerSources'Data'
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..= CustomerSources'Data' -> Maybe SourceTypeSofort
customerSources'Data'Sofort CustomerSources'Data'
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..= CustomerSources'Data' -> Maybe SourceOrder
customerSources'Data'SourceOrder CustomerSources'Data'
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..= CustomerSources'Data' -> Maybe Text
customerSources'Data'StatementDescriptor CustomerSources'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..= CustomerSources'Data' -> Maybe Text
customerSources'Data'Status CustomerSources'Data'
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..= CustomerSources'Data' -> Maybe SourceTypeThreeDSecure
customerSources'Data'ThreeDSecure CustomerSources'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..= CustomerSources'Data' -> Maybe Text
customerSources'Data'TokenizationMethod CustomerSources'Data'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"transactions" Text -> Maybe CustomerSources'Data'Transactions' -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= CustomerSources'Data' -> Maybe CustomerSources'Data'Transactions'
customerSources'Data'Transactions CustomerSources'Data'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"type" Text -> Maybe CustomerSources'Data'Type' -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= CustomerSources'Data' -> Maybe CustomerSources'Data'Type'
customerSources'Data'Type CustomerSources'Data'
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..= CustomerSources'Data' -> Maybe Bool
customerSources'Data'UncapturedFunds CustomerSources'Data'
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..= CustomerSources'Data' -> Maybe Text
customerSources'Data'Usage CustomerSources'Data'
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..= CustomerSources'Data' -> Maybe Bool
customerSources'Data'Used CustomerSources'Data'
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..= CustomerSources'Data' -> Maybe Bool
customerSources'Data'UsedForPayment CustomerSources'Data'
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..= CustomerSources'Data' -> Maybe Text
customerSources'Data'Username CustomerSources'Data'
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..= CustomerSources'Data' -> Maybe SourceTypeWechat
customerSources'Data'Wechat CustomerSources'Data'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: CustomerSources'Data' -> Encoding
toEncoding CustomerSources'Data'
obj = Series -> Encoding
Data.Aeson.Encoding.Internal.pairs ((Text
"account" Text -> Maybe CustomerSources'Data'Account'Variants -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= CustomerSources'Data'
-> Maybe CustomerSources'Data'Account'Variants
customerSources'Data'Account CustomerSources'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..= CustomerSources'Data' -> Maybe Text
customerSources'Data'AccountHolderName CustomerSources'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..= CustomerSources'Data' -> Maybe Text
customerSources'Data'AccountHolderType CustomerSources'Data'
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..= CustomerSources'Data' -> Maybe SourceTypeAchCreditTransfer
customerSources'Data'AchCreditTransfer CustomerSources'Data'
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..= CustomerSources'Data' -> Maybe SourceTypeAchDebit
customerSources'Data'AchDebit CustomerSources'Data'
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..= CustomerSources'Data' -> Maybe SourceTypeAcssDebit
customerSources'Data'AcssDebit CustomerSources'Data'
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..= CustomerSources'Data' -> Maybe Bool
customerSources'Data'Active CustomerSources'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..= CustomerSources'Data' -> Maybe Text
customerSources'Data'AddressCity CustomerSources'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..= CustomerSources'Data' -> Maybe Text
customerSources'Data'AddressCountry CustomerSources'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..= CustomerSources'Data' -> Maybe Text
customerSources'Data'AddressLine1 CustomerSources'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..= CustomerSources'Data' -> Maybe Text
customerSources'Data'AddressLine1Check CustomerSources'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..= CustomerSources'Data' -> Maybe Text
customerSources'Data'AddressLine2 CustomerSources'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..= CustomerSources'Data' -> Maybe Text
customerSources'Data'AddressState CustomerSources'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..= CustomerSources'Data' -> Maybe Text
customerSources'Data'AddressZip CustomerSources'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..= CustomerSources'Data' -> Maybe Text
customerSources'Data'AddressZipCheck CustomerSources'Data'
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..= CustomerSources'Data' -> Maybe SourceTypeAlipay
customerSources'Data'Alipay CustomerSources'Data'
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..= CustomerSources'Data' -> Maybe Int
customerSources'Data'Amount CustomerSources'Data'
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..= CustomerSources'Data' -> Maybe Int
customerSources'Data'AmountReceived CustomerSources'Data'
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..= CustomerSources'Data' -> Maybe SourceTypeAuBecsDebit
customerSources'Data'AuBecsDebit CustomerSources'Data'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"available_payout_methods" Text
-> Maybe [CustomerSources'Data'AvailablePayoutMethods'] -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= CustomerSources'Data'
-> Maybe [CustomerSources'Data'AvailablePayoutMethods']
customerSources'Data'AvailablePayoutMethods CustomerSources'Data'
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..= CustomerSources'Data' -> Maybe SourceTypeBancontact
customerSources'Data'Bancontact CustomerSources'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..= CustomerSources'Data' -> Maybe Text
customerSources'Data'BankName CustomerSources'Data'
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..= CustomerSources'Data' -> Maybe Int
customerSources'Data'BitcoinAmount CustomerSources'Data'
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..= CustomerSources'Data' -> Maybe Int
customerSources'Data'BitcoinAmountReceived CustomerSources'Data'
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..= CustomerSources'Data' -> Maybe Text
customerSources'Data'BitcoinUri CustomerSources'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..= CustomerSources'Data' -> Maybe Text
customerSources'Data'Brand CustomerSources'Data'
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..= CustomerSources'Data' -> Maybe SourceTypeCard
customerSources'Data'Card CustomerSources'Data'
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..= CustomerSources'Data' -> Maybe SourceTypeCardPresent
customerSources'Data'CardPresent CustomerSources'Data'
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..= CustomerSources'Data' -> Maybe Text
customerSources'Data'ClientSecret CustomerSources'Data'
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..= CustomerSources'Data' -> Maybe SourceCodeVerificationFlow
customerSources'Data'CodeVerification CustomerSources'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..= CustomerSources'Data' -> Maybe Text
customerSources'Data'Country CustomerSources'Data'
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..= CustomerSources'Data' -> Maybe Int
customerSources'Data'Created CustomerSources'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..= CustomerSources'Data' -> Maybe Text
customerSources'Data'Currency CustomerSources'Data'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"customer" Text -> Maybe CustomerSources'Data'Customer'Variants -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= CustomerSources'Data'
-> Maybe CustomerSources'Data'Customer'Variants
customerSources'Data'Customer CustomerSources'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..= CustomerSources'Data' -> Maybe Text
customerSources'Data'CvcCheck CustomerSources'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..= CustomerSources'Data' -> Maybe Bool
customerSources'Data'DefaultForCurrency CustomerSources'Data'
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..= CustomerSources'Data' -> Maybe Text
customerSources'Data'Description CustomerSources'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..= CustomerSources'Data' -> Maybe Text
customerSources'Data'DynamicLast4 CustomerSources'Data'
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..= CustomerSources'Data' -> Maybe Text
customerSources'Data'Email CustomerSources'Data'
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..= CustomerSources'Data' -> Maybe SourceTypeEps
customerSources'Data'Eps CustomerSources'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..= CustomerSources'Data' -> Maybe Int
customerSources'Data'ExpMonth CustomerSources'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..= CustomerSources'Data' -> Maybe Int
customerSources'Data'ExpYear CustomerSources'Data'
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..= CustomerSources'Data' -> Maybe Bool
customerSources'Data'Filled CustomerSources'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..= CustomerSources'Data' -> Maybe Text
customerSources'Data'Fingerprint CustomerSources'Data'
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..= CustomerSources'Data' -> Maybe Text
customerSources'Data'Flow CustomerSources'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..= CustomerSources'Data' -> Maybe Text
customerSources'Data'Funding CustomerSources'Data'
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..= CustomerSources'Data' -> Maybe SourceTypeGiropay
customerSources'Data'Giropay CustomerSources'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..= CustomerSources'Data' -> Maybe Text
customerSources'Data'Id CustomerSources'Data'
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..= CustomerSources'Data' -> Maybe SourceTypeIdeal
customerSources'Data'Ideal CustomerSources'Data'
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..= CustomerSources'Data' -> Maybe Text
customerSources'Data'InboundAddress CustomerSources'Data'
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..= CustomerSources'Data' -> Maybe SourceTypeKlarna
customerSources'Data'Klarna CustomerSources'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..= CustomerSources'Data' -> Maybe Text
customerSources'Data'Last4 CustomerSources'Data'
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..= CustomerSources'Data' -> Maybe Bool
customerSources'Data'Livemode CustomerSources'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..= CustomerSources'Data' -> Maybe Object
customerSources'Data'Metadata CustomerSources'Data'
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..= CustomerSources'Data' -> Maybe SourceTypeMultibanco
customerSources'Data'Multibanco CustomerSources'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..= CustomerSources'Data' -> Maybe Text
customerSources'Data'Name CustomerSources'Data'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"object" Text -> Maybe CustomerSources'Data'Object' -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= CustomerSources'Data' -> Maybe CustomerSources'Data'Object'
customerSources'Data'Object CustomerSources'Data'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"owner" Text -> Maybe CustomerSources'Data'Owner' -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= CustomerSources'Data' -> Maybe CustomerSources'Data'Owner'
customerSources'Data'Owner CustomerSources'Data'
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..= CustomerSources'Data' -> Maybe SourceTypeP24
customerSources'Data'P24 CustomerSources'Data'
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..= CustomerSources'Data' -> Maybe Text
customerSources'Data'Payment CustomerSources'Data'
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..= CustomerSources'Data' -> Maybe Int
customerSources'Data'PaymentAmount CustomerSources'Data'
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..= CustomerSources'Data' -> Maybe Text
customerSources'Data'PaymentCurrency CustomerSources'Data'
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..= CustomerSources'Data' -> Maybe SourceReceiverFlow
customerSources'Data'Receiver CustomerSources'Data'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"recipient" Text -> Maybe CustomerSources'Data'Recipient'Variants -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= CustomerSources'Data'
-> Maybe CustomerSources'Data'Recipient'Variants
customerSources'Data'Recipient CustomerSources'Data'
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..= CustomerSources'Data' -> Maybe SourceRedirectFlow
customerSources'Data'Redirect CustomerSources'Data'
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..= CustomerSources'Data' -> Maybe Text
customerSources'Data'RefundAddress CustomerSources'Data'
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..= CustomerSources'Data' -> Maybe Bool
customerSources'Data'Reusable CustomerSources'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..= CustomerSources'Data' -> Maybe Text
customerSources'Data'RoutingNumber CustomerSources'Data'
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..= CustomerSources'Data' -> Maybe SourceTypeSepaDebit
customerSources'Data'SepaDebit CustomerSources'Data'
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..= CustomerSources'Data' -> Maybe SourceTypeSofort
customerSources'Data'Sofort CustomerSources'Data'
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..= CustomerSources'Data' -> Maybe SourceOrder
customerSources'Data'SourceOrder CustomerSources'Data'
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..= CustomerSources'Data' -> Maybe Text
customerSources'Data'StatementDescriptor CustomerSources'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..= CustomerSources'Data' -> Maybe Text
customerSources'Data'Status CustomerSources'Data'
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..= CustomerSources'Data' -> Maybe SourceTypeThreeDSecure
customerSources'Data'ThreeDSecure CustomerSources'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..= CustomerSources'Data' -> Maybe Text
customerSources'Data'TokenizationMethod CustomerSources'Data'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"transactions" Text -> Maybe CustomerSources'Data'Transactions' -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= CustomerSources'Data' -> Maybe CustomerSources'Data'Transactions'
customerSources'Data'Transactions CustomerSources'Data'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"type" Text -> Maybe CustomerSources'Data'Type' -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= CustomerSources'Data' -> Maybe CustomerSources'Data'Type'
customerSources'Data'Type CustomerSources'Data'
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..= CustomerSources'Data' -> Maybe Bool
customerSources'Data'UncapturedFunds CustomerSources'Data'
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..= CustomerSources'Data' -> Maybe Text
customerSources'Data'Usage CustomerSources'Data'
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..= CustomerSources'Data' -> Maybe Bool
customerSources'Data'Used CustomerSources'Data'
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..= CustomerSources'Data' -> Maybe Bool
customerSources'Data'UsedForPayment CustomerSources'Data'
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..= CustomerSources'Data' -> Maybe Text
customerSources'Data'Username CustomerSources'Data'
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..= CustomerSources'Data' -> Maybe SourceTypeWechat
customerSources'Data'Wechat CustomerSources'Data'
obj)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))

instance Data.Aeson.Types.FromJSON.FromJSON CustomerSources'Data' where
  parseJSON :: Value -> Parser CustomerSources'Data'
parseJSON = String
-> (Object -> Parser CustomerSources'Data')
-> Value
-> Parser CustomerSources'Data'
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.Aeson.Types.FromJSON.withObject String
"CustomerSources'Data'" (\Object
obj -> (((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((Maybe CustomerSources'Data'Account'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 [CustomerSources'Data'AvailablePayoutMethods']
 -> Maybe SourceTypeBancontact
 -> Maybe Text
 -> Maybe Int
 -> Maybe Int
 -> Maybe Text
 -> Maybe Text
 -> Maybe SourceTypeCard
 -> Maybe SourceTypeCardPresent
 -> Maybe Text
 -> Maybe SourceCodeVerificationFlow
 -> Maybe Text
 -> Maybe Int
 -> Maybe Text
 -> Maybe CustomerSources'Data'Customer'Variants
 -> Maybe Text
 -> Maybe Bool
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe SourceTypeEps
 -> Maybe Int
 -> Maybe Int
 -> Maybe Bool
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe SourceTypeGiropay
 -> Maybe Text
 -> Maybe SourceTypeIdeal
 -> Maybe Text
 -> Maybe SourceTypeKlarna
 -> Maybe Text
 -> Maybe Bool
 -> Maybe Object
 -> Maybe SourceTypeMultibanco
 -> Maybe Text
 -> Maybe CustomerSources'Data'Object'
 -> Maybe CustomerSources'Data'Owner'
 -> Maybe SourceTypeP24
 -> Maybe Text
 -> Maybe Int
 -> Maybe Text
 -> Maybe SourceReceiverFlow
 -> Maybe CustomerSources'Data'Recipient'Variants
 -> Maybe SourceRedirectFlow
 -> Maybe Text
 -> Maybe Bool
 -> Maybe Text
 -> Maybe SourceTypeSepaDebit
 -> Maybe SourceTypeSofort
 -> Maybe SourceOrder
 -> Maybe Text
 -> Maybe Text
 -> Maybe SourceTypeThreeDSecure
 -> Maybe Text
 -> Maybe CustomerSources'Data'Transactions'
 -> Maybe CustomerSources'Data'Type'
 -> Maybe Bool
 -> Maybe Text
 -> Maybe Bool
 -> Maybe Bool
 -> Maybe Text
 -> Maybe SourceTypeWechat
 -> CustomerSources'Data')
-> Parser
     (Maybe CustomerSources'Data'Account'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 [CustomerSources'Data'AvailablePayoutMethods']
      -> Maybe SourceTypeBancontact
      -> Maybe Text
      -> Maybe Int
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeCard
      -> Maybe SourceTypeCardPresent
      -> Maybe Text
      -> Maybe SourceCodeVerificationFlow
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe CustomerSources'Data'Customer'Variants
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeEps
      -> Maybe Int
      -> Maybe Int
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeGiropay
      -> Maybe Text
      -> Maybe SourceTypeIdeal
      -> Maybe Text
      -> Maybe SourceTypeKlarna
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Object
      -> Maybe SourceTypeMultibanco
      -> Maybe Text
      -> Maybe CustomerSources'Data'Object'
      -> Maybe CustomerSources'Data'Owner'
      -> Maybe SourceTypeP24
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe SourceReceiverFlow
      -> Maybe CustomerSources'Data'Recipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe CustomerSources'Data'Transactions'
      -> Maybe CustomerSources'Data'Type'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> CustomerSources'Data')
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure Maybe CustomerSources'Data'Account'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 [CustomerSources'Data'AvailablePayoutMethods']
-> Maybe SourceTypeBancontact
-> Maybe Text
-> Maybe Int
-> Maybe Int
-> Maybe Text
-> Maybe Text
-> Maybe SourceTypeCard
-> Maybe SourceTypeCardPresent
-> Maybe Text
-> Maybe SourceCodeVerificationFlow
-> Maybe Text
-> Maybe Int
-> Maybe Text
-> Maybe CustomerSources'Data'Customer'Variants
-> Maybe Text
-> Maybe Bool
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe SourceTypeEps
-> Maybe Int
-> Maybe Int
-> Maybe Bool
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe SourceTypeGiropay
-> Maybe Text
-> Maybe SourceTypeIdeal
-> Maybe Text
-> Maybe SourceTypeKlarna
-> Maybe Text
-> Maybe Bool
-> Maybe Object
-> Maybe SourceTypeMultibanco
-> Maybe Text
-> Maybe CustomerSources'Data'Object'
-> Maybe CustomerSources'Data'Owner'
-> Maybe SourceTypeP24
-> Maybe Text
-> Maybe Int
-> Maybe Text
-> Maybe SourceReceiverFlow
-> Maybe CustomerSources'Data'Recipient'Variants
-> Maybe SourceRedirectFlow
-> Maybe Text
-> Maybe Bool
-> Maybe Text
-> Maybe SourceTypeSepaDebit
-> Maybe SourceTypeSofort
-> Maybe SourceOrder
-> Maybe Text
-> Maybe Text
-> Maybe SourceTypeThreeDSecure
-> Maybe Text
-> Maybe CustomerSources'Data'Transactions'
-> Maybe CustomerSources'Data'Type'
-> Maybe Bool
-> Maybe Text
-> Maybe Bool
-> Maybe Bool
-> Maybe Text
-> Maybe SourceTypeWechat
-> CustomerSources'Data'
CustomerSources'Data' Parser
  (Maybe CustomerSources'Data'Account'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 [CustomerSources'Data'AvailablePayoutMethods']
   -> Maybe SourceTypeBancontact
   -> Maybe Text
   -> Maybe Int
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeCard
   -> Maybe SourceTypeCardPresent
   -> Maybe Text
   -> Maybe SourceCodeVerificationFlow
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe CustomerSources'Data'Customer'Variants
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeEps
   -> Maybe Int
   -> Maybe Int
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeGiropay
   -> Maybe Text
   -> Maybe SourceTypeIdeal
   -> Maybe Text
   -> Maybe SourceTypeKlarna
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Object
   -> Maybe SourceTypeMultibanco
   -> Maybe Text
   -> Maybe CustomerSources'Data'Object'
   -> Maybe CustomerSources'Data'Owner'
   -> Maybe SourceTypeP24
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe SourceReceiverFlow
   -> Maybe CustomerSources'Data'Recipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe CustomerSources'Data'Transactions'
   -> Maybe CustomerSources'Data'Type'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> CustomerSources'Data')
-> Parser (Maybe CustomerSources'Data'Account'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 [CustomerSources'Data'AvailablePayoutMethods']
      -> Maybe SourceTypeBancontact
      -> Maybe Text
      -> Maybe Int
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeCard
      -> Maybe SourceTypeCardPresent
      -> Maybe Text
      -> Maybe SourceCodeVerificationFlow
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe CustomerSources'Data'Customer'Variants
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeEps
      -> Maybe Int
      -> Maybe Int
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeGiropay
      -> Maybe Text
      -> Maybe SourceTypeIdeal
      -> Maybe Text
      -> Maybe SourceTypeKlarna
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Object
      -> Maybe SourceTypeMultibanco
      -> Maybe Text
      -> Maybe CustomerSources'Data'Object'
      -> Maybe CustomerSources'Data'Owner'
      -> Maybe SourceTypeP24
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe SourceReceiverFlow
      -> Maybe CustomerSources'Data'Recipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe CustomerSources'Data'Transactions'
      -> Maybe CustomerSources'Data'Type'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> CustomerSources'Data')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text -> Parser (Maybe CustomerSources'Data'Account'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 [CustomerSources'Data'AvailablePayoutMethods']
   -> Maybe SourceTypeBancontact
   -> Maybe Text
   -> Maybe Int
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeCard
   -> Maybe SourceTypeCardPresent
   -> Maybe Text
   -> Maybe SourceCodeVerificationFlow
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe CustomerSources'Data'Customer'Variants
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeEps
   -> Maybe Int
   -> Maybe Int
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeGiropay
   -> Maybe Text
   -> Maybe SourceTypeIdeal
   -> Maybe Text
   -> Maybe SourceTypeKlarna
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Object
   -> Maybe SourceTypeMultibanco
   -> Maybe Text
   -> Maybe CustomerSources'Data'Object'
   -> Maybe CustomerSources'Data'Owner'
   -> Maybe SourceTypeP24
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe SourceReceiverFlow
   -> Maybe CustomerSources'Data'Recipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe CustomerSources'Data'Transactions'
   -> Maybe CustomerSources'Data'Type'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> CustomerSources'Data')
-> 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 [CustomerSources'Data'AvailablePayoutMethods']
      -> Maybe SourceTypeBancontact
      -> Maybe Text
      -> Maybe Int
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeCard
      -> Maybe SourceTypeCardPresent
      -> Maybe Text
      -> Maybe SourceCodeVerificationFlow
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe CustomerSources'Data'Customer'Variants
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeEps
      -> Maybe Int
      -> Maybe Int
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeGiropay
      -> Maybe Text
      -> Maybe SourceTypeIdeal
      -> Maybe Text
      -> Maybe SourceTypeKlarna
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Object
      -> Maybe SourceTypeMultibanco
      -> Maybe Text
      -> Maybe CustomerSources'Data'Object'
      -> Maybe CustomerSources'Data'Owner'
      -> Maybe SourceTypeP24
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe SourceReceiverFlow
      -> Maybe CustomerSources'Data'Recipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe CustomerSources'Data'Transactions'
      -> Maybe CustomerSources'Data'Type'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> CustomerSources'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 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 [CustomerSources'Data'AvailablePayoutMethods']
   -> Maybe SourceTypeBancontact
   -> Maybe Text
   -> Maybe Int
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeCard
   -> Maybe SourceTypeCardPresent
   -> Maybe Text
   -> Maybe SourceCodeVerificationFlow
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe CustomerSources'Data'Customer'Variants
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeEps
   -> Maybe Int
   -> Maybe Int
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeGiropay
   -> Maybe Text
   -> Maybe SourceTypeIdeal
   -> Maybe Text
   -> Maybe SourceTypeKlarna
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Object
   -> Maybe SourceTypeMultibanco
   -> Maybe Text
   -> Maybe CustomerSources'Data'Object'
   -> Maybe CustomerSources'Data'Owner'
   -> Maybe SourceTypeP24
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe SourceReceiverFlow
   -> Maybe CustomerSources'Data'Recipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe CustomerSources'Data'Transactions'
   -> Maybe CustomerSources'Data'Type'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> CustomerSources'Data')
-> 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 [CustomerSources'Data'AvailablePayoutMethods']
      -> Maybe SourceTypeBancontact
      -> Maybe Text
      -> Maybe Int
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeCard
      -> Maybe SourceTypeCardPresent
      -> Maybe Text
      -> Maybe SourceCodeVerificationFlow
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe CustomerSources'Data'Customer'Variants
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeEps
      -> Maybe Int
      -> Maybe Int
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeGiropay
      -> Maybe Text
      -> Maybe SourceTypeIdeal
      -> Maybe Text
      -> Maybe SourceTypeKlarna
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Object
      -> Maybe SourceTypeMultibanco
      -> Maybe Text
      -> Maybe CustomerSources'Data'Object'
      -> Maybe CustomerSources'Data'Owner'
      -> Maybe SourceTypeP24
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe SourceReceiverFlow
      -> Maybe CustomerSources'Data'Recipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe CustomerSources'Data'Transactions'
      -> Maybe CustomerSources'Data'Type'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> CustomerSources'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 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 [CustomerSources'Data'AvailablePayoutMethods']
   -> Maybe SourceTypeBancontact
   -> Maybe Text
   -> Maybe Int
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeCard
   -> Maybe SourceTypeCardPresent
   -> Maybe Text
   -> Maybe SourceCodeVerificationFlow
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe CustomerSources'Data'Customer'Variants
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeEps
   -> Maybe Int
   -> Maybe Int
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeGiropay
   -> Maybe Text
   -> Maybe SourceTypeIdeal
   -> Maybe Text
   -> Maybe SourceTypeKlarna
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Object
   -> Maybe SourceTypeMultibanco
   -> Maybe Text
   -> Maybe CustomerSources'Data'Object'
   -> Maybe CustomerSources'Data'Owner'
   -> Maybe SourceTypeP24
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe SourceReceiverFlow
   -> Maybe CustomerSources'Data'Recipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe CustomerSources'Data'Transactions'
   -> Maybe CustomerSources'Data'Type'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> CustomerSources'Data')
-> 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 [CustomerSources'Data'AvailablePayoutMethods']
      -> Maybe SourceTypeBancontact
      -> Maybe Text
      -> Maybe Int
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeCard
      -> Maybe SourceTypeCardPresent
      -> Maybe Text
      -> Maybe SourceCodeVerificationFlow
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe CustomerSources'Data'Customer'Variants
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeEps
      -> Maybe Int
      -> Maybe Int
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeGiropay
      -> Maybe Text
      -> Maybe SourceTypeIdeal
      -> Maybe Text
      -> Maybe SourceTypeKlarna
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Object
      -> Maybe SourceTypeMultibanco
      -> Maybe Text
      -> Maybe CustomerSources'Data'Object'
      -> Maybe CustomerSources'Data'Owner'
      -> Maybe SourceTypeP24
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe SourceReceiverFlow
      -> Maybe CustomerSources'Data'Recipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe CustomerSources'Data'Transactions'
      -> Maybe CustomerSources'Data'Type'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> CustomerSources'Data')
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 [CustomerSources'Data'AvailablePayoutMethods']
   -> Maybe SourceTypeBancontact
   -> Maybe Text
   -> Maybe Int
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeCard
   -> Maybe SourceTypeCardPresent
   -> Maybe Text
   -> Maybe SourceCodeVerificationFlow
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe CustomerSources'Data'Customer'Variants
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeEps
   -> Maybe Int
   -> Maybe Int
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeGiropay
   -> Maybe Text
   -> Maybe SourceTypeIdeal
   -> Maybe Text
   -> Maybe SourceTypeKlarna
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Object
   -> Maybe SourceTypeMultibanco
   -> Maybe Text
   -> Maybe CustomerSources'Data'Object'
   -> Maybe CustomerSources'Data'Owner'
   -> Maybe SourceTypeP24
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe SourceReceiverFlow
   -> Maybe CustomerSources'Data'Recipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe CustomerSources'Data'Transactions'
   -> Maybe CustomerSources'Data'Type'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> CustomerSources'Data')
-> 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 [CustomerSources'Data'AvailablePayoutMethods']
      -> Maybe SourceTypeBancontact
      -> Maybe Text
      -> Maybe Int
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeCard
      -> Maybe SourceTypeCardPresent
      -> Maybe Text
      -> Maybe SourceCodeVerificationFlow
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe CustomerSources'Data'Customer'Variants
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeEps
      -> Maybe Int
      -> Maybe Int
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeGiropay
      -> Maybe Text
      -> Maybe SourceTypeIdeal
      -> Maybe Text
      -> Maybe SourceTypeKlarna
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Object
      -> Maybe SourceTypeMultibanco
      -> Maybe Text
      -> Maybe CustomerSources'Data'Object'
      -> Maybe CustomerSources'Data'Owner'
      -> Maybe SourceTypeP24
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe SourceReceiverFlow
      -> Maybe CustomerSources'Data'Recipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe CustomerSources'Data'Transactions'
      -> Maybe CustomerSources'Data'Type'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> CustomerSources'Data')
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 [CustomerSources'Data'AvailablePayoutMethods']
   -> Maybe SourceTypeBancontact
   -> Maybe Text
   -> Maybe Int
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeCard
   -> Maybe SourceTypeCardPresent
   -> Maybe Text
   -> Maybe SourceCodeVerificationFlow
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe CustomerSources'Data'Customer'Variants
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeEps
   -> Maybe Int
   -> Maybe Int
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeGiropay
   -> Maybe Text
   -> Maybe SourceTypeIdeal
   -> Maybe Text
   -> Maybe SourceTypeKlarna
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Object
   -> Maybe SourceTypeMultibanco
   -> Maybe Text
   -> Maybe CustomerSources'Data'Object'
   -> Maybe CustomerSources'Data'Owner'
   -> Maybe SourceTypeP24
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe SourceReceiverFlow
   -> Maybe CustomerSources'Data'Recipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe CustomerSources'Data'Transactions'
   -> Maybe CustomerSources'Data'Type'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> CustomerSources'Data')
-> 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 [CustomerSources'Data'AvailablePayoutMethods']
      -> Maybe SourceTypeBancontact
      -> Maybe Text
      -> Maybe Int
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeCard
      -> Maybe SourceTypeCardPresent
      -> Maybe Text
      -> Maybe SourceCodeVerificationFlow
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe CustomerSources'Data'Customer'Variants
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeEps
      -> Maybe Int
      -> Maybe Int
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeGiropay
      -> Maybe Text
      -> Maybe SourceTypeIdeal
      -> Maybe Text
      -> Maybe SourceTypeKlarna
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Object
      -> Maybe SourceTypeMultibanco
      -> Maybe Text
      -> Maybe CustomerSources'Data'Object'
      -> Maybe CustomerSources'Data'Owner'
      -> Maybe SourceTypeP24
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe SourceReceiverFlow
      -> Maybe CustomerSources'Data'Recipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe CustomerSources'Data'Transactions'
      -> Maybe CustomerSources'Data'Type'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> CustomerSources'Data')
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 [CustomerSources'Data'AvailablePayoutMethods']
   -> Maybe SourceTypeBancontact
   -> Maybe Text
   -> Maybe Int
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeCard
   -> Maybe SourceTypeCardPresent
   -> Maybe Text
   -> Maybe SourceCodeVerificationFlow
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe CustomerSources'Data'Customer'Variants
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeEps
   -> Maybe Int
   -> Maybe Int
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeGiropay
   -> Maybe Text
   -> Maybe SourceTypeIdeal
   -> Maybe Text
   -> Maybe SourceTypeKlarna
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Object
   -> Maybe SourceTypeMultibanco
   -> Maybe Text
   -> Maybe CustomerSources'Data'Object'
   -> Maybe CustomerSources'Data'Owner'
   -> Maybe SourceTypeP24
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe SourceReceiverFlow
   -> Maybe CustomerSources'Data'Recipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe CustomerSources'Data'Transactions'
   -> Maybe CustomerSources'Data'Type'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> CustomerSources'Data')
-> 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 [CustomerSources'Data'AvailablePayoutMethods']
      -> Maybe SourceTypeBancontact
      -> Maybe Text
      -> Maybe Int
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeCard
      -> Maybe SourceTypeCardPresent
      -> Maybe Text
      -> Maybe SourceCodeVerificationFlow
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe CustomerSources'Data'Customer'Variants
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeEps
      -> Maybe Int
      -> Maybe Int
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeGiropay
      -> Maybe Text
      -> Maybe SourceTypeIdeal
      -> Maybe Text
      -> Maybe SourceTypeKlarna
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Object
      -> Maybe SourceTypeMultibanco
      -> Maybe Text
      -> Maybe CustomerSources'Data'Object'
      -> Maybe CustomerSources'Data'Owner'
      -> Maybe SourceTypeP24
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe SourceReceiverFlow
      -> Maybe CustomerSources'Data'Recipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe CustomerSources'Data'Transactions'
      -> Maybe CustomerSources'Data'Type'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> CustomerSources'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
"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 [CustomerSources'Data'AvailablePayoutMethods']
   -> Maybe SourceTypeBancontact
   -> Maybe Text
   -> Maybe Int
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeCard
   -> Maybe SourceTypeCardPresent
   -> Maybe Text
   -> Maybe SourceCodeVerificationFlow
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe CustomerSources'Data'Customer'Variants
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeEps
   -> Maybe Int
   -> Maybe Int
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeGiropay
   -> Maybe Text
   -> Maybe SourceTypeIdeal
   -> Maybe Text
   -> Maybe SourceTypeKlarna
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Object
   -> Maybe SourceTypeMultibanco
   -> Maybe Text
   -> Maybe CustomerSources'Data'Object'
   -> Maybe CustomerSources'Data'Owner'
   -> Maybe SourceTypeP24
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe SourceReceiverFlow
   -> Maybe CustomerSources'Data'Recipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe CustomerSources'Data'Transactions'
   -> Maybe CustomerSources'Data'Type'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> CustomerSources'Data')
-> 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 [CustomerSources'Data'AvailablePayoutMethods']
      -> Maybe SourceTypeBancontact
      -> Maybe Text
      -> Maybe Int
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeCard
      -> Maybe SourceTypeCardPresent
      -> Maybe Text
      -> Maybe SourceCodeVerificationFlow
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe CustomerSources'Data'Customer'Variants
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeEps
      -> Maybe Int
      -> Maybe Int
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeGiropay
      -> Maybe Text
      -> Maybe SourceTypeIdeal
      -> Maybe Text
      -> Maybe SourceTypeKlarna
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Object
      -> Maybe SourceTypeMultibanco
      -> Maybe Text
      -> Maybe CustomerSources'Data'Object'
      -> Maybe CustomerSources'Data'Owner'
      -> Maybe SourceTypeP24
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe SourceReceiverFlow
      -> Maybe CustomerSources'Data'Recipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe CustomerSources'Data'Transactions'
      -> Maybe CustomerSources'Data'Type'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> CustomerSources'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 SourceTypeAlipay
   -> Maybe Int
   -> Maybe Int
   -> Maybe SourceTypeAuBecsDebit
   -> Maybe [CustomerSources'Data'AvailablePayoutMethods']
   -> Maybe SourceTypeBancontact
   -> Maybe Text
   -> Maybe Int
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeCard
   -> Maybe SourceTypeCardPresent
   -> Maybe Text
   -> Maybe SourceCodeVerificationFlow
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe CustomerSources'Data'Customer'Variants
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeEps
   -> Maybe Int
   -> Maybe Int
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeGiropay
   -> Maybe Text
   -> Maybe SourceTypeIdeal
   -> Maybe Text
   -> Maybe SourceTypeKlarna
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Object
   -> Maybe SourceTypeMultibanco
   -> Maybe Text
   -> Maybe CustomerSources'Data'Object'
   -> Maybe CustomerSources'Data'Owner'
   -> Maybe SourceTypeP24
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe SourceReceiverFlow
   -> Maybe CustomerSources'Data'Recipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe CustomerSources'Data'Transactions'
   -> Maybe CustomerSources'Data'Type'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> CustomerSources'Data')
-> 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 [CustomerSources'Data'AvailablePayoutMethods']
      -> Maybe SourceTypeBancontact
      -> Maybe Text
      -> Maybe Int
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeCard
      -> Maybe SourceTypeCardPresent
      -> Maybe Text
      -> Maybe SourceCodeVerificationFlow
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe CustomerSources'Data'Customer'Variants
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeEps
      -> Maybe Int
      -> Maybe Int
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeGiropay
      -> Maybe Text
      -> Maybe SourceTypeIdeal
      -> Maybe Text
      -> Maybe SourceTypeKlarna
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Object
      -> Maybe SourceTypeMultibanco
      -> Maybe Text
      -> Maybe CustomerSources'Data'Object'
      -> Maybe CustomerSources'Data'Owner'
      -> Maybe SourceTypeP24
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe SourceReceiverFlow
      -> Maybe CustomerSources'Data'Recipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe CustomerSources'Data'Transactions'
      -> Maybe CustomerSources'Data'Type'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> CustomerSources'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 SourceTypeAlipay
   -> Maybe Int
   -> Maybe Int
   -> Maybe SourceTypeAuBecsDebit
   -> Maybe [CustomerSources'Data'AvailablePayoutMethods']
   -> Maybe SourceTypeBancontact
   -> Maybe Text
   -> Maybe Int
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeCard
   -> Maybe SourceTypeCardPresent
   -> Maybe Text
   -> Maybe SourceCodeVerificationFlow
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe CustomerSources'Data'Customer'Variants
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeEps
   -> Maybe Int
   -> Maybe Int
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeGiropay
   -> Maybe Text
   -> Maybe SourceTypeIdeal
   -> Maybe Text
   -> Maybe SourceTypeKlarna
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Object
   -> Maybe SourceTypeMultibanco
   -> Maybe Text
   -> Maybe CustomerSources'Data'Object'
   -> Maybe CustomerSources'Data'Owner'
   -> Maybe SourceTypeP24
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe SourceReceiverFlow
   -> Maybe CustomerSources'Data'Recipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe CustomerSources'Data'Transactions'
   -> Maybe CustomerSources'Data'Type'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> CustomerSources'Data')
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeAlipay
      -> Maybe Int
      -> Maybe Int
      -> Maybe SourceTypeAuBecsDebit
      -> Maybe [CustomerSources'Data'AvailablePayoutMethods']
      -> Maybe SourceTypeBancontact
      -> Maybe Text
      -> Maybe Int
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeCard
      -> Maybe SourceTypeCardPresent
      -> Maybe Text
      -> Maybe SourceCodeVerificationFlow
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe CustomerSources'Data'Customer'Variants
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeEps
      -> Maybe Int
      -> Maybe Int
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeGiropay
      -> Maybe Text
      -> Maybe SourceTypeIdeal
      -> Maybe Text
      -> Maybe SourceTypeKlarna
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Object
      -> Maybe SourceTypeMultibanco
      -> Maybe Text
      -> Maybe CustomerSources'Data'Object'
      -> Maybe CustomerSources'Data'Owner'
      -> Maybe SourceTypeP24
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe SourceReceiverFlow
      -> Maybe CustomerSources'Data'Recipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe CustomerSources'Data'Transactions'
      -> Maybe CustomerSources'Data'Type'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> CustomerSources'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 SourceTypeAlipay
   -> Maybe Int
   -> Maybe Int
   -> Maybe SourceTypeAuBecsDebit
   -> Maybe [CustomerSources'Data'AvailablePayoutMethods']
   -> Maybe SourceTypeBancontact
   -> Maybe Text
   -> Maybe Int
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeCard
   -> Maybe SourceTypeCardPresent
   -> Maybe Text
   -> Maybe SourceCodeVerificationFlow
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe CustomerSources'Data'Customer'Variants
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeEps
   -> Maybe Int
   -> Maybe Int
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeGiropay
   -> Maybe Text
   -> Maybe SourceTypeIdeal
   -> Maybe Text
   -> Maybe SourceTypeKlarna
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Object
   -> Maybe SourceTypeMultibanco
   -> Maybe Text
   -> Maybe CustomerSources'Data'Object'
   -> Maybe CustomerSources'Data'Owner'
   -> Maybe SourceTypeP24
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe SourceReceiverFlow
   -> Maybe CustomerSources'Data'Recipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe CustomerSources'Data'Transactions'
   -> Maybe CustomerSources'Data'Type'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> CustomerSources'Data')
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeAlipay
      -> Maybe Int
      -> Maybe Int
      -> Maybe SourceTypeAuBecsDebit
      -> Maybe [CustomerSources'Data'AvailablePayoutMethods']
      -> Maybe SourceTypeBancontact
      -> Maybe Text
      -> Maybe Int
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeCard
      -> Maybe SourceTypeCardPresent
      -> Maybe Text
      -> Maybe SourceCodeVerificationFlow
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe CustomerSources'Data'Customer'Variants
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeEps
      -> Maybe Int
      -> Maybe Int
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeGiropay
      -> Maybe Text
      -> Maybe SourceTypeIdeal
      -> Maybe Text
      -> Maybe SourceTypeKlarna
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Object
      -> Maybe SourceTypeMultibanco
      -> Maybe Text
      -> Maybe CustomerSources'Data'Object'
      -> Maybe CustomerSources'Data'Owner'
      -> Maybe SourceTypeP24
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe SourceReceiverFlow
      -> Maybe CustomerSources'Data'Recipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe CustomerSources'Data'Transactions'
      -> Maybe CustomerSources'Data'Type'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> CustomerSources'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 SourceTypeAlipay
   -> Maybe Int
   -> Maybe Int
   -> Maybe SourceTypeAuBecsDebit
   -> Maybe [CustomerSources'Data'AvailablePayoutMethods']
   -> Maybe SourceTypeBancontact
   -> Maybe Text
   -> Maybe Int
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeCard
   -> Maybe SourceTypeCardPresent
   -> Maybe Text
   -> Maybe SourceCodeVerificationFlow
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe CustomerSources'Data'Customer'Variants
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeEps
   -> Maybe Int
   -> Maybe Int
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeGiropay
   -> Maybe Text
   -> Maybe SourceTypeIdeal
   -> Maybe Text
   -> Maybe SourceTypeKlarna
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Object
   -> Maybe SourceTypeMultibanco
   -> Maybe Text
   -> Maybe CustomerSources'Data'Object'
   -> Maybe CustomerSources'Data'Owner'
   -> Maybe SourceTypeP24
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe SourceReceiverFlow
   -> Maybe CustomerSources'Data'Recipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe CustomerSources'Data'Transactions'
   -> Maybe CustomerSources'Data'Type'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> CustomerSources'Data')
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeAlipay
      -> Maybe Int
      -> Maybe Int
      -> Maybe SourceTypeAuBecsDebit
      -> Maybe [CustomerSources'Data'AvailablePayoutMethods']
      -> Maybe SourceTypeBancontact
      -> Maybe Text
      -> Maybe Int
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeCard
      -> Maybe SourceTypeCardPresent
      -> Maybe Text
      -> Maybe SourceCodeVerificationFlow
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe CustomerSources'Data'Customer'Variants
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeEps
      -> Maybe Int
      -> Maybe Int
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeGiropay
      -> Maybe Text
      -> Maybe SourceTypeIdeal
      -> Maybe Text
      -> Maybe SourceTypeKlarna
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Object
      -> Maybe SourceTypeMultibanco
      -> Maybe Text
      -> Maybe CustomerSources'Data'Object'
      -> Maybe CustomerSources'Data'Owner'
      -> Maybe SourceTypeP24
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe SourceReceiverFlow
      -> Maybe CustomerSources'Data'Recipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe CustomerSources'Data'Transactions'
      -> Maybe CustomerSources'Data'Type'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> CustomerSources'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 SourceTypeAlipay
   -> Maybe Int
   -> Maybe Int
   -> Maybe SourceTypeAuBecsDebit
   -> Maybe [CustomerSources'Data'AvailablePayoutMethods']
   -> Maybe SourceTypeBancontact
   -> Maybe Text
   -> Maybe Int
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeCard
   -> Maybe SourceTypeCardPresent
   -> Maybe Text
   -> Maybe SourceCodeVerificationFlow
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe CustomerSources'Data'Customer'Variants
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeEps
   -> Maybe Int
   -> Maybe Int
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeGiropay
   -> Maybe Text
   -> Maybe SourceTypeIdeal
   -> Maybe Text
   -> Maybe SourceTypeKlarna
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Object
   -> Maybe SourceTypeMultibanco
   -> Maybe Text
   -> Maybe CustomerSources'Data'Object'
   -> Maybe CustomerSources'Data'Owner'
   -> Maybe SourceTypeP24
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe SourceReceiverFlow
   -> Maybe CustomerSources'Data'Recipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe CustomerSources'Data'Transactions'
   -> Maybe CustomerSources'Data'Type'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> CustomerSources'Data')
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeAlipay
      -> Maybe Int
      -> Maybe Int
      -> Maybe SourceTypeAuBecsDebit
      -> Maybe [CustomerSources'Data'AvailablePayoutMethods']
      -> Maybe SourceTypeBancontact
      -> Maybe Text
      -> Maybe Int
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeCard
      -> Maybe SourceTypeCardPresent
      -> Maybe Text
      -> Maybe SourceCodeVerificationFlow
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe CustomerSources'Data'Customer'Variants
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeEps
      -> Maybe Int
      -> Maybe Int
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeGiropay
      -> Maybe Text
      -> Maybe SourceTypeIdeal
      -> Maybe Text
      -> Maybe SourceTypeKlarna
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Object
      -> Maybe SourceTypeMultibanco
      -> Maybe Text
      -> Maybe CustomerSources'Data'Object'
      -> Maybe CustomerSources'Data'Owner'
      -> Maybe SourceTypeP24
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe SourceReceiverFlow
      -> Maybe CustomerSources'Data'Recipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe CustomerSources'Data'Transactions'
      -> Maybe CustomerSources'Data'Type'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> CustomerSources'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 SourceTypeAlipay
   -> Maybe Int
   -> Maybe Int
   -> Maybe SourceTypeAuBecsDebit
   -> Maybe [CustomerSources'Data'AvailablePayoutMethods']
   -> Maybe SourceTypeBancontact
   -> Maybe Text
   -> Maybe Int
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeCard
   -> Maybe SourceTypeCardPresent
   -> Maybe Text
   -> Maybe SourceCodeVerificationFlow
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe CustomerSources'Data'Customer'Variants
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeEps
   -> Maybe Int
   -> Maybe Int
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeGiropay
   -> Maybe Text
   -> Maybe SourceTypeIdeal
   -> Maybe Text
   -> Maybe SourceTypeKlarna
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Object
   -> Maybe SourceTypeMultibanco
   -> Maybe Text
   -> Maybe CustomerSources'Data'Object'
   -> Maybe CustomerSources'Data'Owner'
   -> Maybe SourceTypeP24
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe SourceReceiverFlow
   -> Maybe CustomerSources'Data'Recipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe CustomerSources'Data'Transactions'
   -> Maybe CustomerSources'Data'Type'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> CustomerSources'Data')
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe SourceTypeAlipay
      -> Maybe Int
      -> Maybe Int
      -> Maybe SourceTypeAuBecsDebit
      -> Maybe [CustomerSources'Data'AvailablePayoutMethods']
      -> Maybe SourceTypeBancontact
      -> Maybe Text
      -> Maybe Int
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeCard
      -> Maybe SourceTypeCardPresent
      -> Maybe Text
      -> Maybe SourceCodeVerificationFlow
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe CustomerSources'Data'Customer'Variants
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeEps
      -> Maybe Int
      -> Maybe Int
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeGiropay
      -> Maybe Text
      -> Maybe SourceTypeIdeal
      -> Maybe Text
      -> Maybe SourceTypeKlarna
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Object
      -> Maybe SourceTypeMultibanco
      -> Maybe Text
      -> Maybe CustomerSources'Data'Object'
      -> Maybe CustomerSources'Data'Owner'
      -> Maybe SourceTypeP24
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe SourceReceiverFlow
      -> Maybe CustomerSources'Data'Recipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe CustomerSources'Data'Transactions'
      -> Maybe CustomerSources'Data'Type'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> CustomerSources'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 SourceTypeAlipay
   -> Maybe Int
   -> Maybe Int
   -> Maybe SourceTypeAuBecsDebit
   -> Maybe [CustomerSources'Data'AvailablePayoutMethods']
   -> Maybe SourceTypeBancontact
   -> Maybe Text
   -> Maybe Int
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeCard
   -> Maybe SourceTypeCardPresent
   -> Maybe Text
   -> Maybe SourceCodeVerificationFlow
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe CustomerSources'Data'Customer'Variants
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeEps
   -> Maybe Int
   -> Maybe Int
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeGiropay
   -> Maybe Text
   -> Maybe SourceTypeIdeal
   -> Maybe Text
   -> Maybe SourceTypeKlarna
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Object
   -> Maybe SourceTypeMultibanco
   -> Maybe Text
   -> Maybe CustomerSources'Data'Object'
   -> Maybe CustomerSources'Data'Owner'
   -> Maybe SourceTypeP24
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe SourceReceiverFlow
   -> Maybe CustomerSources'Data'Recipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe CustomerSources'Data'Transactions'
   -> Maybe CustomerSources'Data'Type'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> CustomerSources'Data')
-> Parser (Maybe Text)
-> Parser
     (Maybe SourceTypeAlipay
      -> Maybe Int
      -> Maybe Int
      -> Maybe SourceTypeAuBecsDebit
      -> Maybe [CustomerSources'Data'AvailablePayoutMethods']
      -> Maybe SourceTypeBancontact
      -> Maybe Text
      -> Maybe Int
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeCard
      -> Maybe SourceTypeCardPresent
      -> Maybe Text
      -> Maybe SourceCodeVerificationFlow
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe CustomerSources'Data'Customer'Variants
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeEps
      -> Maybe Int
      -> Maybe Int
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeGiropay
      -> Maybe Text
      -> Maybe SourceTypeIdeal
      -> Maybe Text
      -> Maybe SourceTypeKlarna
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Object
      -> Maybe SourceTypeMultibanco
      -> Maybe Text
      -> Maybe CustomerSources'Data'Object'
      -> Maybe CustomerSources'Data'Owner'
      -> Maybe SourceTypeP24
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe SourceReceiverFlow
      -> Maybe CustomerSources'Data'Recipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe CustomerSources'Data'Transactions'
      -> Maybe CustomerSources'Data'Type'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> CustomerSources'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 SourceTypeAlipay
   -> Maybe Int
   -> Maybe Int
   -> Maybe SourceTypeAuBecsDebit
   -> Maybe [CustomerSources'Data'AvailablePayoutMethods']
   -> Maybe SourceTypeBancontact
   -> Maybe Text
   -> Maybe Int
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeCard
   -> Maybe SourceTypeCardPresent
   -> Maybe Text
   -> Maybe SourceCodeVerificationFlow
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe CustomerSources'Data'Customer'Variants
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeEps
   -> Maybe Int
   -> Maybe Int
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeGiropay
   -> Maybe Text
   -> Maybe SourceTypeIdeal
   -> Maybe Text
   -> Maybe SourceTypeKlarna
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Object
   -> Maybe SourceTypeMultibanco
   -> Maybe Text
   -> Maybe CustomerSources'Data'Object'
   -> Maybe CustomerSources'Data'Owner'
   -> Maybe SourceTypeP24
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe SourceReceiverFlow
   -> Maybe CustomerSources'Data'Recipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe CustomerSources'Data'Transactions'
   -> Maybe CustomerSources'Data'Type'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> CustomerSources'Data')
-> Parser (Maybe SourceTypeAlipay)
-> Parser
     (Maybe Int
      -> Maybe Int
      -> Maybe SourceTypeAuBecsDebit
      -> Maybe [CustomerSources'Data'AvailablePayoutMethods']
      -> Maybe SourceTypeBancontact
      -> Maybe Text
      -> Maybe Int
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeCard
      -> Maybe SourceTypeCardPresent
      -> Maybe Text
      -> Maybe SourceCodeVerificationFlow
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe CustomerSources'Data'Customer'Variants
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeEps
      -> Maybe Int
      -> Maybe Int
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeGiropay
      -> Maybe Text
      -> Maybe SourceTypeIdeal
      -> Maybe Text
      -> Maybe SourceTypeKlarna
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Object
      -> Maybe SourceTypeMultibanco
      -> Maybe Text
      -> Maybe CustomerSources'Data'Object'
      -> Maybe CustomerSources'Data'Owner'
      -> Maybe SourceTypeP24
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe SourceReceiverFlow
      -> Maybe CustomerSources'Data'Recipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe CustomerSources'Data'Transactions'
      -> Maybe CustomerSources'Data'Type'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> CustomerSources'Data')
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 [CustomerSources'Data'AvailablePayoutMethods']
   -> Maybe SourceTypeBancontact
   -> Maybe Text
   -> Maybe Int
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeCard
   -> Maybe SourceTypeCardPresent
   -> Maybe Text
   -> Maybe SourceCodeVerificationFlow
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe CustomerSources'Data'Customer'Variants
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeEps
   -> Maybe Int
   -> Maybe Int
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeGiropay
   -> Maybe Text
   -> Maybe SourceTypeIdeal
   -> Maybe Text
   -> Maybe SourceTypeKlarna
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Object
   -> Maybe SourceTypeMultibanco
   -> Maybe Text
   -> Maybe CustomerSources'Data'Object'
   -> Maybe CustomerSources'Data'Owner'
   -> Maybe SourceTypeP24
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe SourceReceiverFlow
   -> Maybe CustomerSources'Data'Recipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe CustomerSources'Data'Transactions'
   -> Maybe CustomerSources'Data'Type'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> CustomerSources'Data')
-> Parser (Maybe Int)
-> Parser
     (Maybe Int
      -> Maybe SourceTypeAuBecsDebit
      -> Maybe [CustomerSources'Data'AvailablePayoutMethods']
      -> Maybe SourceTypeBancontact
      -> Maybe Text
      -> Maybe Int
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeCard
      -> Maybe SourceTypeCardPresent
      -> Maybe Text
      -> Maybe SourceCodeVerificationFlow
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe CustomerSources'Data'Customer'Variants
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeEps
      -> Maybe Int
      -> Maybe Int
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeGiropay
      -> Maybe Text
      -> Maybe SourceTypeIdeal
      -> Maybe Text
      -> Maybe SourceTypeKlarna
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Object
      -> Maybe SourceTypeMultibanco
      -> Maybe Text
      -> Maybe CustomerSources'Data'Object'
      -> Maybe CustomerSources'Data'Owner'
      -> Maybe SourceTypeP24
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe SourceReceiverFlow
      -> Maybe CustomerSources'Data'Recipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe CustomerSources'Data'Transactions'
      -> Maybe CustomerSources'Data'Type'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> CustomerSources'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
"amount")) Parser
  (Maybe Int
   -> Maybe SourceTypeAuBecsDebit
   -> Maybe [CustomerSources'Data'AvailablePayoutMethods']
   -> Maybe SourceTypeBancontact
   -> Maybe Text
   -> Maybe Int
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeCard
   -> Maybe SourceTypeCardPresent
   -> Maybe Text
   -> Maybe SourceCodeVerificationFlow
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe CustomerSources'Data'Customer'Variants
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeEps
   -> Maybe Int
   -> Maybe Int
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeGiropay
   -> Maybe Text
   -> Maybe SourceTypeIdeal
   -> Maybe Text
   -> Maybe SourceTypeKlarna
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Object
   -> Maybe SourceTypeMultibanco
   -> Maybe Text
   -> Maybe CustomerSources'Data'Object'
   -> Maybe CustomerSources'Data'Owner'
   -> Maybe SourceTypeP24
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe SourceReceiverFlow
   -> Maybe CustomerSources'Data'Recipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe CustomerSources'Data'Transactions'
   -> Maybe CustomerSources'Data'Type'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> CustomerSources'Data')
-> Parser (Maybe Int)
-> Parser
     (Maybe SourceTypeAuBecsDebit
      -> Maybe [CustomerSources'Data'AvailablePayoutMethods']
      -> Maybe SourceTypeBancontact
      -> Maybe Text
      -> Maybe Int
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeCard
      -> Maybe SourceTypeCardPresent
      -> Maybe Text
      -> Maybe SourceCodeVerificationFlow
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe CustomerSources'Data'Customer'Variants
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeEps
      -> Maybe Int
      -> Maybe Int
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeGiropay
      -> Maybe Text
      -> Maybe SourceTypeIdeal
      -> Maybe Text
      -> Maybe SourceTypeKlarna
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Object
      -> Maybe SourceTypeMultibanco
      -> Maybe Text
      -> Maybe CustomerSources'Data'Object'
      -> Maybe CustomerSources'Data'Owner'
      -> Maybe SourceTypeP24
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe SourceReceiverFlow
      -> Maybe CustomerSources'Data'Recipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe CustomerSources'Data'Transactions'
      -> Maybe CustomerSources'Data'Type'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> CustomerSources'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
"amount_received")) Parser
  (Maybe SourceTypeAuBecsDebit
   -> Maybe [CustomerSources'Data'AvailablePayoutMethods']
   -> Maybe SourceTypeBancontact
   -> Maybe Text
   -> Maybe Int
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeCard
   -> Maybe SourceTypeCardPresent
   -> Maybe Text
   -> Maybe SourceCodeVerificationFlow
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe CustomerSources'Data'Customer'Variants
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeEps
   -> Maybe Int
   -> Maybe Int
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeGiropay
   -> Maybe Text
   -> Maybe SourceTypeIdeal
   -> Maybe Text
   -> Maybe SourceTypeKlarna
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Object
   -> Maybe SourceTypeMultibanco
   -> Maybe Text
   -> Maybe CustomerSources'Data'Object'
   -> Maybe CustomerSources'Data'Owner'
   -> Maybe SourceTypeP24
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe SourceReceiverFlow
   -> Maybe CustomerSources'Data'Recipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe CustomerSources'Data'Transactions'
   -> Maybe CustomerSources'Data'Type'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> CustomerSources'Data')
-> Parser (Maybe SourceTypeAuBecsDebit)
-> Parser
     (Maybe [CustomerSources'Data'AvailablePayoutMethods']
      -> Maybe SourceTypeBancontact
      -> Maybe Text
      -> Maybe Int
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeCard
      -> Maybe SourceTypeCardPresent
      -> Maybe Text
      -> Maybe SourceCodeVerificationFlow
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe CustomerSources'Data'Customer'Variants
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeEps
      -> Maybe Int
      -> Maybe Int
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeGiropay
      -> Maybe Text
      -> Maybe SourceTypeIdeal
      -> Maybe Text
      -> Maybe SourceTypeKlarna
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Object
      -> Maybe SourceTypeMultibanco
      -> Maybe Text
      -> Maybe CustomerSources'Data'Object'
      -> Maybe CustomerSources'Data'Owner'
      -> Maybe SourceTypeP24
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe SourceReceiverFlow
      -> Maybe CustomerSources'Data'Recipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe CustomerSources'Data'Transactions'
      -> Maybe CustomerSources'Data'Type'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> CustomerSources'Data')
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 [CustomerSources'Data'AvailablePayoutMethods']
   -> Maybe SourceTypeBancontact
   -> Maybe Text
   -> Maybe Int
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeCard
   -> Maybe SourceTypeCardPresent
   -> Maybe Text
   -> Maybe SourceCodeVerificationFlow
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe CustomerSources'Data'Customer'Variants
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeEps
   -> Maybe Int
   -> Maybe Int
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeGiropay
   -> Maybe Text
   -> Maybe SourceTypeIdeal
   -> Maybe Text
   -> Maybe SourceTypeKlarna
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Object
   -> Maybe SourceTypeMultibanco
   -> Maybe Text
   -> Maybe CustomerSources'Data'Object'
   -> Maybe CustomerSources'Data'Owner'
   -> Maybe SourceTypeP24
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe SourceReceiverFlow
   -> Maybe CustomerSources'Data'Recipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe CustomerSources'Data'Transactions'
   -> Maybe CustomerSources'Data'Type'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> CustomerSources'Data')
-> Parser (Maybe [CustomerSources'Data'AvailablePayoutMethods'])
-> Parser
     (Maybe SourceTypeBancontact
      -> Maybe Text
      -> Maybe Int
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeCard
      -> Maybe SourceTypeCardPresent
      -> Maybe Text
      -> Maybe SourceCodeVerificationFlow
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe CustomerSources'Data'Customer'Variants
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeEps
      -> Maybe Int
      -> Maybe Int
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeGiropay
      -> Maybe Text
      -> Maybe SourceTypeIdeal
      -> Maybe Text
      -> Maybe SourceTypeKlarna
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Object
      -> Maybe SourceTypeMultibanco
      -> Maybe Text
      -> Maybe CustomerSources'Data'Object'
      -> Maybe CustomerSources'Data'Owner'
      -> Maybe SourceTypeP24
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe SourceReceiverFlow
      -> Maybe CustomerSources'Data'Recipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe CustomerSources'Data'Transactions'
      -> Maybe CustomerSources'Data'Type'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> CustomerSources'Data')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser (Maybe [CustomerSources'Data'AvailablePayoutMethods'])
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 SourceTypeCard
   -> Maybe SourceTypeCardPresent
   -> Maybe Text
   -> Maybe SourceCodeVerificationFlow
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe CustomerSources'Data'Customer'Variants
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeEps
   -> Maybe Int
   -> Maybe Int
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeGiropay
   -> Maybe Text
   -> Maybe SourceTypeIdeal
   -> Maybe Text
   -> Maybe SourceTypeKlarna
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Object
   -> Maybe SourceTypeMultibanco
   -> Maybe Text
   -> Maybe CustomerSources'Data'Object'
   -> Maybe CustomerSources'Data'Owner'
   -> Maybe SourceTypeP24
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe SourceReceiverFlow
   -> Maybe CustomerSources'Data'Recipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe CustomerSources'Data'Transactions'
   -> Maybe CustomerSources'Data'Type'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> CustomerSources'Data')
-> Parser (Maybe SourceTypeBancontact)
-> Parser
     (Maybe Text
      -> Maybe Int
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeCard
      -> Maybe SourceTypeCardPresent
      -> Maybe Text
      -> Maybe SourceCodeVerificationFlow
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe CustomerSources'Data'Customer'Variants
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeEps
      -> Maybe Int
      -> Maybe Int
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeGiropay
      -> Maybe Text
      -> Maybe SourceTypeIdeal
      -> Maybe Text
      -> Maybe SourceTypeKlarna
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Object
      -> Maybe SourceTypeMultibanco
      -> Maybe Text
      -> Maybe CustomerSources'Data'Object'
      -> Maybe CustomerSources'Data'Owner'
      -> Maybe SourceTypeP24
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe SourceReceiverFlow
      -> Maybe CustomerSources'Data'Recipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe CustomerSources'Data'Transactions'
      -> Maybe CustomerSources'Data'Type'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> CustomerSources'Data')
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 SourceTypeCard
   -> Maybe SourceTypeCardPresent
   -> Maybe Text
   -> Maybe SourceCodeVerificationFlow
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe CustomerSources'Data'Customer'Variants
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeEps
   -> Maybe Int
   -> Maybe Int
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeGiropay
   -> Maybe Text
   -> Maybe SourceTypeIdeal
   -> Maybe Text
   -> Maybe SourceTypeKlarna
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Object
   -> Maybe SourceTypeMultibanco
   -> Maybe Text
   -> Maybe CustomerSources'Data'Object'
   -> Maybe CustomerSources'Data'Owner'
   -> Maybe SourceTypeP24
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe SourceReceiverFlow
   -> Maybe CustomerSources'Data'Recipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe CustomerSources'Data'Transactions'
   -> Maybe CustomerSources'Data'Type'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> CustomerSources'Data')
-> Parser (Maybe Text)
-> Parser
     (Maybe Int
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeCard
      -> Maybe SourceTypeCardPresent
      -> Maybe Text
      -> Maybe SourceCodeVerificationFlow
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe CustomerSources'Data'Customer'Variants
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeEps
      -> Maybe Int
      -> Maybe Int
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeGiropay
      -> Maybe Text
      -> Maybe SourceTypeIdeal
      -> Maybe Text
      -> Maybe SourceTypeKlarna
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Object
      -> Maybe SourceTypeMultibanco
      -> Maybe Text
      -> Maybe CustomerSources'Data'Object'
      -> Maybe CustomerSources'Data'Owner'
      -> Maybe SourceTypeP24
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe SourceReceiverFlow
      -> Maybe CustomerSources'Data'Recipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe CustomerSources'Data'Transactions'
      -> Maybe CustomerSources'Data'Type'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> CustomerSources'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 Int
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeCard
   -> Maybe SourceTypeCardPresent
   -> Maybe Text
   -> Maybe SourceCodeVerificationFlow
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe CustomerSources'Data'Customer'Variants
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeEps
   -> Maybe Int
   -> Maybe Int
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeGiropay
   -> Maybe Text
   -> Maybe SourceTypeIdeal
   -> Maybe Text
   -> Maybe SourceTypeKlarna
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Object
   -> Maybe SourceTypeMultibanco
   -> Maybe Text
   -> Maybe CustomerSources'Data'Object'
   -> Maybe CustomerSources'Data'Owner'
   -> Maybe SourceTypeP24
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe SourceReceiverFlow
   -> Maybe CustomerSources'Data'Recipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe CustomerSources'Data'Transactions'
   -> Maybe CustomerSources'Data'Type'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> CustomerSources'Data')
-> Parser (Maybe Int)
-> Parser
     (Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeCard
      -> Maybe SourceTypeCardPresent
      -> Maybe Text
      -> Maybe SourceCodeVerificationFlow
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe CustomerSources'Data'Customer'Variants
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeEps
      -> Maybe Int
      -> Maybe Int
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeGiropay
      -> Maybe Text
      -> Maybe SourceTypeIdeal
      -> Maybe Text
      -> Maybe SourceTypeKlarna
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Object
      -> Maybe SourceTypeMultibanco
      -> Maybe Text
      -> Maybe CustomerSources'Data'Object'
      -> Maybe CustomerSources'Data'Owner'
      -> Maybe SourceTypeP24
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe SourceReceiverFlow
      -> Maybe CustomerSources'Data'Recipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe CustomerSources'Data'Transactions'
      -> Maybe CustomerSources'Data'Type'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> CustomerSources'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
"bitcoin_amount")) Parser
  (Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeCard
   -> Maybe SourceTypeCardPresent
   -> Maybe Text
   -> Maybe SourceCodeVerificationFlow
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe CustomerSources'Data'Customer'Variants
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeEps
   -> Maybe Int
   -> Maybe Int
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeGiropay
   -> Maybe Text
   -> Maybe SourceTypeIdeal
   -> Maybe Text
   -> Maybe SourceTypeKlarna
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Object
   -> Maybe SourceTypeMultibanco
   -> Maybe Text
   -> Maybe CustomerSources'Data'Object'
   -> Maybe CustomerSources'Data'Owner'
   -> Maybe SourceTypeP24
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe SourceReceiverFlow
   -> Maybe CustomerSources'Data'Recipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe CustomerSources'Data'Transactions'
   -> Maybe CustomerSources'Data'Type'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> CustomerSources'Data')
-> Parser (Maybe Int)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeCard
      -> Maybe SourceTypeCardPresent
      -> Maybe Text
      -> Maybe SourceCodeVerificationFlow
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe CustomerSources'Data'Customer'Variants
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeEps
      -> Maybe Int
      -> Maybe Int
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeGiropay
      -> Maybe Text
      -> Maybe SourceTypeIdeal
      -> Maybe Text
      -> Maybe SourceTypeKlarna
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Object
      -> Maybe SourceTypeMultibanco
      -> Maybe Text
      -> Maybe CustomerSources'Data'Object'
      -> Maybe CustomerSources'Data'Owner'
      -> Maybe SourceTypeP24
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe SourceReceiverFlow
      -> Maybe CustomerSources'Data'Recipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe CustomerSources'Data'Transactions'
      -> Maybe CustomerSources'Data'Type'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> CustomerSources'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
"bitcoin_amount_received")) Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeCard
   -> Maybe SourceTypeCardPresent
   -> Maybe Text
   -> Maybe SourceCodeVerificationFlow
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe CustomerSources'Data'Customer'Variants
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeEps
   -> Maybe Int
   -> Maybe Int
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeGiropay
   -> Maybe Text
   -> Maybe SourceTypeIdeal
   -> Maybe Text
   -> Maybe SourceTypeKlarna
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Object
   -> Maybe SourceTypeMultibanco
   -> Maybe Text
   -> Maybe CustomerSources'Data'Object'
   -> Maybe CustomerSources'Data'Owner'
   -> Maybe SourceTypeP24
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe SourceReceiverFlow
   -> Maybe CustomerSources'Data'Recipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe CustomerSources'Data'Transactions'
   -> Maybe CustomerSources'Data'Type'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> CustomerSources'Data')
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe SourceTypeCard
      -> Maybe SourceTypeCardPresent
      -> Maybe Text
      -> Maybe SourceCodeVerificationFlow
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe CustomerSources'Data'Customer'Variants
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeEps
      -> Maybe Int
      -> Maybe Int
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeGiropay
      -> Maybe Text
      -> Maybe SourceTypeIdeal
      -> Maybe Text
      -> Maybe SourceTypeKlarna
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Object
      -> Maybe SourceTypeMultibanco
      -> Maybe Text
      -> Maybe CustomerSources'Data'Object'
      -> Maybe CustomerSources'Data'Owner'
      -> Maybe SourceTypeP24
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe SourceReceiverFlow
      -> Maybe CustomerSources'Data'Recipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe CustomerSources'Data'Transactions'
      -> Maybe CustomerSources'Data'Type'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> CustomerSources'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
"bitcoin_uri")) Parser
  (Maybe Text
   -> Maybe SourceTypeCard
   -> Maybe SourceTypeCardPresent
   -> Maybe Text
   -> Maybe SourceCodeVerificationFlow
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe CustomerSources'Data'Customer'Variants
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeEps
   -> Maybe Int
   -> Maybe Int
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeGiropay
   -> Maybe Text
   -> Maybe SourceTypeIdeal
   -> Maybe Text
   -> Maybe SourceTypeKlarna
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Object
   -> Maybe SourceTypeMultibanco
   -> Maybe Text
   -> Maybe CustomerSources'Data'Object'
   -> Maybe CustomerSources'Data'Owner'
   -> Maybe SourceTypeP24
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe SourceReceiverFlow
   -> Maybe CustomerSources'Data'Recipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe CustomerSources'Data'Transactions'
   -> Maybe CustomerSources'Data'Type'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> CustomerSources'Data')
-> Parser (Maybe Text)
-> Parser
     (Maybe SourceTypeCard
      -> Maybe SourceTypeCardPresent
      -> Maybe Text
      -> Maybe SourceCodeVerificationFlow
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe CustomerSources'Data'Customer'Variants
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeEps
      -> Maybe Int
      -> Maybe Int
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeGiropay
      -> Maybe Text
      -> Maybe SourceTypeIdeal
      -> Maybe Text
      -> Maybe SourceTypeKlarna
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Object
      -> Maybe SourceTypeMultibanco
      -> Maybe Text
      -> Maybe CustomerSources'Data'Object'
      -> Maybe CustomerSources'Data'Owner'
      -> Maybe SourceTypeP24
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe SourceReceiverFlow
      -> Maybe CustomerSources'Data'Recipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe CustomerSources'Data'Transactions'
      -> Maybe CustomerSources'Data'Type'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> CustomerSources'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 SourceTypeCard
   -> Maybe SourceTypeCardPresent
   -> Maybe Text
   -> Maybe SourceCodeVerificationFlow
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe CustomerSources'Data'Customer'Variants
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeEps
   -> Maybe Int
   -> Maybe Int
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeGiropay
   -> Maybe Text
   -> Maybe SourceTypeIdeal
   -> Maybe Text
   -> Maybe SourceTypeKlarna
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Object
   -> Maybe SourceTypeMultibanco
   -> Maybe Text
   -> Maybe CustomerSources'Data'Object'
   -> Maybe CustomerSources'Data'Owner'
   -> Maybe SourceTypeP24
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe SourceReceiverFlow
   -> Maybe CustomerSources'Data'Recipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe CustomerSources'Data'Transactions'
   -> Maybe CustomerSources'Data'Type'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> CustomerSources'Data')
-> Parser (Maybe SourceTypeCard)
-> Parser
     (Maybe SourceTypeCardPresent
      -> Maybe Text
      -> Maybe SourceCodeVerificationFlow
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe CustomerSources'Data'Customer'Variants
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeEps
      -> Maybe Int
      -> Maybe Int
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeGiropay
      -> Maybe Text
      -> Maybe SourceTypeIdeal
      -> Maybe Text
      -> Maybe SourceTypeKlarna
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Object
      -> Maybe SourceTypeMultibanco
      -> Maybe Text
      -> Maybe CustomerSources'Data'Object'
      -> Maybe CustomerSources'Data'Owner'
      -> Maybe SourceTypeP24
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe SourceReceiverFlow
      -> Maybe CustomerSources'Data'Recipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe CustomerSources'Data'Transactions'
      -> Maybe CustomerSources'Data'Type'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> CustomerSources'Data')
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 Text
   -> Maybe SourceCodeVerificationFlow
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe CustomerSources'Data'Customer'Variants
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeEps
   -> Maybe Int
   -> Maybe Int
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeGiropay
   -> Maybe Text
   -> Maybe SourceTypeIdeal
   -> Maybe Text
   -> Maybe SourceTypeKlarna
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Object
   -> Maybe SourceTypeMultibanco
   -> Maybe Text
   -> Maybe CustomerSources'Data'Object'
   -> Maybe CustomerSources'Data'Owner'
   -> Maybe SourceTypeP24
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe SourceReceiverFlow
   -> Maybe CustomerSources'Data'Recipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe CustomerSources'Data'Transactions'
   -> Maybe CustomerSources'Data'Type'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> CustomerSources'Data')
-> Parser (Maybe SourceTypeCardPresent)
-> Parser
     (Maybe Text
      -> Maybe SourceCodeVerificationFlow
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe CustomerSources'Data'Customer'Variants
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeEps
      -> Maybe Int
      -> Maybe Int
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeGiropay
      -> Maybe Text
      -> Maybe SourceTypeIdeal
      -> Maybe Text
      -> Maybe SourceTypeKlarna
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Object
      -> Maybe SourceTypeMultibanco
      -> Maybe Text
      -> Maybe CustomerSources'Data'Object'
      -> Maybe CustomerSources'Data'Owner'
      -> Maybe SourceTypeP24
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe SourceReceiverFlow
      -> Maybe CustomerSources'Data'Recipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe CustomerSources'Data'Transactions'
      -> Maybe CustomerSources'Data'Type'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> CustomerSources'Data')
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 Text
   -> Maybe SourceCodeVerificationFlow
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe CustomerSources'Data'Customer'Variants
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeEps
   -> Maybe Int
   -> Maybe Int
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeGiropay
   -> Maybe Text
   -> Maybe SourceTypeIdeal
   -> Maybe Text
   -> Maybe SourceTypeKlarna
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Object
   -> Maybe SourceTypeMultibanco
   -> Maybe Text
   -> Maybe CustomerSources'Data'Object'
   -> Maybe CustomerSources'Data'Owner'
   -> Maybe SourceTypeP24
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe SourceReceiverFlow
   -> Maybe CustomerSources'Data'Recipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe CustomerSources'Data'Transactions'
   -> Maybe CustomerSources'Data'Type'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> CustomerSources'Data')
-> Parser (Maybe Text)
-> Parser
     (Maybe SourceCodeVerificationFlow
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe CustomerSources'Data'Customer'Variants
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeEps
      -> Maybe Int
      -> Maybe Int
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeGiropay
      -> Maybe Text
      -> Maybe SourceTypeIdeal
      -> Maybe Text
      -> Maybe SourceTypeKlarna
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Object
      -> Maybe SourceTypeMultibanco
      -> Maybe Text
      -> Maybe CustomerSources'Data'Object'
      -> Maybe CustomerSources'Data'Owner'
      -> Maybe SourceTypeP24
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe SourceReceiverFlow
      -> Maybe CustomerSources'Data'Recipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe CustomerSources'Data'Transactions'
      -> Maybe CustomerSources'Data'Type'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> CustomerSources'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
"client_secret")) Parser
  (Maybe SourceCodeVerificationFlow
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe CustomerSources'Data'Customer'Variants
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeEps
   -> Maybe Int
   -> Maybe Int
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeGiropay
   -> Maybe Text
   -> Maybe SourceTypeIdeal
   -> Maybe Text
   -> Maybe SourceTypeKlarna
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Object
   -> Maybe SourceTypeMultibanco
   -> Maybe Text
   -> Maybe CustomerSources'Data'Object'
   -> Maybe CustomerSources'Data'Owner'
   -> Maybe SourceTypeP24
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe SourceReceiverFlow
   -> Maybe CustomerSources'Data'Recipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe CustomerSources'Data'Transactions'
   -> Maybe CustomerSources'Data'Type'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> CustomerSources'Data')
-> Parser (Maybe SourceCodeVerificationFlow)
-> Parser
     (Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe CustomerSources'Data'Customer'Variants
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeEps
      -> Maybe Int
      -> Maybe Int
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeGiropay
      -> Maybe Text
      -> Maybe SourceTypeIdeal
      -> Maybe Text
      -> Maybe SourceTypeKlarna
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Object
      -> Maybe SourceTypeMultibanco
      -> Maybe Text
      -> Maybe CustomerSources'Data'Object'
      -> Maybe CustomerSources'Data'Owner'
      -> Maybe SourceTypeP24
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe SourceReceiverFlow
      -> Maybe CustomerSources'Data'Recipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe CustomerSources'Data'Transactions'
      -> Maybe CustomerSources'Data'Type'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> CustomerSources'Data')
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 Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe CustomerSources'Data'Customer'Variants
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeEps
   -> Maybe Int
   -> Maybe Int
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeGiropay
   -> Maybe Text
   -> Maybe SourceTypeIdeal
   -> Maybe Text
   -> Maybe SourceTypeKlarna
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Object
   -> Maybe SourceTypeMultibanco
   -> Maybe Text
   -> Maybe CustomerSources'Data'Object'
   -> Maybe CustomerSources'Data'Owner'
   -> Maybe SourceTypeP24
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe SourceReceiverFlow
   -> Maybe CustomerSources'Data'Recipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe CustomerSources'Data'Transactions'
   -> Maybe CustomerSources'Data'Type'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> CustomerSources'Data')
-> Parser (Maybe Text)
-> Parser
     (Maybe Int
      -> Maybe Text
      -> Maybe CustomerSources'Data'Customer'Variants
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeEps
      -> Maybe Int
      -> Maybe Int
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeGiropay
      -> Maybe Text
      -> Maybe SourceTypeIdeal
      -> Maybe Text
      -> Maybe SourceTypeKlarna
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Object
      -> Maybe SourceTypeMultibanco
      -> Maybe Text
      -> Maybe CustomerSources'Data'Object'
      -> Maybe CustomerSources'Data'Owner'
      -> Maybe SourceTypeP24
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe SourceReceiverFlow
      -> Maybe CustomerSources'Data'Recipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe CustomerSources'Data'Transactions'
      -> Maybe CustomerSources'Data'Type'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> CustomerSources'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 Int
   -> Maybe Text
   -> Maybe CustomerSources'Data'Customer'Variants
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeEps
   -> Maybe Int
   -> Maybe Int
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeGiropay
   -> Maybe Text
   -> Maybe SourceTypeIdeal
   -> Maybe Text
   -> Maybe SourceTypeKlarna
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Object
   -> Maybe SourceTypeMultibanco
   -> Maybe Text
   -> Maybe CustomerSources'Data'Object'
   -> Maybe CustomerSources'Data'Owner'
   -> Maybe SourceTypeP24
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe SourceReceiverFlow
   -> Maybe CustomerSources'Data'Recipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe CustomerSources'Data'Transactions'
   -> Maybe CustomerSources'Data'Type'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> CustomerSources'Data')
-> Parser (Maybe Int)
-> Parser
     (Maybe Text
      -> Maybe CustomerSources'Data'Customer'Variants
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeEps
      -> Maybe Int
      -> Maybe Int
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeGiropay
      -> Maybe Text
      -> Maybe SourceTypeIdeal
      -> Maybe Text
      -> Maybe SourceTypeKlarna
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Object
      -> Maybe SourceTypeMultibanco
      -> Maybe Text
      -> Maybe CustomerSources'Data'Object'
      -> Maybe CustomerSources'Data'Owner'
      -> Maybe SourceTypeP24
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe SourceReceiverFlow
      -> Maybe CustomerSources'Data'Recipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe CustomerSources'Data'Transactions'
      -> Maybe CustomerSources'Data'Type'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> CustomerSources'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
"created")) Parser
  (Maybe Text
   -> Maybe CustomerSources'Data'Customer'Variants
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeEps
   -> Maybe Int
   -> Maybe Int
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeGiropay
   -> Maybe Text
   -> Maybe SourceTypeIdeal
   -> Maybe Text
   -> Maybe SourceTypeKlarna
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Object
   -> Maybe SourceTypeMultibanco
   -> Maybe Text
   -> Maybe CustomerSources'Data'Object'
   -> Maybe CustomerSources'Data'Owner'
   -> Maybe SourceTypeP24
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe SourceReceiverFlow
   -> Maybe CustomerSources'Data'Recipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe CustomerSources'Data'Transactions'
   -> Maybe CustomerSources'Data'Type'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> CustomerSources'Data')
-> Parser (Maybe Text)
-> Parser
     (Maybe CustomerSources'Data'Customer'Variants
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeEps
      -> Maybe Int
      -> Maybe Int
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeGiropay
      -> Maybe Text
      -> Maybe SourceTypeIdeal
      -> Maybe Text
      -> Maybe SourceTypeKlarna
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Object
      -> Maybe SourceTypeMultibanco
      -> Maybe Text
      -> Maybe CustomerSources'Data'Object'
      -> Maybe CustomerSources'Data'Owner'
      -> Maybe SourceTypeP24
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe SourceReceiverFlow
      -> Maybe CustomerSources'Data'Recipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe CustomerSources'Data'Transactions'
      -> Maybe CustomerSources'Data'Type'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> CustomerSources'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 CustomerSources'Data'Customer'Variants
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeEps
   -> Maybe Int
   -> Maybe Int
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeGiropay
   -> Maybe Text
   -> Maybe SourceTypeIdeal
   -> Maybe Text
   -> Maybe SourceTypeKlarna
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Object
   -> Maybe SourceTypeMultibanco
   -> Maybe Text
   -> Maybe CustomerSources'Data'Object'
   -> Maybe CustomerSources'Data'Owner'
   -> Maybe SourceTypeP24
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe SourceReceiverFlow
   -> Maybe CustomerSources'Data'Recipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe CustomerSources'Data'Transactions'
   -> Maybe CustomerSources'Data'Type'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> CustomerSources'Data')
-> Parser (Maybe CustomerSources'Data'Customer'Variants)
-> Parser
     (Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeEps
      -> Maybe Int
      -> Maybe Int
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeGiropay
      -> Maybe Text
      -> Maybe SourceTypeIdeal
      -> Maybe Text
      -> Maybe SourceTypeKlarna
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Object
      -> Maybe SourceTypeMultibanco
      -> Maybe Text
      -> Maybe CustomerSources'Data'Object'
      -> Maybe CustomerSources'Data'Owner'
      -> Maybe SourceTypeP24
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe SourceReceiverFlow
      -> Maybe CustomerSources'Data'Recipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe CustomerSources'Data'Transactions'
      -> Maybe CustomerSources'Data'Type'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> CustomerSources'Data')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text -> Parser (Maybe CustomerSources'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 Text
   -> Maybe Text
   -> Maybe SourceTypeEps
   -> Maybe Int
   -> Maybe Int
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeGiropay
   -> Maybe Text
   -> Maybe SourceTypeIdeal
   -> Maybe Text
   -> Maybe SourceTypeKlarna
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Object
   -> Maybe SourceTypeMultibanco
   -> Maybe Text
   -> Maybe CustomerSources'Data'Object'
   -> Maybe CustomerSources'Data'Owner'
   -> Maybe SourceTypeP24
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe SourceReceiverFlow
   -> Maybe CustomerSources'Data'Recipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe CustomerSources'Data'Transactions'
   -> Maybe CustomerSources'Data'Type'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> CustomerSources'Data')
-> Parser (Maybe Text)
-> Parser
     (Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeEps
      -> Maybe Int
      -> Maybe Int
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeGiropay
      -> Maybe Text
      -> Maybe SourceTypeIdeal
      -> Maybe Text
      -> Maybe SourceTypeKlarna
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Object
      -> Maybe SourceTypeMultibanco
      -> Maybe Text
      -> Maybe CustomerSources'Data'Object'
      -> Maybe CustomerSources'Data'Owner'
      -> Maybe SourceTypeP24
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe SourceReceiverFlow
      -> Maybe CustomerSources'Data'Recipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe CustomerSources'Data'Transactions'
      -> Maybe CustomerSources'Data'Type'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> CustomerSources'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 Text
   -> Maybe Text
   -> Maybe SourceTypeEps
   -> Maybe Int
   -> Maybe Int
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeGiropay
   -> Maybe Text
   -> Maybe SourceTypeIdeal
   -> Maybe Text
   -> Maybe SourceTypeKlarna
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Object
   -> Maybe SourceTypeMultibanco
   -> Maybe Text
   -> Maybe CustomerSources'Data'Object'
   -> Maybe CustomerSources'Data'Owner'
   -> Maybe SourceTypeP24
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe SourceReceiverFlow
   -> Maybe CustomerSources'Data'Recipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe CustomerSources'Data'Transactions'
   -> Maybe CustomerSources'Data'Type'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> CustomerSources'Data')
-> Parser (Maybe Bool)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeEps
      -> Maybe Int
      -> Maybe Int
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeGiropay
      -> Maybe Text
      -> Maybe SourceTypeIdeal
      -> Maybe Text
      -> Maybe SourceTypeKlarna
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Object
      -> Maybe SourceTypeMultibanco
      -> Maybe Text
      -> Maybe CustomerSources'Data'Object'
      -> Maybe CustomerSources'Data'Owner'
      -> Maybe SourceTypeP24
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe SourceReceiverFlow
      -> Maybe CustomerSources'Data'Recipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe CustomerSources'Data'Transactions'
      -> Maybe CustomerSources'Data'Type'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> CustomerSources'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 Text
   -> Maybe Text
   -> Maybe SourceTypeEps
   -> Maybe Int
   -> Maybe Int
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeGiropay
   -> Maybe Text
   -> Maybe SourceTypeIdeal
   -> Maybe Text
   -> Maybe SourceTypeKlarna
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Object
   -> Maybe SourceTypeMultibanco
   -> Maybe Text
   -> Maybe CustomerSources'Data'Object'
   -> Maybe CustomerSources'Data'Owner'
   -> Maybe SourceTypeP24
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe SourceReceiverFlow
   -> Maybe CustomerSources'Data'Recipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe CustomerSources'Data'Transactions'
   -> Maybe CustomerSources'Data'Type'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> CustomerSources'Data')
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeEps
      -> Maybe Int
      -> Maybe Int
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeGiropay
      -> Maybe Text
      -> Maybe SourceTypeIdeal
      -> Maybe Text
      -> Maybe SourceTypeKlarna
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Object
      -> Maybe SourceTypeMultibanco
      -> Maybe Text
      -> Maybe CustomerSources'Data'Object'
      -> Maybe CustomerSources'Data'Owner'
      -> Maybe SourceTypeP24
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe SourceReceiverFlow
      -> Maybe CustomerSources'Data'Recipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe CustomerSources'Data'Transactions'
      -> Maybe CustomerSources'Data'Type'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> CustomerSources'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
"description")) Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeEps
   -> Maybe Int
   -> Maybe Int
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeGiropay
   -> Maybe Text
   -> Maybe SourceTypeIdeal
   -> Maybe Text
   -> Maybe SourceTypeKlarna
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Object
   -> Maybe SourceTypeMultibanco
   -> Maybe Text
   -> Maybe CustomerSources'Data'Object'
   -> Maybe CustomerSources'Data'Owner'
   -> Maybe SourceTypeP24
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe SourceReceiverFlow
   -> Maybe CustomerSources'Data'Recipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe CustomerSources'Data'Transactions'
   -> Maybe CustomerSources'Data'Type'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> CustomerSources'Data')
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe SourceTypeEps
      -> Maybe Int
      -> Maybe Int
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeGiropay
      -> Maybe Text
      -> Maybe SourceTypeIdeal
      -> Maybe Text
      -> Maybe SourceTypeKlarna
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Object
      -> Maybe SourceTypeMultibanco
      -> Maybe Text
      -> Maybe CustomerSources'Data'Object'
      -> Maybe CustomerSources'Data'Owner'
      -> Maybe SourceTypeP24
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe SourceReceiverFlow
      -> Maybe CustomerSources'Data'Recipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe CustomerSources'Data'Transactions'
      -> Maybe CustomerSources'Data'Type'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> CustomerSources'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 Text
   -> Maybe SourceTypeEps
   -> Maybe Int
   -> Maybe Int
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeGiropay
   -> Maybe Text
   -> Maybe SourceTypeIdeal
   -> Maybe Text
   -> Maybe SourceTypeKlarna
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Object
   -> Maybe SourceTypeMultibanco
   -> Maybe Text
   -> Maybe CustomerSources'Data'Object'
   -> Maybe CustomerSources'Data'Owner'
   -> Maybe SourceTypeP24
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe SourceReceiverFlow
   -> Maybe CustomerSources'Data'Recipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe CustomerSources'Data'Transactions'
   -> Maybe CustomerSources'Data'Type'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> CustomerSources'Data')
-> Parser (Maybe Text)
-> Parser
     (Maybe SourceTypeEps
      -> Maybe Int
      -> Maybe Int
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeGiropay
      -> Maybe Text
      -> Maybe SourceTypeIdeal
      -> Maybe Text
      -> Maybe SourceTypeKlarna
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Object
      -> Maybe SourceTypeMultibanco
      -> Maybe Text
      -> Maybe CustomerSources'Data'Object'
      -> Maybe CustomerSources'Data'Owner'
      -> Maybe SourceTypeP24
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe SourceReceiverFlow
      -> Maybe CustomerSources'Data'Recipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe CustomerSources'Data'Transactions'
      -> Maybe CustomerSources'Data'Type'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> CustomerSources'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
"email")) Parser
  (Maybe SourceTypeEps
   -> Maybe Int
   -> Maybe Int
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeGiropay
   -> Maybe Text
   -> Maybe SourceTypeIdeal
   -> Maybe Text
   -> Maybe SourceTypeKlarna
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Object
   -> Maybe SourceTypeMultibanco
   -> Maybe Text
   -> Maybe CustomerSources'Data'Object'
   -> Maybe CustomerSources'Data'Owner'
   -> Maybe SourceTypeP24
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe SourceReceiverFlow
   -> Maybe CustomerSources'Data'Recipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe CustomerSources'Data'Transactions'
   -> Maybe CustomerSources'Data'Type'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> CustomerSources'Data')
-> Parser (Maybe SourceTypeEps)
-> Parser
     (Maybe Int
      -> Maybe Int
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeGiropay
      -> Maybe Text
      -> Maybe SourceTypeIdeal
      -> Maybe Text
      -> Maybe SourceTypeKlarna
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Object
      -> Maybe SourceTypeMultibanco
      -> Maybe Text
      -> Maybe CustomerSources'Data'Object'
      -> Maybe CustomerSources'Data'Owner'
      -> Maybe SourceTypeP24
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe SourceReceiverFlow
      -> Maybe CustomerSources'Data'Recipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe CustomerSources'Data'Transactions'
      -> Maybe CustomerSources'Data'Type'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> CustomerSources'Data')
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 Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeGiropay
   -> Maybe Text
   -> Maybe SourceTypeIdeal
   -> Maybe Text
   -> Maybe SourceTypeKlarna
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Object
   -> Maybe SourceTypeMultibanco
   -> Maybe Text
   -> Maybe CustomerSources'Data'Object'
   -> Maybe CustomerSources'Data'Owner'
   -> Maybe SourceTypeP24
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe SourceReceiverFlow
   -> Maybe CustomerSources'Data'Recipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe CustomerSources'Data'Transactions'
   -> Maybe CustomerSources'Data'Type'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> CustomerSources'Data')
-> Parser (Maybe Int)
-> Parser
     (Maybe Int
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeGiropay
      -> Maybe Text
      -> Maybe SourceTypeIdeal
      -> Maybe Text
      -> Maybe SourceTypeKlarna
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Object
      -> Maybe SourceTypeMultibanco
      -> Maybe Text
      -> Maybe CustomerSources'Data'Object'
      -> Maybe CustomerSources'Data'Owner'
      -> Maybe SourceTypeP24
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe SourceReceiverFlow
      -> Maybe CustomerSources'Data'Recipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe CustomerSources'Data'Transactions'
      -> Maybe CustomerSources'Data'Type'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> CustomerSources'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 Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeGiropay
   -> Maybe Text
   -> Maybe SourceTypeIdeal
   -> Maybe Text
   -> Maybe SourceTypeKlarna
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Object
   -> Maybe SourceTypeMultibanco
   -> Maybe Text
   -> Maybe CustomerSources'Data'Object'
   -> Maybe CustomerSources'Data'Owner'
   -> Maybe SourceTypeP24
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe SourceReceiverFlow
   -> Maybe CustomerSources'Data'Recipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe CustomerSources'Data'Transactions'
   -> Maybe CustomerSources'Data'Type'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> CustomerSources'Data')
-> Parser (Maybe Int)
-> Parser
     (Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeGiropay
      -> Maybe Text
      -> Maybe SourceTypeIdeal
      -> Maybe Text
      -> Maybe SourceTypeKlarna
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Object
      -> Maybe SourceTypeMultibanco
      -> Maybe Text
      -> Maybe CustomerSources'Data'Object'
      -> Maybe CustomerSources'Data'Owner'
      -> Maybe SourceTypeP24
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe SourceReceiverFlow
      -> Maybe CustomerSources'Data'Recipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe CustomerSources'Data'Transactions'
      -> Maybe CustomerSources'Data'Type'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> CustomerSources'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 Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeGiropay
   -> Maybe Text
   -> Maybe SourceTypeIdeal
   -> Maybe Text
   -> Maybe SourceTypeKlarna
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Object
   -> Maybe SourceTypeMultibanco
   -> Maybe Text
   -> Maybe CustomerSources'Data'Object'
   -> Maybe CustomerSources'Data'Owner'
   -> Maybe SourceTypeP24
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe SourceReceiverFlow
   -> Maybe CustomerSources'Data'Recipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe CustomerSources'Data'Transactions'
   -> Maybe CustomerSources'Data'Type'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> CustomerSources'Data')
-> Parser (Maybe Bool)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeGiropay
      -> Maybe Text
      -> Maybe SourceTypeIdeal
      -> Maybe Text
      -> Maybe SourceTypeKlarna
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Object
      -> Maybe SourceTypeMultibanco
      -> Maybe Text
      -> Maybe CustomerSources'Data'Object'
      -> Maybe CustomerSources'Data'Owner'
      -> Maybe SourceTypeP24
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe SourceReceiverFlow
      -> Maybe CustomerSources'Data'Recipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe CustomerSources'Data'Transactions'
      -> Maybe CustomerSources'Data'Type'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> CustomerSources'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
"filled")) Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeGiropay
   -> Maybe Text
   -> Maybe SourceTypeIdeal
   -> Maybe Text
   -> Maybe SourceTypeKlarna
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Object
   -> Maybe SourceTypeMultibanco
   -> Maybe Text
   -> Maybe CustomerSources'Data'Object'
   -> Maybe CustomerSources'Data'Owner'
   -> Maybe SourceTypeP24
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe SourceReceiverFlow
   -> Maybe CustomerSources'Data'Recipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe CustomerSources'Data'Transactions'
   -> Maybe CustomerSources'Data'Type'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> CustomerSources'Data')
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeGiropay
      -> Maybe Text
      -> Maybe SourceTypeIdeal
      -> Maybe Text
      -> Maybe SourceTypeKlarna
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Object
      -> Maybe SourceTypeMultibanco
      -> Maybe Text
      -> Maybe CustomerSources'Data'Object'
      -> Maybe CustomerSources'Data'Owner'
      -> Maybe SourceTypeP24
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe SourceReceiverFlow
      -> Maybe CustomerSources'Data'Recipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe CustomerSources'Data'Transactions'
      -> Maybe CustomerSources'Data'Type'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> CustomerSources'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 SourceTypeGiropay
   -> Maybe Text
   -> Maybe SourceTypeIdeal
   -> Maybe Text
   -> Maybe SourceTypeKlarna
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Object
   -> Maybe SourceTypeMultibanco
   -> Maybe Text
   -> Maybe CustomerSources'Data'Object'
   -> Maybe CustomerSources'Data'Owner'
   -> Maybe SourceTypeP24
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe SourceReceiverFlow
   -> Maybe CustomerSources'Data'Recipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe CustomerSources'Data'Transactions'
   -> Maybe CustomerSources'Data'Type'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> CustomerSources'Data')
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe SourceTypeGiropay
      -> Maybe Text
      -> Maybe SourceTypeIdeal
      -> Maybe Text
      -> Maybe SourceTypeKlarna
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Object
      -> Maybe SourceTypeMultibanco
      -> Maybe Text
      -> Maybe CustomerSources'Data'Object'
      -> Maybe CustomerSources'Data'Owner'
      -> Maybe SourceTypeP24
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe SourceReceiverFlow
      -> Maybe CustomerSources'Data'Recipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe CustomerSources'Data'Transactions'
      -> Maybe CustomerSources'Data'Type'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> CustomerSources'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
"flow")) Parser
  (Maybe Text
   -> Maybe SourceTypeGiropay
   -> Maybe Text
   -> Maybe SourceTypeIdeal
   -> Maybe Text
   -> Maybe SourceTypeKlarna
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Object
   -> Maybe SourceTypeMultibanco
   -> Maybe Text
   -> Maybe CustomerSources'Data'Object'
   -> Maybe CustomerSources'Data'Owner'
   -> Maybe SourceTypeP24
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe SourceReceiverFlow
   -> Maybe CustomerSources'Data'Recipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe CustomerSources'Data'Transactions'
   -> Maybe CustomerSources'Data'Type'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> CustomerSources'Data')
-> Parser (Maybe Text)
-> Parser
     (Maybe SourceTypeGiropay
      -> Maybe Text
      -> Maybe SourceTypeIdeal
      -> Maybe Text
      -> Maybe SourceTypeKlarna
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Object
      -> Maybe SourceTypeMultibanco
      -> Maybe Text
      -> Maybe CustomerSources'Data'Object'
      -> Maybe CustomerSources'Data'Owner'
      -> Maybe SourceTypeP24
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe SourceReceiverFlow
      -> Maybe CustomerSources'Data'Recipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe CustomerSources'Data'Transactions'
      -> Maybe CustomerSources'Data'Type'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> CustomerSources'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 SourceTypeGiropay
   -> Maybe Text
   -> Maybe SourceTypeIdeal
   -> Maybe Text
   -> Maybe SourceTypeKlarna
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Object
   -> Maybe SourceTypeMultibanco
   -> Maybe Text
   -> Maybe CustomerSources'Data'Object'
   -> Maybe CustomerSources'Data'Owner'
   -> Maybe SourceTypeP24
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe SourceReceiverFlow
   -> Maybe CustomerSources'Data'Recipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe CustomerSources'Data'Transactions'
   -> Maybe CustomerSources'Data'Type'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> CustomerSources'Data')
-> Parser (Maybe SourceTypeGiropay)
-> Parser
     (Maybe Text
      -> Maybe SourceTypeIdeal
      -> Maybe Text
      -> Maybe SourceTypeKlarna
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Object
      -> Maybe SourceTypeMultibanco
      -> Maybe Text
      -> Maybe CustomerSources'Data'Object'
      -> Maybe CustomerSources'Data'Owner'
      -> Maybe SourceTypeP24
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe SourceReceiverFlow
      -> Maybe CustomerSources'Data'Recipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe CustomerSources'Data'Transactions'
      -> Maybe CustomerSources'Data'Type'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> CustomerSources'Data')
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 SourceTypeKlarna
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Object
   -> Maybe SourceTypeMultibanco
   -> Maybe Text
   -> Maybe CustomerSources'Data'Object'
   -> Maybe CustomerSources'Data'Owner'
   -> Maybe SourceTypeP24
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe SourceReceiverFlow
   -> Maybe CustomerSources'Data'Recipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe CustomerSources'Data'Transactions'
   -> Maybe CustomerSources'Data'Type'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> CustomerSources'Data')
-> Parser (Maybe Text)
-> Parser
     (Maybe SourceTypeIdeal
      -> Maybe Text
      -> Maybe SourceTypeKlarna
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Object
      -> Maybe SourceTypeMultibanco
      -> Maybe Text
      -> Maybe CustomerSources'Data'Object'
      -> Maybe CustomerSources'Data'Owner'
      -> Maybe SourceTypeP24
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe SourceReceiverFlow
      -> Maybe CustomerSources'Data'Recipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe CustomerSources'Data'Transactions'
      -> Maybe CustomerSources'Data'Type'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> CustomerSources'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 SourceTypeIdeal
   -> Maybe Text
   -> Maybe SourceTypeKlarna
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Object
   -> Maybe SourceTypeMultibanco
   -> Maybe Text
   -> Maybe CustomerSources'Data'Object'
   -> Maybe CustomerSources'Data'Owner'
   -> Maybe SourceTypeP24
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe SourceReceiverFlow
   -> Maybe CustomerSources'Data'Recipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe CustomerSources'Data'Transactions'
   -> Maybe CustomerSources'Data'Type'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> CustomerSources'Data')
-> Parser (Maybe SourceTypeIdeal)
-> Parser
     (Maybe Text
      -> Maybe SourceTypeKlarna
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Object
      -> Maybe SourceTypeMultibanco
      -> Maybe Text
      -> Maybe CustomerSources'Data'Object'
      -> Maybe CustomerSources'Data'Owner'
      -> Maybe SourceTypeP24
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe SourceReceiverFlow
      -> Maybe CustomerSources'Data'Recipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe CustomerSources'Data'Transactions'
      -> Maybe CustomerSources'Data'Type'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> CustomerSources'Data')
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 SourceTypeKlarna
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Object
   -> Maybe SourceTypeMultibanco
   -> Maybe Text
   -> Maybe CustomerSources'Data'Object'
   -> Maybe CustomerSources'Data'Owner'
   -> Maybe SourceTypeP24
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe SourceReceiverFlow
   -> Maybe CustomerSources'Data'Recipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe CustomerSources'Data'Transactions'
   -> Maybe CustomerSources'Data'Type'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> CustomerSources'Data')
-> Parser (Maybe Text)
-> Parser
     (Maybe SourceTypeKlarna
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Object
      -> Maybe SourceTypeMultibanco
      -> Maybe Text
      -> Maybe CustomerSources'Data'Object'
      -> Maybe CustomerSources'Data'Owner'
      -> Maybe SourceTypeP24
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe SourceReceiverFlow
      -> Maybe CustomerSources'Data'Recipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe CustomerSources'Data'Transactions'
      -> Maybe CustomerSources'Data'Type'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> CustomerSources'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
"inbound_address")) Parser
  (Maybe SourceTypeKlarna
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Object
   -> Maybe SourceTypeMultibanco
   -> Maybe Text
   -> Maybe CustomerSources'Data'Object'
   -> Maybe CustomerSources'Data'Owner'
   -> Maybe SourceTypeP24
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe SourceReceiverFlow
   -> Maybe CustomerSources'Data'Recipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe CustomerSources'Data'Transactions'
   -> Maybe CustomerSources'Data'Type'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> CustomerSources'Data')
-> Parser (Maybe SourceTypeKlarna)
-> Parser
     (Maybe Text
      -> Maybe Bool
      -> Maybe Object
      -> Maybe SourceTypeMultibanco
      -> Maybe Text
      -> Maybe CustomerSources'Data'Object'
      -> Maybe CustomerSources'Data'Owner'
      -> Maybe SourceTypeP24
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe SourceReceiverFlow
      -> Maybe CustomerSources'Data'Recipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe CustomerSources'Data'Transactions'
      -> Maybe CustomerSources'Data'Type'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> CustomerSources'Data')
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 CustomerSources'Data'Object'
   -> Maybe CustomerSources'Data'Owner'
   -> Maybe SourceTypeP24
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe SourceReceiverFlow
   -> Maybe CustomerSources'Data'Recipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe CustomerSources'Data'Transactions'
   -> Maybe CustomerSources'Data'Type'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> CustomerSources'Data')
-> Parser (Maybe Text)
-> Parser
     (Maybe Bool
      -> Maybe Object
      -> Maybe SourceTypeMultibanco
      -> Maybe Text
      -> Maybe CustomerSources'Data'Object'
      -> Maybe CustomerSources'Data'Owner'
      -> Maybe SourceTypeP24
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe SourceReceiverFlow
      -> Maybe CustomerSources'Data'Recipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe CustomerSources'Data'Transactions'
      -> Maybe CustomerSources'Data'Type'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> CustomerSources'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 Bool
   -> Maybe Object
   -> Maybe SourceTypeMultibanco
   -> Maybe Text
   -> Maybe CustomerSources'Data'Object'
   -> Maybe CustomerSources'Data'Owner'
   -> Maybe SourceTypeP24
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe SourceReceiverFlow
   -> Maybe CustomerSources'Data'Recipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe CustomerSources'Data'Transactions'
   -> Maybe CustomerSources'Data'Type'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> CustomerSources'Data')
-> Parser (Maybe Bool)
-> Parser
     (Maybe Object
      -> Maybe SourceTypeMultibanco
      -> Maybe Text
      -> Maybe CustomerSources'Data'Object'
      -> Maybe CustomerSources'Data'Owner'
      -> Maybe SourceTypeP24
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe SourceReceiverFlow
      -> Maybe CustomerSources'Data'Recipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe CustomerSources'Data'Transactions'
      -> Maybe CustomerSources'Data'Type'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> CustomerSources'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
"livemode")) Parser
  (Maybe Object
   -> Maybe SourceTypeMultibanco
   -> Maybe Text
   -> Maybe CustomerSources'Data'Object'
   -> Maybe CustomerSources'Data'Owner'
   -> Maybe SourceTypeP24
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe SourceReceiverFlow
   -> Maybe CustomerSources'Data'Recipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe CustomerSources'Data'Transactions'
   -> Maybe CustomerSources'Data'Type'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> CustomerSources'Data')
-> Parser (Maybe Object)
-> Parser
     (Maybe SourceTypeMultibanco
      -> Maybe Text
      -> Maybe CustomerSources'Data'Object'
      -> Maybe CustomerSources'Data'Owner'
      -> Maybe SourceTypeP24
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe SourceReceiverFlow
      -> Maybe CustomerSources'Data'Recipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe CustomerSources'Data'Transactions'
      -> Maybe CustomerSources'Data'Type'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> CustomerSources'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 SourceTypeMultibanco
   -> Maybe Text
   -> Maybe CustomerSources'Data'Object'
   -> Maybe CustomerSources'Data'Owner'
   -> Maybe SourceTypeP24
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe SourceReceiverFlow
   -> Maybe CustomerSources'Data'Recipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe CustomerSources'Data'Transactions'
   -> Maybe CustomerSources'Data'Type'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> CustomerSources'Data')
-> Parser (Maybe SourceTypeMultibanco)
-> Parser
     (Maybe Text
      -> Maybe CustomerSources'Data'Object'
      -> Maybe CustomerSources'Data'Owner'
      -> Maybe SourceTypeP24
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe SourceReceiverFlow
      -> Maybe CustomerSources'Data'Recipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe CustomerSources'Data'Transactions'
      -> Maybe CustomerSources'Data'Type'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> CustomerSources'Data')
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 CustomerSources'Data'Object'
   -> Maybe CustomerSources'Data'Owner'
   -> Maybe SourceTypeP24
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe SourceReceiverFlow
   -> Maybe CustomerSources'Data'Recipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe CustomerSources'Data'Transactions'
   -> Maybe CustomerSources'Data'Type'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> CustomerSources'Data')
-> Parser (Maybe Text)
-> Parser
     (Maybe CustomerSources'Data'Object'
      -> Maybe CustomerSources'Data'Owner'
      -> Maybe SourceTypeP24
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe SourceReceiverFlow
      -> Maybe CustomerSources'Data'Recipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe CustomerSources'Data'Transactions'
      -> Maybe CustomerSources'Data'Type'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> CustomerSources'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 CustomerSources'Data'Object'
   -> Maybe CustomerSources'Data'Owner'
   -> Maybe SourceTypeP24
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe SourceReceiverFlow
   -> Maybe CustomerSources'Data'Recipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe CustomerSources'Data'Transactions'
   -> Maybe CustomerSources'Data'Type'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> CustomerSources'Data')
-> Parser (Maybe CustomerSources'Data'Object')
-> Parser
     (Maybe CustomerSources'Data'Owner'
      -> Maybe SourceTypeP24
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe SourceReceiverFlow
      -> Maybe CustomerSources'Data'Recipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe CustomerSources'Data'Transactions'
      -> Maybe CustomerSources'Data'Type'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> CustomerSources'Data')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe CustomerSources'Data'Object')
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"object")) Parser
  (Maybe CustomerSources'Data'Owner'
   -> Maybe SourceTypeP24
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe SourceReceiverFlow
   -> Maybe CustomerSources'Data'Recipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe CustomerSources'Data'Transactions'
   -> Maybe CustomerSources'Data'Type'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> CustomerSources'Data')
-> Parser (Maybe CustomerSources'Data'Owner')
-> Parser
     (Maybe SourceTypeP24
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe SourceReceiverFlow
      -> Maybe CustomerSources'Data'Recipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe CustomerSources'Data'Transactions'
      -> Maybe CustomerSources'Data'Type'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> CustomerSources'Data')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe CustomerSources'Data'Owner')
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 SourceReceiverFlow
   -> Maybe CustomerSources'Data'Recipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe CustomerSources'Data'Transactions'
   -> Maybe CustomerSources'Data'Type'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> CustomerSources'Data')
-> Parser (Maybe SourceTypeP24)
-> Parser
     (Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe SourceReceiverFlow
      -> Maybe CustomerSources'Data'Recipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe CustomerSources'Data'Transactions'
      -> Maybe CustomerSources'Data'Type'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> CustomerSources'Data')
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 SourceReceiverFlow
   -> Maybe CustomerSources'Data'Recipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe CustomerSources'Data'Transactions'
   -> Maybe CustomerSources'Data'Type'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> CustomerSources'Data')
-> Parser (Maybe Text)
-> Parser
     (Maybe Int
      -> Maybe Text
      -> Maybe SourceReceiverFlow
      -> Maybe CustomerSources'Data'Recipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe CustomerSources'Data'Transactions'
      -> Maybe CustomerSources'Data'Type'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> CustomerSources'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
"payment")) Parser
  (Maybe Int
   -> Maybe Text
   -> Maybe SourceReceiverFlow
   -> Maybe CustomerSources'Data'Recipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe CustomerSources'Data'Transactions'
   -> Maybe CustomerSources'Data'Type'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> CustomerSources'Data')
-> Parser (Maybe Int)
-> Parser
     (Maybe Text
      -> Maybe SourceReceiverFlow
      -> Maybe CustomerSources'Data'Recipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe CustomerSources'Data'Transactions'
      -> Maybe CustomerSources'Data'Type'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> CustomerSources'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
"payment_amount")) Parser
  (Maybe Text
   -> Maybe SourceReceiverFlow
   -> Maybe CustomerSources'Data'Recipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe CustomerSources'Data'Transactions'
   -> Maybe CustomerSources'Data'Type'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> CustomerSources'Data')
-> Parser (Maybe Text)
-> Parser
     (Maybe SourceReceiverFlow
      -> Maybe CustomerSources'Data'Recipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe CustomerSources'Data'Transactions'
      -> Maybe CustomerSources'Data'Type'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> CustomerSources'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
"payment_currency")) Parser
  (Maybe SourceReceiverFlow
   -> Maybe CustomerSources'Data'Recipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe CustomerSources'Data'Transactions'
   -> Maybe CustomerSources'Data'Type'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> CustomerSources'Data')
-> Parser (Maybe SourceReceiverFlow)
-> Parser
     (Maybe CustomerSources'Data'Recipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe CustomerSources'Data'Transactions'
      -> Maybe CustomerSources'Data'Type'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> CustomerSources'Data')
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 CustomerSources'Data'Recipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe CustomerSources'Data'Transactions'
   -> Maybe CustomerSources'Data'Type'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> CustomerSources'Data')
-> Parser (Maybe CustomerSources'Data'Recipient'Variants)
-> Parser
     (Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe CustomerSources'Data'Transactions'
      -> Maybe CustomerSources'Data'Type'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> CustomerSources'Data')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text -> Parser (Maybe CustomerSources'Data'Recipient'Variants)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"recipient")) Parser
  (Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe CustomerSources'Data'Transactions'
   -> Maybe CustomerSources'Data'Type'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> CustomerSources'Data')
-> Parser (Maybe SourceRedirectFlow)
-> Parser
     (Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe CustomerSources'Data'Transactions'
      -> Maybe CustomerSources'Data'Type'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> CustomerSources'Data')
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 Bool
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe CustomerSources'Data'Transactions'
   -> Maybe CustomerSources'Data'Type'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> CustomerSources'Data')
-> Parser (Maybe Text)
-> Parser
     (Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe CustomerSources'Data'Transactions'
      -> Maybe CustomerSources'Data'Type'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> CustomerSources'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
"refund_address")) Parser
  (Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe CustomerSources'Data'Transactions'
   -> Maybe CustomerSources'Data'Type'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> CustomerSources'Data')
-> Parser (Maybe Bool)
-> Parser
     (Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe CustomerSources'Data'Transactions'
      -> Maybe CustomerSources'Data'Type'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> CustomerSources'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
"reusable")) Parser
  (Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe CustomerSources'Data'Transactions'
   -> Maybe CustomerSources'Data'Type'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> CustomerSources'Data')
-> Parser (Maybe Text)
-> Parser
     (Maybe SourceTypeSepaDebit
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe CustomerSources'Data'Transactions'
      -> Maybe CustomerSources'Data'Type'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> CustomerSources'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 SourceTypeSepaDebit
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe CustomerSources'Data'Transactions'
   -> Maybe CustomerSources'Data'Type'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> CustomerSources'Data')
-> Parser (Maybe SourceTypeSepaDebit)
-> Parser
     (Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe CustomerSources'Data'Transactions'
      -> Maybe CustomerSources'Data'Type'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> CustomerSources'Data')
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 SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe CustomerSources'Data'Transactions'
   -> Maybe CustomerSources'Data'Type'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> CustomerSources'Data')
-> Parser (Maybe SourceTypeSofort)
-> Parser
     (Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe CustomerSources'Data'Transactions'
      -> Maybe CustomerSources'Data'Type'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> CustomerSources'Data')
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 CustomerSources'Data'Transactions'
   -> Maybe CustomerSources'Data'Type'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> CustomerSources'Data')
-> Parser (Maybe SourceOrder)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe CustomerSources'Data'Transactions'
      -> Maybe CustomerSources'Data'Type'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> CustomerSources'Data')
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 CustomerSources'Data'Transactions'
   -> Maybe CustomerSources'Data'Type'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> CustomerSources'Data')
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe CustomerSources'Data'Transactions'
      -> Maybe CustomerSources'Data'Type'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> CustomerSources'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
"statement_descriptor")) Parser
  (Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe CustomerSources'Data'Transactions'
   -> Maybe CustomerSources'Data'Type'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> CustomerSources'Data')
-> Parser (Maybe Text)
-> Parser
     (Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe CustomerSources'Data'Transactions'
      -> Maybe CustomerSources'Data'Type'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> CustomerSources'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 SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe CustomerSources'Data'Transactions'
   -> Maybe CustomerSources'Data'Type'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> CustomerSources'Data')
-> Parser (Maybe SourceTypeThreeDSecure)
-> Parser
     (Maybe Text
      -> Maybe CustomerSources'Data'Transactions'
      -> Maybe CustomerSources'Data'Type'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> CustomerSources'Data')
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 CustomerSources'Data'Transactions'
   -> Maybe CustomerSources'Data'Type'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> CustomerSources'Data')
-> Parser (Maybe Text)
-> Parser
     (Maybe CustomerSources'Data'Transactions'
      -> Maybe CustomerSources'Data'Type'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> CustomerSources'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")) Parser
  (Maybe CustomerSources'Data'Transactions'
   -> Maybe CustomerSources'Data'Type'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> CustomerSources'Data')
-> Parser (Maybe CustomerSources'Data'Transactions')
-> Parser
     (Maybe CustomerSources'Data'Type'
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> CustomerSources'Data')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe CustomerSources'Data'Transactions')
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"transactions")) Parser
  (Maybe CustomerSources'Data'Type'
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> CustomerSources'Data')
-> Parser (Maybe CustomerSources'Data'Type')
-> Parser
     (Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> CustomerSources'Data')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe CustomerSources'Data'Type')
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
   -> CustomerSources'Data')
-> Parser (Maybe Bool)
-> Parser
     (Maybe Text
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> CustomerSources'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
"uncaptured_funds")) Parser
  (Maybe Text
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> CustomerSources'Data')
-> Parser (Maybe Text)
-> Parser
     (Maybe Bool
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> CustomerSources'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
"usage")) Parser
  (Maybe Bool
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> CustomerSources'Data')
-> Parser (Maybe Bool)
-> Parser
     (Maybe Bool
      -> Maybe Text -> Maybe SourceTypeWechat -> CustomerSources'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
"used")) Parser
  (Maybe Bool
   -> Maybe Text -> Maybe SourceTypeWechat -> CustomerSources'Data')
-> Parser (Maybe Bool)
-> Parser
     (Maybe Text -> Maybe SourceTypeWechat -> CustomerSources'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
"used_for_payment")) Parser
  (Maybe Text -> Maybe SourceTypeWechat -> CustomerSources'Data')
-> Parser (Maybe Text)
-> Parser (Maybe SourceTypeWechat -> CustomerSources'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
"username")) Parser (Maybe SourceTypeWechat -> CustomerSources'Data')
-> Parser (Maybe SourceTypeWechat) -> Parser CustomerSources'Data'
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 'CustomerSources'Data'' with all required fields.
mkCustomerSources'Data' :: CustomerSources'Data'
mkCustomerSources'Data' :: CustomerSources'Data'
mkCustomerSources'Data' =
  CustomerSources'Data' :: Maybe CustomerSources'Data'Account'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 [CustomerSources'Data'AvailablePayoutMethods']
-> Maybe SourceTypeBancontact
-> Maybe Text
-> Maybe Int
-> Maybe Int
-> Maybe Text
-> Maybe Text
-> Maybe SourceTypeCard
-> Maybe SourceTypeCardPresent
-> Maybe Text
-> Maybe SourceCodeVerificationFlow
-> Maybe Text
-> Maybe Int
-> Maybe Text
-> Maybe CustomerSources'Data'Customer'Variants
-> Maybe Text
-> Maybe Bool
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe SourceTypeEps
-> Maybe Int
-> Maybe Int
-> Maybe Bool
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe SourceTypeGiropay
-> Maybe Text
-> Maybe SourceTypeIdeal
-> Maybe Text
-> Maybe SourceTypeKlarna
-> Maybe Text
-> Maybe Bool
-> Maybe Object
-> Maybe SourceTypeMultibanco
-> Maybe Text
-> Maybe CustomerSources'Data'Object'
-> Maybe CustomerSources'Data'Owner'
-> Maybe SourceTypeP24
-> Maybe Text
-> Maybe Int
-> Maybe Text
-> Maybe SourceReceiverFlow
-> Maybe CustomerSources'Data'Recipient'Variants
-> Maybe SourceRedirectFlow
-> Maybe Text
-> Maybe Bool
-> Maybe Text
-> Maybe SourceTypeSepaDebit
-> Maybe SourceTypeSofort
-> Maybe SourceOrder
-> Maybe Text
-> Maybe Text
-> Maybe SourceTypeThreeDSecure
-> Maybe Text
-> Maybe CustomerSources'Data'Transactions'
-> Maybe CustomerSources'Data'Type'
-> Maybe Bool
-> Maybe Text
-> Maybe Bool
-> Maybe Bool
-> Maybe Text
-> Maybe SourceTypeWechat
-> CustomerSources'Data'
CustomerSources'Data'
    { customerSources'Data'Account :: Maybe CustomerSources'Data'Account'Variants
customerSources'Data'Account = Maybe CustomerSources'Data'Account'Variants
forall a. Maybe a
GHC.Maybe.Nothing,
      customerSources'Data'AccountHolderName :: Maybe Text
customerSources'Data'AccountHolderName = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      customerSources'Data'AccountHolderType :: Maybe Text
customerSources'Data'AccountHolderType = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      customerSources'Data'AchCreditTransfer :: Maybe SourceTypeAchCreditTransfer
customerSources'Data'AchCreditTransfer = Maybe SourceTypeAchCreditTransfer
forall a. Maybe a
GHC.Maybe.Nothing,
      customerSources'Data'AchDebit :: Maybe SourceTypeAchDebit
customerSources'Data'AchDebit = Maybe SourceTypeAchDebit
forall a. Maybe a
GHC.Maybe.Nothing,
      customerSources'Data'AcssDebit :: Maybe SourceTypeAcssDebit
customerSources'Data'AcssDebit = Maybe SourceTypeAcssDebit
forall a. Maybe a
GHC.Maybe.Nothing,
      customerSources'Data'Active :: Maybe Bool
customerSources'Data'Active = Maybe Bool
forall a. Maybe a
GHC.Maybe.Nothing,
      customerSources'Data'AddressCity :: Maybe Text
customerSources'Data'AddressCity = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      customerSources'Data'AddressCountry :: Maybe Text
customerSources'Data'AddressCountry = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      customerSources'Data'AddressLine1 :: Maybe Text
customerSources'Data'AddressLine1 = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      customerSources'Data'AddressLine1Check :: Maybe Text
customerSources'Data'AddressLine1Check = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      customerSources'Data'AddressLine2 :: Maybe Text
customerSources'Data'AddressLine2 = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      customerSources'Data'AddressState :: Maybe Text
customerSources'Data'AddressState = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      customerSources'Data'AddressZip :: Maybe Text
customerSources'Data'AddressZip = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      customerSources'Data'AddressZipCheck :: Maybe Text
customerSources'Data'AddressZipCheck = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      customerSources'Data'Alipay :: Maybe SourceTypeAlipay
customerSources'Data'Alipay = Maybe SourceTypeAlipay
forall a. Maybe a
GHC.Maybe.Nothing,
      customerSources'Data'Amount :: Maybe Int
customerSources'Data'Amount = Maybe Int
forall a. Maybe a
GHC.Maybe.Nothing,
      customerSources'Data'AmountReceived :: Maybe Int
customerSources'Data'AmountReceived = Maybe Int
forall a. Maybe a
GHC.Maybe.Nothing,
      customerSources'Data'AuBecsDebit :: Maybe SourceTypeAuBecsDebit
customerSources'Data'AuBecsDebit = Maybe SourceTypeAuBecsDebit
forall a. Maybe a
GHC.Maybe.Nothing,
      customerSources'Data'AvailablePayoutMethods :: Maybe [CustomerSources'Data'AvailablePayoutMethods']
customerSources'Data'AvailablePayoutMethods = Maybe [CustomerSources'Data'AvailablePayoutMethods']
forall a. Maybe a
GHC.Maybe.Nothing,
      customerSources'Data'Bancontact :: Maybe SourceTypeBancontact
customerSources'Data'Bancontact = Maybe SourceTypeBancontact
forall a. Maybe a
GHC.Maybe.Nothing,
      customerSources'Data'BankName :: Maybe Text
customerSources'Data'BankName = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      customerSources'Data'BitcoinAmount :: Maybe Int
customerSources'Data'BitcoinAmount = Maybe Int
forall a. Maybe a
GHC.Maybe.Nothing,
      customerSources'Data'BitcoinAmountReceived :: Maybe Int
customerSources'Data'BitcoinAmountReceived = Maybe Int
forall a. Maybe a
GHC.Maybe.Nothing,
      customerSources'Data'BitcoinUri :: Maybe Text
customerSources'Data'BitcoinUri = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      customerSources'Data'Brand :: Maybe Text
customerSources'Data'Brand = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      customerSources'Data'Card :: Maybe SourceTypeCard
customerSources'Data'Card = Maybe SourceTypeCard
forall a. Maybe a
GHC.Maybe.Nothing,
      customerSources'Data'CardPresent :: Maybe SourceTypeCardPresent
customerSources'Data'CardPresent = Maybe SourceTypeCardPresent
forall a. Maybe a
GHC.Maybe.Nothing,
      customerSources'Data'ClientSecret :: Maybe Text
customerSources'Data'ClientSecret = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      customerSources'Data'CodeVerification :: Maybe SourceCodeVerificationFlow
customerSources'Data'CodeVerification = Maybe SourceCodeVerificationFlow
forall a. Maybe a
GHC.Maybe.Nothing,
      customerSources'Data'Country :: Maybe Text
customerSources'Data'Country = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      customerSources'Data'Created :: Maybe Int
customerSources'Data'Created = Maybe Int
forall a. Maybe a
GHC.Maybe.Nothing,
      customerSources'Data'Currency :: Maybe Text
customerSources'Data'Currency = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      customerSources'Data'Customer :: Maybe CustomerSources'Data'Customer'Variants
customerSources'Data'Customer = Maybe CustomerSources'Data'Customer'Variants
forall a. Maybe a
GHC.Maybe.Nothing,
      customerSources'Data'CvcCheck :: Maybe Text
customerSources'Data'CvcCheck = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      customerSources'Data'DefaultForCurrency :: Maybe Bool
customerSources'Data'DefaultForCurrency = Maybe Bool
forall a. Maybe a
GHC.Maybe.Nothing,
      customerSources'Data'Description :: Maybe Text
customerSources'Data'Description = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      customerSources'Data'DynamicLast4 :: Maybe Text
customerSources'Data'DynamicLast4 = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      customerSources'Data'Email :: Maybe Text
customerSources'Data'Email = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      customerSources'Data'Eps :: Maybe SourceTypeEps
customerSources'Data'Eps = Maybe SourceTypeEps
forall a. Maybe a
GHC.Maybe.Nothing,
      customerSources'Data'ExpMonth :: Maybe Int
customerSources'Data'ExpMonth = Maybe Int
forall a. Maybe a
GHC.Maybe.Nothing,
      customerSources'Data'ExpYear :: Maybe Int
customerSources'Data'ExpYear = Maybe Int
forall a. Maybe a
GHC.Maybe.Nothing,
      customerSources'Data'Filled :: Maybe Bool
customerSources'Data'Filled = Maybe Bool
forall a. Maybe a
GHC.Maybe.Nothing,
      customerSources'Data'Fingerprint :: Maybe Text
customerSources'Data'Fingerprint = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      customerSources'Data'Flow :: Maybe Text
customerSources'Data'Flow = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      customerSources'Data'Funding :: Maybe Text
customerSources'Data'Funding = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      customerSources'Data'Giropay :: Maybe SourceTypeGiropay
customerSources'Data'Giropay = Maybe SourceTypeGiropay
forall a. Maybe a
GHC.Maybe.Nothing,
      customerSources'Data'Id :: Maybe Text
customerSources'Data'Id = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      customerSources'Data'Ideal :: Maybe SourceTypeIdeal
customerSources'Data'Ideal = Maybe SourceTypeIdeal
forall a. Maybe a
GHC.Maybe.Nothing,
      customerSources'Data'InboundAddress :: Maybe Text
customerSources'Data'InboundAddress = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      customerSources'Data'Klarna :: Maybe SourceTypeKlarna
customerSources'Data'Klarna = Maybe SourceTypeKlarna
forall a. Maybe a
GHC.Maybe.Nothing,
      customerSources'Data'Last4 :: Maybe Text
customerSources'Data'Last4 = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      customerSources'Data'Livemode :: Maybe Bool
customerSources'Data'Livemode = Maybe Bool
forall a. Maybe a
GHC.Maybe.Nothing,
      customerSources'Data'Metadata :: Maybe Object
customerSources'Data'Metadata = Maybe Object
forall a. Maybe a
GHC.Maybe.Nothing,
      customerSources'Data'Multibanco :: Maybe SourceTypeMultibanco
customerSources'Data'Multibanco = Maybe SourceTypeMultibanco
forall a. Maybe a
GHC.Maybe.Nothing,
      customerSources'Data'Name :: Maybe Text
customerSources'Data'Name = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      customerSources'Data'Object :: Maybe CustomerSources'Data'Object'
customerSources'Data'Object = Maybe CustomerSources'Data'Object'
forall a. Maybe a
GHC.Maybe.Nothing,
      customerSources'Data'Owner :: Maybe CustomerSources'Data'Owner'
customerSources'Data'Owner = Maybe CustomerSources'Data'Owner'
forall a. Maybe a
GHC.Maybe.Nothing,
      customerSources'Data'P24 :: Maybe SourceTypeP24
customerSources'Data'P24 = Maybe SourceTypeP24
forall a. Maybe a
GHC.Maybe.Nothing,
      customerSources'Data'Payment :: Maybe Text
customerSources'Data'Payment = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      customerSources'Data'PaymentAmount :: Maybe Int
customerSources'Data'PaymentAmount = Maybe Int
forall a. Maybe a
GHC.Maybe.Nothing,
      customerSources'Data'PaymentCurrency :: Maybe Text
customerSources'Data'PaymentCurrency = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      customerSources'Data'Receiver :: Maybe SourceReceiverFlow
customerSources'Data'Receiver = Maybe SourceReceiverFlow
forall a. Maybe a
GHC.Maybe.Nothing,
      customerSources'Data'Recipient :: Maybe CustomerSources'Data'Recipient'Variants
customerSources'Data'Recipient = Maybe CustomerSources'Data'Recipient'Variants
forall a. Maybe a
GHC.Maybe.Nothing,
      customerSources'Data'Redirect :: Maybe SourceRedirectFlow
customerSources'Data'Redirect = Maybe SourceRedirectFlow
forall a. Maybe a
GHC.Maybe.Nothing,
      customerSources'Data'RefundAddress :: Maybe Text
customerSources'Data'RefundAddress = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      customerSources'Data'Reusable :: Maybe Bool
customerSources'Data'Reusable = Maybe Bool
forall a. Maybe a
GHC.Maybe.Nothing,
      customerSources'Data'RoutingNumber :: Maybe Text
customerSources'Data'RoutingNumber = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      customerSources'Data'SepaDebit :: Maybe SourceTypeSepaDebit
customerSources'Data'SepaDebit = Maybe SourceTypeSepaDebit
forall a. Maybe a
GHC.Maybe.Nothing,
      customerSources'Data'Sofort :: Maybe SourceTypeSofort
customerSources'Data'Sofort = Maybe SourceTypeSofort
forall a. Maybe a
GHC.Maybe.Nothing,
      customerSources'Data'SourceOrder :: Maybe SourceOrder
customerSources'Data'SourceOrder = Maybe SourceOrder
forall a. Maybe a
GHC.Maybe.Nothing,
      customerSources'Data'StatementDescriptor :: Maybe Text
customerSources'Data'StatementDescriptor = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      customerSources'Data'Status :: Maybe Text
customerSources'Data'Status = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      customerSources'Data'ThreeDSecure :: Maybe SourceTypeThreeDSecure
customerSources'Data'ThreeDSecure = Maybe SourceTypeThreeDSecure
forall a. Maybe a
GHC.Maybe.Nothing,
      customerSources'Data'TokenizationMethod :: Maybe Text
customerSources'Data'TokenizationMethod = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      customerSources'Data'Transactions :: Maybe CustomerSources'Data'Transactions'
customerSources'Data'Transactions = Maybe CustomerSources'Data'Transactions'
forall a. Maybe a
GHC.Maybe.Nothing,
      customerSources'Data'Type :: Maybe CustomerSources'Data'Type'
customerSources'Data'Type = Maybe CustomerSources'Data'Type'
forall a. Maybe a
GHC.Maybe.Nothing,
      customerSources'Data'UncapturedFunds :: Maybe Bool
customerSources'Data'UncapturedFunds = Maybe Bool
forall a. Maybe a
GHC.Maybe.Nothing,
      customerSources'Data'Usage :: Maybe Text
customerSources'Data'Usage = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      customerSources'Data'Used :: Maybe Bool
customerSources'Data'Used = Maybe Bool
forall a. Maybe a
GHC.Maybe.Nothing,
      customerSources'Data'UsedForPayment :: Maybe Bool
customerSources'Data'UsedForPayment = Maybe Bool
forall a. Maybe a
GHC.Maybe.Nothing,
      customerSources'Data'Username :: Maybe Text
customerSources'Data'Username = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      customerSources'Data'Wechat :: Maybe SourceTypeWechat
customerSources'Data'Wechat = Maybe SourceTypeWechat
forall a. Maybe a
GHC.Maybe.Nothing
    }

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

instance Data.Aeson.Types.ToJSON.ToJSON CustomerSources'Data'Account'Variants where
  toJSON :: CustomerSources'Data'Account'Variants -> Value
toJSON (CustomerSources'Data'Account'Text Text
a) = Text -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON Text
a
  toJSON (CustomerSources'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 CustomerSources'Data'Account'Variants where
  parseJSON :: Value -> Parser CustomerSources'Data'Account'Variants
parseJSON Value
val = case (Text -> CustomerSources'Data'Account'Variants
CustomerSources'Data'Account'Text (Text -> CustomerSources'Data'Account'Variants)
-> Result Text -> Result CustomerSources'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 CustomerSources'Data'Account'Variants
-> Result CustomerSources'Data'Account'Variants
-> Result CustomerSources'Data'Account'Variants
forall (f :: * -> *) a. Alternative f => f a -> f a -> f a
GHC.Base.<|> ((Account -> CustomerSources'Data'Account'Variants
CustomerSources'Data'Account'Account (Account -> CustomerSources'Data'Account'Variants)
-> Result Account -> Result CustomerSources'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 CustomerSources'Data'Account'Variants
-> Result CustomerSources'Data'Account'Variants
-> Result CustomerSources'Data'Account'Variants
forall (f :: * -> *) a. Alternative f => f a -> f a -> f a
GHC.Base.<|> String -> Result CustomerSources'Data'Account'Variants
forall a. String -> Result a
Data.Aeson.Types.Internal.Error String
"No variant matched") of
    Data.Aeson.Types.Internal.Success CustomerSources'Data'Account'Variants
a -> CustomerSources'Data'Account'Variants
-> Parser CustomerSources'Data'Account'Variants
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure CustomerSources'Data'Account'Variants
a
    Data.Aeson.Types.Internal.Error String
a -> String -> Parser CustomerSources'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.customer.properties.sources.properties.data.items.anyOf.properties.available_payout_methods.items@ in the specification.
data CustomerSources'Data'AvailablePayoutMethods'
  = -- | This case is used if the value encountered during decoding does not match any of the provided cases in the specification.
    CustomerSources'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.
    CustomerSources'Data'AvailablePayoutMethods'Typed Data.Text.Internal.Text
  | -- | Represents the JSON value @"instant"@
    CustomerSources'Data'AvailablePayoutMethods'EnumInstant
  | -- | Represents the JSON value @"standard"@
    CustomerSources'Data'AvailablePayoutMethods'EnumStandard
  deriving (Int -> CustomerSources'Data'AvailablePayoutMethods' -> ShowS
[CustomerSources'Data'AvailablePayoutMethods'] -> ShowS
CustomerSources'Data'AvailablePayoutMethods' -> String
(Int -> CustomerSources'Data'AvailablePayoutMethods' -> ShowS)
-> (CustomerSources'Data'AvailablePayoutMethods' -> String)
-> ([CustomerSources'Data'AvailablePayoutMethods'] -> ShowS)
-> Show CustomerSources'Data'AvailablePayoutMethods'
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CustomerSources'Data'AvailablePayoutMethods'] -> ShowS
$cshowList :: [CustomerSources'Data'AvailablePayoutMethods'] -> ShowS
show :: CustomerSources'Data'AvailablePayoutMethods' -> String
$cshow :: CustomerSources'Data'AvailablePayoutMethods' -> String
showsPrec :: Int -> CustomerSources'Data'AvailablePayoutMethods' -> ShowS
$cshowsPrec :: Int -> CustomerSources'Data'AvailablePayoutMethods' -> ShowS
GHC.Show.Show, CustomerSources'Data'AvailablePayoutMethods'
-> CustomerSources'Data'AvailablePayoutMethods' -> Bool
(CustomerSources'Data'AvailablePayoutMethods'
 -> CustomerSources'Data'AvailablePayoutMethods' -> Bool)
-> (CustomerSources'Data'AvailablePayoutMethods'
    -> CustomerSources'Data'AvailablePayoutMethods' -> Bool)
-> Eq CustomerSources'Data'AvailablePayoutMethods'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CustomerSources'Data'AvailablePayoutMethods'
-> CustomerSources'Data'AvailablePayoutMethods' -> Bool
$c/= :: CustomerSources'Data'AvailablePayoutMethods'
-> CustomerSources'Data'AvailablePayoutMethods' -> Bool
== :: CustomerSources'Data'AvailablePayoutMethods'
-> CustomerSources'Data'AvailablePayoutMethods' -> Bool
$c== :: CustomerSources'Data'AvailablePayoutMethods'
-> CustomerSources'Data'AvailablePayoutMethods' -> Bool
GHC.Classes.Eq)

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

instance Data.Aeson.Types.FromJSON.FromJSON CustomerSources'Data'AvailablePayoutMethods' where
  parseJSON :: Value -> Parser CustomerSources'Data'AvailablePayoutMethods'
parseJSON Value
val =
    CustomerSources'Data'AvailablePayoutMethods'
-> Parser CustomerSources'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" -> CustomerSources'Data'AvailablePayoutMethods'
CustomerSources'Data'AvailablePayoutMethods'EnumInstant
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"standard" -> CustomerSources'Data'AvailablePayoutMethods'
CustomerSources'Data'AvailablePayoutMethods'EnumStandard
            | Bool
GHC.Base.otherwise -> Value -> CustomerSources'Data'AvailablePayoutMethods'
CustomerSources'Data'AvailablePayoutMethods'Other Value
val
      )

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

instance Data.Aeson.Types.ToJSON.ToJSON CustomerSources'Data'Customer'Variants where
  toJSON :: CustomerSources'Data'Customer'Variants -> Value
toJSON (CustomerSources'Data'Customer'Text Text
a) = Text -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON Text
a
  toJSON (CustomerSources'Data'Customer'Customer Customer
a) = Customer -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON Customer
a
  toJSON (CustomerSources'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 CustomerSources'Data'Customer'Variants where
  parseJSON :: Value -> Parser CustomerSources'Data'Customer'Variants
parseJSON Value
val = case (Text -> CustomerSources'Data'Customer'Variants
CustomerSources'Data'Customer'Text (Text -> CustomerSources'Data'Customer'Variants)
-> Result Text -> Result CustomerSources'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 CustomerSources'Data'Customer'Variants
-> Result CustomerSources'Data'Customer'Variants
-> Result CustomerSources'Data'Customer'Variants
forall (f :: * -> *) a. Alternative f => f a -> f a -> f a
GHC.Base.<|> ((Customer -> CustomerSources'Data'Customer'Variants
CustomerSources'Data'Customer'Customer (Customer -> CustomerSources'Data'Customer'Variants)
-> Result Customer -> Result CustomerSources'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 CustomerSources'Data'Customer'Variants
-> Result CustomerSources'Data'Customer'Variants
-> Result CustomerSources'Data'Customer'Variants
forall (f :: * -> *) a. Alternative f => f a -> f a -> f a
GHC.Base.<|> ((DeletedCustomer -> CustomerSources'Data'Customer'Variants
CustomerSources'Data'Customer'DeletedCustomer (DeletedCustomer -> CustomerSources'Data'Customer'Variants)
-> Result DeletedCustomer
-> Result CustomerSources'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 CustomerSources'Data'Customer'Variants
-> Result CustomerSources'Data'Customer'Variants
-> Result CustomerSources'Data'Customer'Variants
forall (f :: * -> *) a. Alternative f => f a -> f a -> f a
GHC.Base.<|> String -> Result CustomerSources'Data'Customer'Variants
forall a. String -> Result a
Data.Aeson.Types.Internal.Error String
"No variant matched")) of
    Data.Aeson.Types.Internal.Success CustomerSources'Data'Customer'Variants
a -> CustomerSources'Data'Customer'Variants
-> Parser CustomerSources'Data'Customer'Variants
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure CustomerSources'Data'Customer'Variants
a
    Data.Aeson.Types.Internal.Error String
a -> String -> Parser CustomerSources'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.customer.properties.sources.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 CustomerSources'Data'Object'
  = -- | This case is used if the value encountered during decoding does not match any of the provided cases in the specification.
    CustomerSources'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.
    CustomerSources'Data'Object'Typed Data.Text.Internal.Text
  | -- | Represents the JSON value @"alipay_account"@
    CustomerSources'Data'Object'EnumAlipayAccount
  deriving (Int -> CustomerSources'Data'Object' -> ShowS
[CustomerSources'Data'Object'] -> ShowS
CustomerSources'Data'Object' -> String
(Int -> CustomerSources'Data'Object' -> ShowS)
-> (CustomerSources'Data'Object' -> String)
-> ([CustomerSources'Data'Object'] -> ShowS)
-> Show CustomerSources'Data'Object'
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CustomerSources'Data'Object'] -> ShowS
$cshowList :: [CustomerSources'Data'Object'] -> ShowS
show :: CustomerSources'Data'Object' -> String
$cshow :: CustomerSources'Data'Object' -> String
showsPrec :: Int -> CustomerSources'Data'Object' -> ShowS
$cshowsPrec :: Int -> CustomerSources'Data'Object' -> ShowS
GHC.Show.Show, CustomerSources'Data'Object'
-> CustomerSources'Data'Object' -> Bool
(CustomerSources'Data'Object'
 -> CustomerSources'Data'Object' -> Bool)
-> (CustomerSources'Data'Object'
    -> CustomerSources'Data'Object' -> Bool)
-> Eq CustomerSources'Data'Object'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CustomerSources'Data'Object'
-> CustomerSources'Data'Object' -> Bool
$c/= :: CustomerSources'Data'Object'
-> CustomerSources'Data'Object' -> Bool
== :: CustomerSources'Data'Object'
-> CustomerSources'Data'Object' -> Bool
$c== :: CustomerSources'Data'Object'
-> CustomerSources'Data'Object' -> Bool
GHC.Classes.Eq)

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

instance Data.Aeson.Types.FromJSON.FromJSON CustomerSources'Data'Object' where
  parseJSON :: Value -> Parser CustomerSources'Data'Object'
parseJSON Value
val =
    CustomerSources'Data'Object' -> Parser CustomerSources'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
"alipay_account" -> CustomerSources'Data'Object'
CustomerSources'Data'Object'EnumAlipayAccount
            | Bool
GHC.Base.otherwise -> Value -> CustomerSources'Data'Object'
CustomerSources'Data'Object'Other Value
val
      )

-- | Defines the object schema located at @components.schemas.customer.properties.sources.properties.data.items.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 CustomerSources'Data'Owner' = CustomerSources'Data'Owner'
  { -- | address: Owner\'s address.
    CustomerSources'Data'Owner'
-> Maybe CustomerSources'Data'Owner'Address'
customerSources'Data'Owner'Address :: (GHC.Maybe.Maybe CustomerSources'Data'Owner'Address'),
    -- | email: Owner\'s email address.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    CustomerSources'Data'Owner' -> Maybe Text
customerSources'Data'Owner'Email :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | name: Owner\'s full name.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    CustomerSources'Data'Owner' -> Maybe Text
customerSources'Data'Owner'Name :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | phone: Owner\'s phone number (including extension).
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    CustomerSources'Data'Owner' -> Maybe Text
customerSources'Data'Owner'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.
    CustomerSources'Data'Owner'
-> Maybe CustomerSources'Data'Owner'VerifiedAddress'
customerSources'Data'Owner'VerifiedAddress :: (GHC.Maybe.Maybe CustomerSources'Data'Owner'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
    CustomerSources'Data'Owner' -> Maybe Text
customerSources'Data'Owner'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
    CustomerSources'Data'Owner' -> Maybe Text
customerSources'Data'Owner'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
    CustomerSources'Data'Owner' -> Maybe Text
customerSources'Data'Owner'VerifiedPhone :: (GHC.Maybe.Maybe Data.Text.Internal.Text)
  }
  deriving
    ( Int -> CustomerSources'Data'Owner' -> ShowS
[CustomerSources'Data'Owner'] -> ShowS
CustomerSources'Data'Owner' -> String
(Int -> CustomerSources'Data'Owner' -> ShowS)
-> (CustomerSources'Data'Owner' -> String)
-> ([CustomerSources'Data'Owner'] -> ShowS)
-> Show CustomerSources'Data'Owner'
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CustomerSources'Data'Owner'] -> ShowS
$cshowList :: [CustomerSources'Data'Owner'] -> ShowS
show :: CustomerSources'Data'Owner' -> String
$cshow :: CustomerSources'Data'Owner' -> String
showsPrec :: Int -> CustomerSources'Data'Owner' -> ShowS
$cshowsPrec :: Int -> CustomerSources'Data'Owner' -> ShowS
GHC.Show.Show,
      CustomerSources'Data'Owner' -> CustomerSources'Data'Owner' -> Bool
(CustomerSources'Data'Owner'
 -> CustomerSources'Data'Owner' -> Bool)
-> (CustomerSources'Data'Owner'
    -> CustomerSources'Data'Owner' -> Bool)
-> Eq CustomerSources'Data'Owner'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CustomerSources'Data'Owner' -> CustomerSources'Data'Owner' -> Bool
$c/= :: CustomerSources'Data'Owner' -> CustomerSources'Data'Owner' -> Bool
== :: CustomerSources'Data'Owner' -> CustomerSources'Data'Owner' -> Bool
$c== :: CustomerSources'Data'Owner' -> CustomerSources'Data'Owner' -> Bool
GHC.Classes.Eq
    )

instance Data.Aeson.Types.ToJSON.ToJSON CustomerSources'Data'Owner' where
  toJSON :: CustomerSources'Data'Owner' -> Value
toJSON CustomerSources'Data'Owner'
obj = [Pair] -> Value
Data.Aeson.Types.Internal.object (Text
"address" Text -> Maybe CustomerSources'Data'Owner'Address' -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= CustomerSources'Data'Owner'
-> Maybe CustomerSources'Data'Owner'Address'
customerSources'Data'Owner'Address CustomerSources'Data'Owner'
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..= CustomerSources'Data'Owner' -> Maybe Text
customerSources'Data'Owner'Email CustomerSources'Data'Owner'
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..= CustomerSources'Data'Owner' -> Maybe Text
customerSources'Data'Owner'Name CustomerSources'Data'Owner'
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..= CustomerSources'Data'Owner' -> Maybe Text
customerSources'Data'Owner'Phone CustomerSources'Data'Owner'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"verified_address" Text -> Maybe CustomerSources'Data'Owner'VerifiedAddress' -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= CustomerSources'Data'Owner'
-> Maybe CustomerSources'Data'Owner'VerifiedAddress'
customerSources'Data'Owner'VerifiedAddress CustomerSources'Data'Owner'
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..= CustomerSources'Data'Owner' -> Maybe Text
customerSources'Data'Owner'VerifiedEmail CustomerSources'Data'Owner'
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..= CustomerSources'Data'Owner' -> Maybe Text
customerSources'Data'Owner'VerifiedName CustomerSources'Data'Owner'
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..= CustomerSources'Data'Owner' -> Maybe Text
customerSources'Data'Owner'VerifiedPhone CustomerSources'Data'Owner'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: CustomerSources'Data'Owner' -> Encoding
toEncoding CustomerSources'Data'Owner'
obj = Series -> Encoding
Data.Aeson.Encoding.Internal.pairs ((Text
"address" Text -> Maybe CustomerSources'Data'Owner'Address' -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= CustomerSources'Data'Owner'
-> Maybe CustomerSources'Data'Owner'Address'
customerSources'Data'Owner'Address CustomerSources'Data'Owner'
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..= CustomerSources'Data'Owner' -> Maybe Text
customerSources'Data'Owner'Email CustomerSources'Data'Owner'
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..= CustomerSources'Data'Owner' -> Maybe Text
customerSources'Data'Owner'Name CustomerSources'Data'Owner'
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..= CustomerSources'Data'Owner' -> Maybe Text
customerSources'Data'Owner'Phone CustomerSources'Data'Owner'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"verified_address" Text -> Maybe CustomerSources'Data'Owner'VerifiedAddress' -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= CustomerSources'Data'Owner'
-> Maybe CustomerSources'Data'Owner'VerifiedAddress'
customerSources'Data'Owner'VerifiedAddress CustomerSources'Data'Owner'
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..= CustomerSources'Data'Owner' -> Maybe Text
customerSources'Data'Owner'VerifiedEmail CustomerSources'Data'Owner'
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..= CustomerSources'Data'Owner' -> Maybe Text
customerSources'Data'Owner'VerifiedName CustomerSources'Data'Owner'
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..= CustomerSources'Data'Owner' -> Maybe Text
customerSources'Data'Owner'VerifiedPhone CustomerSources'Data'Owner'
obj))))))))

instance Data.Aeson.Types.FromJSON.FromJSON CustomerSources'Data'Owner' where
  parseJSON :: Value -> Parser CustomerSources'Data'Owner'
parseJSON = String
-> (Object -> Parser CustomerSources'Data'Owner')
-> Value
-> Parser CustomerSources'Data'Owner'
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.Aeson.Types.FromJSON.withObject String
"CustomerSources'Data'Owner'" (\Object
obj -> ((((((((Maybe CustomerSources'Data'Owner'Address'
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe CustomerSources'Data'Owner'VerifiedAddress'
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> CustomerSources'Data'Owner')
-> Parser
     (Maybe CustomerSources'Data'Owner'Address'
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe CustomerSources'Data'Owner'VerifiedAddress'
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> CustomerSources'Data'Owner')
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure Maybe CustomerSources'Data'Owner'Address'
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe CustomerSources'Data'Owner'VerifiedAddress'
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> CustomerSources'Data'Owner'
CustomerSources'Data'Owner' Parser
  (Maybe CustomerSources'Data'Owner'Address'
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe CustomerSources'Data'Owner'VerifiedAddress'
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> CustomerSources'Data'Owner')
-> Parser (Maybe CustomerSources'Data'Owner'Address')
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe CustomerSources'Data'Owner'VerifiedAddress'
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> CustomerSources'Data'Owner')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text -> Parser (Maybe CustomerSources'Data'Owner'Address')
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"address")) Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe CustomerSources'Data'Owner'VerifiedAddress'
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> CustomerSources'Data'Owner')
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe CustomerSources'Data'Owner'VerifiedAddress'
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> CustomerSources'Data'Owner')
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 CustomerSources'Data'Owner'VerifiedAddress'
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> CustomerSources'Data'Owner')
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe CustomerSources'Data'Owner'VerifiedAddress'
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> CustomerSources'Data'Owner')
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 CustomerSources'Data'Owner'VerifiedAddress'
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> CustomerSources'Data'Owner')
-> Parser (Maybe Text)
-> Parser
     (Maybe CustomerSources'Data'Owner'VerifiedAddress'
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> CustomerSources'Data'Owner')
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 CustomerSources'Data'Owner'VerifiedAddress'
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> CustomerSources'Data'Owner')
-> Parser (Maybe CustomerSources'Data'Owner'VerifiedAddress')
-> Parser
     (Maybe Text
      -> Maybe Text -> Maybe Text -> CustomerSources'Data'Owner')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser (Maybe CustomerSources'Data'Owner'VerifiedAddress')
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"verified_address")) Parser
  (Maybe Text
   -> Maybe Text -> Maybe Text -> CustomerSources'Data'Owner')
-> Parser (Maybe Text)
-> Parser (Maybe Text -> Maybe Text -> CustomerSources'Data'Owner')
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 -> CustomerSources'Data'Owner')
-> Parser (Maybe Text)
-> Parser (Maybe Text -> CustomerSources'Data'Owner')
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 -> CustomerSources'Data'Owner')
-> Parser (Maybe Text) -> Parser CustomerSources'Data'Owner'
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 'CustomerSources'Data'Owner'' with all required fields.
mkCustomerSources'Data'Owner' :: CustomerSources'Data'Owner'
mkCustomerSources'Data'Owner' :: CustomerSources'Data'Owner'
mkCustomerSources'Data'Owner' =
  CustomerSources'Data'Owner' :: Maybe CustomerSources'Data'Owner'Address'
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe CustomerSources'Data'Owner'VerifiedAddress'
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> CustomerSources'Data'Owner'
CustomerSources'Data'Owner'
    { customerSources'Data'Owner'Address :: Maybe CustomerSources'Data'Owner'Address'
customerSources'Data'Owner'Address = Maybe CustomerSources'Data'Owner'Address'
forall a. Maybe a
GHC.Maybe.Nothing,
      customerSources'Data'Owner'Email :: Maybe Text
customerSources'Data'Owner'Email = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      customerSources'Data'Owner'Name :: Maybe Text
customerSources'Data'Owner'Name = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      customerSources'Data'Owner'Phone :: Maybe Text
customerSources'Data'Owner'Phone = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      customerSources'Data'Owner'VerifiedAddress :: Maybe CustomerSources'Data'Owner'VerifiedAddress'
customerSources'Data'Owner'VerifiedAddress = Maybe CustomerSources'Data'Owner'VerifiedAddress'
forall a. Maybe a
GHC.Maybe.Nothing,
      customerSources'Data'Owner'VerifiedEmail :: Maybe Text
customerSources'Data'Owner'VerifiedEmail = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      customerSources'Data'Owner'VerifiedName :: Maybe Text
customerSources'Data'Owner'VerifiedName = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      customerSources'Data'Owner'VerifiedPhone :: Maybe Text
customerSources'Data'Owner'VerifiedPhone = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing
    }

-- | Defines the object schema located at @components.schemas.customer.properties.sources.properties.data.items.anyOf.properties.owner.anyOf.properties.address.anyOf@ in the specification.
--
-- Owner\\\'s address.
data CustomerSources'Data'Owner'Address' = CustomerSources'Data'Owner'Address'
  { -- | city: City, district, suburb, town, or village.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    CustomerSources'Data'Owner'Address' -> Maybe Text
customerSources'Data'Owner'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
    CustomerSources'Data'Owner'Address' -> Maybe Text
customerSources'Data'Owner'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
    CustomerSources'Data'Owner'Address' -> Maybe Text
customerSources'Data'Owner'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
    CustomerSources'Data'Owner'Address' -> Maybe Text
customerSources'Data'Owner'Address'Line2 :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | postal_code: ZIP or postal code.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    CustomerSources'Data'Owner'Address' -> Maybe Text
customerSources'Data'Owner'Address'PostalCode :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | state: State, county, province, or region.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    CustomerSources'Data'Owner'Address' -> Maybe Text
customerSources'Data'Owner'Address'State :: (GHC.Maybe.Maybe Data.Text.Internal.Text)
  }
  deriving
    ( Int -> CustomerSources'Data'Owner'Address' -> ShowS
[CustomerSources'Data'Owner'Address'] -> ShowS
CustomerSources'Data'Owner'Address' -> String
(Int -> CustomerSources'Data'Owner'Address' -> ShowS)
-> (CustomerSources'Data'Owner'Address' -> String)
-> ([CustomerSources'Data'Owner'Address'] -> ShowS)
-> Show CustomerSources'Data'Owner'Address'
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CustomerSources'Data'Owner'Address'] -> ShowS
$cshowList :: [CustomerSources'Data'Owner'Address'] -> ShowS
show :: CustomerSources'Data'Owner'Address' -> String
$cshow :: CustomerSources'Data'Owner'Address' -> String
showsPrec :: Int -> CustomerSources'Data'Owner'Address' -> ShowS
$cshowsPrec :: Int -> CustomerSources'Data'Owner'Address' -> ShowS
GHC.Show.Show,
      CustomerSources'Data'Owner'Address'
-> CustomerSources'Data'Owner'Address' -> Bool
(CustomerSources'Data'Owner'Address'
 -> CustomerSources'Data'Owner'Address' -> Bool)
-> (CustomerSources'Data'Owner'Address'
    -> CustomerSources'Data'Owner'Address' -> Bool)
-> Eq CustomerSources'Data'Owner'Address'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CustomerSources'Data'Owner'Address'
-> CustomerSources'Data'Owner'Address' -> Bool
$c/= :: CustomerSources'Data'Owner'Address'
-> CustomerSources'Data'Owner'Address' -> Bool
== :: CustomerSources'Data'Owner'Address'
-> CustomerSources'Data'Owner'Address' -> Bool
$c== :: CustomerSources'Data'Owner'Address'
-> CustomerSources'Data'Owner'Address' -> Bool
GHC.Classes.Eq
    )

instance Data.Aeson.Types.ToJSON.ToJSON CustomerSources'Data'Owner'Address' where
  toJSON :: CustomerSources'Data'Owner'Address' -> Value
toJSON CustomerSources'Data'Owner'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..= CustomerSources'Data'Owner'Address' -> Maybe Text
customerSources'Data'Owner'Address'City CustomerSources'Data'Owner'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..= CustomerSources'Data'Owner'Address' -> Maybe Text
customerSources'Data'Owner'Address'Country CustomerSources'Data'Owner'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..= CustomerSources'Data'Owner'Address' -> Maybe Text
customerSources'Data'Owner'Address'Line1 CustomerSources'Data'Owner'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..= CustomerSources'Data'Owner'Address' -> Maybe Text
customerSources'Data'Owner'Address'Line2 CustomerSources'Data'Owner'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..= CustomerSources'Data'Owner'Address' -> Maybe Text
customerSources'Data'Owner'Address'PostalCode CustomerSources'Data'Owner'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..= CustomerSources'Data'Owner'Address' -> Maybe Text
customerSources'Data'Owner'Address'State CustomerSources'Data'Owner'Address'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: CustomerSources'Data'Owner'Address' -> Encoding
toEncoding CustomerSources'Data'Owner'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..= CustomerSources'Data'Owner'Address' -> Maybe Text
customerSources'Data'Owner'Address'City CustomerSources'Data'Owner'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..= CustomerSources'Data'Owner'Address' -> Maybe Text
customerSources'Data'Owner'Address'Country CustomerSources'Data'Owner'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..= CustomerSources'Data'Owner'Address' -> Maybe Text
customerSources'Data'Owner'Address'Line1 CustomerSources'Data'Owner'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..= CustomerSources'Data'Owner'Address' -> Maybe Text
customerSources'Data'Owner'Address'Line2 CustomerSources'Data'Owner'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..= CustomerSources'Data'Owner'Address' -> Maybe Text
customerSources'Data'Owner'Address'PostalCode CustomerSources'Data'Owner'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..= CustomerSources'Data'Owner'Address' -> Maybe Text
customerSources'Data'Owner'Address'State CustomerSources'Data'Owner'Address'
obj))))))

instance Data.Aeson.Types.FromJSON.FromJSON CustomerSources'Data'Owner'Address' where
  parseJSON :: Value -> Parser CustomerSources'Data'Owner'Address'
parseJSON = String
-> (Object -> Parser CustomerSources'Data'Owner'Address')
-> Value
-> Parser CustomerSources'Data'Owner'Address'
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.Aeson.Types.FromJSON.withObject String
"CustomerSources'Data'Owner'Address'" (\Object
obj -> ((((((Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> CustomerSources'Data'Owner'Address')
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> CustomerSources'Data'Owner'Address')
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> CustomerSources'Data'Owner'Address'
CustomerSources'Data'Owner'Address' Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> CustomerSources'Data'Owner'Address')
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> CustomerSources'Data'Owner'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
   -> CustomerSources'Data'Owner'Address')
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> CustomerSources'Data'Owner'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
   -> CustomerSources'Data'Owner'Address')
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Text -> Maybe Text -> CustomerSources'Data'Owner'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 -> CustomerSources'Data'Owner'Address')
-> Parser (Maybe Text)
-> Parser
     (Maybe Text -> Maybe Text -> CustomerSources'Data'Owner'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 -> CustomerSources'Data'Owner'Address')
-> Parser (Maybe Text)
-> Parser (Maybe Text -> CustomerSources'Data'Owner'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 -> CustomerSources'Data'Owner'Address')
-> Parser (Maybe Text)
-> Parser CustomerSources'Data'Owner'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 'CustomerSources'Data'Owner'Address'' with all required fields.
mkCustomerSources'Data'Owner'Address' :: CustomerSources'Data'Owner'Address'
mkCustomerSources'Data'Owner'Address' :: CustomerSources'Data'Owner'Address'
mkCustomerSources'Data'Owner'Address' =
  CustomerSources'Data'Owner'Address' :: Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> CustomerSources'Data'Owner'Address'
CustomerSources'Data'Owner'Address'
    { customerSources'Data'Owner'Address'City :: Maybe Text
customerSources'Data'Owner'Address'City = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      customerSources'Data'Owner'Address'Country :: Maybe Text
customerSources'Data'Owner'Address'Country = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      customerSources'Data'Owner'Address'Line1 :: Maybe Text
customerSources'Data'Owner'Address'Line1 = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      customerSources'Data'Owner'Address'Line2 :: Maybe Text
customerSources'Data'Owner'Address'Line2 = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      customerSources'Data'Owner'Address'PostalCode :: Maybe Text
customerSources'Data'Owner'Address'PostalCode = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      customerSources'Data'Owner'Address'State :: Maybe Text
customerSources'Data'Owner'Address'State = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing
    }

-- | Defines the object schema located at @components.schemas.customer.properties.sources.properties.data.items.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 CustomerSources'Data'Owner'VerifiedAddress' = CustomerSources'Data'Owner'VerifiedAddress'
  { -- | city: City, district, suburb, town, or village.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    CustomerSources'Data'Owner'VerifiedAddress' -> Maybe Text
customerSources'Data'Owner'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
    CustomerSources'Data'Owner'VerifiedAddress' -> Maybe Text
customerSources'Data'Owner'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
    CustomerSources'Data'Owner'VerifiedAddress' -> Maybe Text
customerSources'Data'Owner'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
    CustomerSources'Data'Owner'VerifiedAddress' -> Maybe Text
customerSources'Data'Owner'VerifiedAddress'Line2 :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | postal_code: ZIP or postal code.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    CustomerSources'Data'Owner'VerifiedAddress' -> Maybe Text
customerSources'Data'Owner'VerifiedAddress'PostalCode :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | state: State, county, province, or region.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    CustomerSources'Data'Owner'VerifiedAddress' -> Maybe Text
customerSources'Data'Owner'VerifiedAddress'State :: (GHC.Maybe.Maybe Data.Text.Internal.Text)
  }
  deriving
    ( Int -> CustomerSources'Data'Owner'VerifiedAddress' -> ShowS
[CustomerSources'Data'Owner'VerifiedAddress'] -> ShowS
CustomerSources'Data'Owner'VerifiedAddress' -> String
(Int -> CustomerSources'Data'Owner'VerifiedAddress' -> ShowS)
-> (CustomerSources'Data'Owner'VerifiedAddress' -> String)
-> ([CustomerSources'Data'Owner'VerifiedAddress'] -> ShowS)
-> Show CustomerSources'Data'Owner'VerifiedAddress'
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CustomerSources'Data'Owner'VerifiedAddress'] -> ShowS
$cshowList :: [CustomerSources'Data'Owner'VerifiedAddress'] -> ShowS
show :: CustomerSources'Data'Owner'VerifiedAddress' -> String
$cshow :: CustomerSources'Data'Owner'VerifiedAddress' -> String
showsPrec :: Int -> CustomerSources'Data'Owner'VerifiedAddress' -> ShowS
$cshowsPrec :: Int -> CustomerSources'Data'Owner'VerifiedAddress' -> ShowS
GHC.Show.Show,
      CustomerSources'Data'Owner'VerifiedAddress'
-> CustomerSources'Data'Owner'VerifiedAddress' -> Bool
(CustomerSources'Data'Owner'VerifiedAddress'
 -> CustomerSources'Data'Owner'VerifiedAddress' -> Bool)
-> (CustomerSources'Data'Owner'VerifiedAddress'
    -> CustomerSources'Data'Owner'VerifiedAddress' -> Bool)
-> Eq CustomerSources'Data'Owner'VerifiedAddress'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CustomerSources'Data'Owner'VerifiedAddress'
-> CustomerSources'Data'Owner'VerifiedAddress' -> Bool
$c/= :: CustomerSources'Data'Owner'VerifiedAddress'
-> CustomerSources'Data'Owner'VerifiedAddress' -> Bool
== :: CustomerSources'Data'Owner'VerifiedAddress'
-> CustomerSources'Data'Owner'VerifiedAddress' -> Bool
$c== :: CustomerSources'Data'Owner'VerifiedAddress'
-> CustomerSources'Data'Owner'VerifiedAddress' -> Bool
GHC.Classes.Eq
    )

instance Data.Aeson.Types.ToJSON.ToJSON CustomerSources'Data'Owner'VerifiedAddress' where
  toJSON :: CustomerSources'Data'Owner'VerifiedAddress' -> Value
toJSON CustomerSources'Data'Owner'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..= CustomerSources'Data'Owner'VerifiedAddress' -> Maybe Text
customerSources'Data'Owner'VerifiedAddress'City CustomerSources'Data'Owner'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..= CustomerSources'Data'Owner'VerifiedAddress' -> Maybe Text
customerSources'Data'Owner'VerifiedAddress'Country CustomerSources'Data'Owner'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..= CustomerSources'Data'Owner'VerifiedAddress' -> Maybe Text
customerSources'Data'Owner'VerifiedAddress'Line1 CustomerSources'Data'Owner'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..= CustomerSources'Data'Owner'VerifiedAddress' -> Maybe Text
customerSources'Data'Owner'VerifiedAddress'Line2 CustomerSources'Data'Owner'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..= CustomerSources'Data'Owner'VerifiedAddress' -> Maybe Text
customerSources'Data'Owner'VerifiedAddress'PostalCode CustomerSources'Data'Owner'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..= CustomerSources'Data'Owner'VerifiedAddress' -> Maybe Text
customerSources'Data'Owner'VerifiedAddress'State CustomerSources'Data'Owner'VerifiedAddress'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: CustomerSources'Data'Owner'VerifiedAddress' -> Encoding
toEncoding CustomerSources'Data'Owner'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..= CustomerSources'Data'Owner'VerifiedAddress' -> Maybe Text
customerSources'Data'Owner'VerifiedAddress'City CustomerSources'Data'Owner'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..= CustomerSources'Data'Owner'VerifiedAddress' -> Maybe Text
customerSources'Data'Owner'VerifiedAddress'Country CustomerSources'Data'Owner'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..= CustomerSources'Data'Owner'VerifiedAddress' -> Maybe Text
customerSources'Data'Owner'VerifiedAddress'Line1 CustomerSources'Data'Owner'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..= CustomerSources'Data'Owner'VerifiedAddress' -> Maybe Text
customerSources'Data'Owner'VerifiedAddress'Line2 CustomerSources'Data'Owner'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..= CustomerSources'Data'Owner'VerifiedAddress' -> Maybe Text
customerSources'Data'Owner'VerifiedAddress'PostalCode CustomerSources'Data'Owner'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..= CustomerSources'Data'Owner'VerifiedAddress' -> Maybe Text
customerSources'Data'Owner'VerifiedAddress'State CustomerSources'Data'Owner'VerifiedAddress'
obj))))))

instance Data.Aeson.Types.FromJSON.FromJSON CustomerSources'Data'Owner'VerifiedAddress' where
  parseJSON :: Value -> Parser CustomerSources'Data'Owner'VerifiedAddress'
parseJSON = String
-> (Object -> Parser CustomerSources'Data'Owner'VerifiedAddress')
-> Value
-> Parser CustomerSources'Data'Owner'VerifiedAddress'
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.Aeson.Types.FromJSON.withObject String
"CustomerSources'Data'Owner'VerifiedAddress'" (\Object
obj -> ((((((Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> CustomerSources'Data'Owner'VerifiedAddress')
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> CustomerSources'Data'Owner'VerifiedAddress')
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> CustomerSources'Data'Owner'VerifiedAddress'
CustomerSources'Data'Owner'VerifiedAddress' Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> CustomerSources'Data'Owner'VerifiedAddress')
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> CustomerSources'Data'Owner'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
   -> CustomerSources'Data'Owner'VerifiedAddress')
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> CustomerSources'Data'Owner'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
   -> CustomerSources'Data'Owner'VerifiedAddress')
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> CustomerSources'Data'Owner'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
   -> CustomerSources'Data'Owner'VerifiedAddress')
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Text -> CustomerSources'Data'Owner'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 -> CustomerSources'Data'Owner'VerifiedAddress')
-> Parser (Maybe Text)
-> Parser
     (Maybe Text -> CustomerSources'Data'Owner'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 -> CustomerSources'Data'Owner'VerifiedAddress')
-> Parser (Maybe Text)
-> Parser CustomerSources'Data'Owner'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 'CustomerSources'Data'Owner'VerifiedAddress'' with all required fields.
mkCustomerSources'Data'Owner'VerifiedAddress' :: CustomerSources'Data'Owner'VerifiedAddress'
mkCustomerSources'Data'Owner'VerifiedAddress' :: CustomerSources'Data'Owner'VerifiedAddress'
mkCustomerSources'Data'Owner'VerifiedAddress' =
  CustomerSources'Data'Owner'VerifiedAddress' :: Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> CustomerSources'Data'Owner'VerifiedAddress'
CustomerSources'Data'Owner'VerifiedAddress'
    { customerSources'Data'Owner'VerifiedAddress'City :: Maybe Text
customerSources'Data'Owner'VerifiedAddress'City = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      customerSources'Data'Owner'VerifiedAddress'Country :: Maybe Text
customerSources'Data'Owner'VerifiedAddress'Country = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      customerSources'Data'Owner'VerifiedAddress'Line1 :: Maybe Text
customerSources'Data'Owner'VerifiedAddress'Line1 = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      customerSources'Data'Owner'VerifiedAddress'Line2 :: Maybe Text
customerSources'Data'Owner'VerifiedAddress'Line2 = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      customerSources'Data'Owner'VerifiedAddress'PostalCode :: Maybe Text
customerSources'Data'Owner'VerifiedAddress'PostalCode = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      customerSources'Data'Owner'VerifiedAddress'State :: Maybe Text
customerSources'Data'Owner'VerifiedAddress'State = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing
    }

-- | Defines the oneOf schema located at @components.schemas.customer.properties.sources.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 CustomerSources'Data'Recipient'Variants
  = CustomerSources'Data'Recipient'Text Data.Text.Internal.Text
  | CustomerSources'Data'Recipient'Recipient Recipient
  deriving (Int -> CustomerSources'Data'Recipient'Variants -> ShowS
[CustomerSources'Data'Recipient'Variants] -> ShowS
CustomerSources'Data'Recipient'Variants -> String
(Int -> CustomerSources'Data'Recipient'Variants -> ShowS)
-> (CustomerSources'Data'Recipient'Variants -> String)
-> ([CustomerSources'Data'Recipient'Variants] -> ShowS)
-> Show CustomerSources'Data'Recipient'Variants
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CustomerSources'Data'Recipient'Variants] -> ShowS
$cshowList :: [CustomerSources'Data'Recipient'Variants] -> ShowS
show :: CustomerSources'Data'Recipient'Variants -> String
$cshow :: CustomerSources'Data'Recipient'Variants -> String
showsPrec :: Int -> CustomerSources'Data'Recipient'Variants -> ShowS
$cshowsPrec :: Int -> CustomerSources'Data'Recipient'Variants -> ShowS
GHC.Show.Show, CustomerSources'Data'Recipient'Variants
-> CustomerSources'Data'Recipient'Variants -> Bool
(CustomerSources'Data'Recipient'Variants
 -> CustomerSources'Data'Recipient'Variants -> Bool)
-> (CustomerSources'Data'Recipient'Variants
    -> CustomerSources'Data'Recipient'Variants -> Bool)
-> Eq CustomerSources'Data'Recipient'Variants
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CustomerSources'Data'Recipient'Variants
-> CustomerSources'Data'Recipient'Variants -> Bool
$c/= :: CustomerSources'Data'Recipient'Variants
-> CustomerSources'Data'Recipient'Variants -> Bool
== :: CustomerSources'Data'Recipient'Variants
-> CustomerSources'Data'Recipient'Variants -> Bool
$c== :: CustomerSources'Data'Recipient'Variants
-> CustomerSources'Data'Recipient'Variants -> Bool
GHC.Classes.Eq)

instance Data.Aeson.Types.ToJSON.ToJSON CustomerSources'Data'Recipient'Variants where
  toJSON :: CustomerSources'Data'Recipient'Variants -> Value
toJSON (CustomerSources'Data'Recipient'Text Text
a) = Text -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON Text
a
  toJSON (CustomerSources'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 CustomerSources'Data'Recipient'Variants where
  parseJSON :: Value -> Parser CustomerSources'Data'Recipient'Variants
parseJSON Value
val = case (Text -> CustomerSources'Data'Recipient'Variants
CustomerSources'Data'Recipient'Text (Text -> CustomerSources'Data'Recipient'Variants)
-> Result Text -> Result CustomerSources'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 CustomerSources'Data'Recipient'Variants
-> Result CustomerSources'Data'Recipient'Variants
-> Result CustomerSources'Data'Recipient'Variants
forall (f :: * -> *) a. Alternative f => f a -> f a -> f a
GHC.Base.<|> ((Recipient -> CustomerSources'Data'Recipient'Variants
CustomerSources'Data'Recipient'Recipient (Recipient -> CustomerSources'Data'Recipient'Variants)
-> Result Recipient
-> Result CustomerSources'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 CustomerSources'Data'Recipient'Variants
-> Result CustomerSources'Data'Recipient'Variants
-> Result CustomerSources'Data'Recipient'Variants
forall (f :: * -> *) a. Alternative f => f a -> f a -> f a
GHC.Base.<|> String -> Result CustomerSources'Data'Recipient'Variants
forall a. String -> Result a
Data.Aeson.Types.Internal.Error String
"No variant matched") of
    Data.Aeson.Types.Internal.Success CustomerSources'Data'Recipient'Variants
a -> CustomerSources'Data'Recipient'Variants
-> Parser CustomerSources'Data'Recipient'Variants
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure CustomerSources'Data'Recipient'Variants
a
    Data.Aeson.Types.Internal.Error String
a -> String -> Parser CustomerSources'Data'Recipient'Variants
forall (m :: * -> *) a. MonadFail m => String -> m a
Control.Monad.Fail.fail String
a

-- | Defines the object schema located at @components.schemas.customer.properties.sources.properties.data.items.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 CustomerSources'Data'Transactions' = CustomerSources'Data'Transactions'
  { -- | data: Details about each object.
    CustomerSources'Data'Transactions' -> [BitcoinTransaction]
customerSources'Data'Transactions'Data :: ([BitcoinTransaction]),
    -- | has_more: True if this list has another page of items after this one that can be fetched.
    CustomerSources'Data'Transactions' -> Bool
customerSources'Data'Transactions'HasMore :: GHC.Types.Bool,
    -- | url: The URL where this list can be accessed.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    CustomerSources'Data'Transactions' -> Text
customerSources'Data'Transactions'Url :: Data.Text.Internal.Text
  }
  deriving
    ( Int -> CustomerSources'Data'Transactions' -> ShowS
[CustomerSources'Data'Transactions'] -> ShowS
CustomerSources'Data'Transactions' -> String
(Int -> CustomerSources'Data'Transactions' -> ShowS)
-> (CustomerSources'Data'Transactions' -> String)
-> ([CustomerSources'Data'Transactions'] -> ShowS)
-> Show CustomerSources'Data'Transactions'
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CustomerSources'Data'Transactions'] -> ShowS
$cshowList :: [CustomerSources'Data'Transactions'] -> ShowS
show :: CustomerSources'Data'Transactions' -> String
$cshow :: CustomerSources'Data'Transactions' -> String
showsPrec :: Int -> CustomerSources'Data'Transactions' -> ShowS
$cshowsPrec :: Int -> CustomerSources'Data'Transactions' -> ShowS
GHC.Show.Show,
      CustomerSources'Data'Transactions'
-> CustomerSources'Data'Transactions' -> Bool
(CustomerSources'Data'Transactions'
 -> CustomerSources'Data'Transactions' -> Bool)
-> (CustomerSources'Data'Transactions'
    -> CustomerSources'Data'Transactions' -> Bool)
-> Eq CustomerSources'Data'Transactions'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CustomerSources'Data'Transactions'
-> CustomerSources'Data'Transactions' -> Bool
$c/= :: CustomerSources'Data'Transactions'
-> CustomerSources'Data'Transactions' -> Bool
== :: CustomerSources'Data'Transactions'
-> CustomerSources'Data'Transactions' -> Bool
$c== :: CustomerSources'Data'Transactions'
-> CustomerSources'Data'Transactions' -> Bool
GHC.Classes.Eq
    )

instance Data.Aeson.Types.ToJSON.ToJSON CustomerSources'Data'Transactions' where
  toJSON :: CustomerSources'Data'Transactions' -> Value
toJSON CustomerSources'Data'Transactions'
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..= CustomerSources'Data'Transactions' -> [BitcoinTransaction]
customerSources'Data'Transactions'Data CustomerSources'Data'Transactions'
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..= CustomerSources'Data'Transactions' -> Bool
customerSources'Data'Transactions'HasMore CustomerSources'Data'Transactions'
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..= CustomerSources'Data'Transactions' -> Text
customerSources'Data'Transactions'Url CustomerSources'Data'Transactions'
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 :: CustomerSources'Data'Transactions' -> Encoding
toEncoding CustomerSources'Data'Transactions'
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..= CustomerSources'Data'Transactions' -> [BitcoinTransaction]
customerSources'Data'Transactions'Data CustomerSources'Data'Transactions'
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..= CustomerSources'Data'Transactions' -> Bool
customerSources'Data'Transactions'HasMore CustomerSources'Data'Transactions'
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..= CustomerSources'Data'Transactions' -> Text
customerSources'Data'Transactions'Url CustomerSources'Data'Transactions'
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 CustomerSources'Data'Transactions' where
  parseJSON :: Value -> Parser CustomerSources'Data'Transactions'
parseJSON = String
-> (Object -> Parser CustomerSources'Data'Transactions')
-> Value
-> Parser CustomerSources'Data'Transactions'
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.Aeson.Types.FromJSON.withObject String
"CustomerSources'Data'Transactions'" (\Object
obj -> ((([BitcoinTransaction]
 -> Bool -> Text -> CustomerSources'Data'Transactions')
-> Parser
     ([BitcoinTransaction]
      -> Bool -> Text -> CustomerSources'Data'Transactions')
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure [BitcoinTransaction]
-> Bool -> Text -> CustomerSources'Data'Transactions'
CustomerSources'Data'Transactions' Parser
  ([BitcoinTransaction]
   -> Bool -> Text -> CustomerSources'Data'Transactions')
-> Parser [BitcoinTransaction]
-> Parser (Bool -> Text -> CustomerSources'Data'Transactions')
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 -> CustomerSources'Data'Transactions')
-> Parser Bool
-> Parser (Text -> CustomerSources'Data'Transactions')
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 -> CustomerSources'Data'Transactions')
-> Parser Text -> Parser CustomerSources'Data'Transactions'
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 'CustomerSources'Data'Transactions'' with all required fields.
mkCustomerSources'Data'Transactions' ::
  -- | 'customerSources'Data'Transactions'Data'
  [BitcoinTransaction] ->
  -- | 'customerSources'Data'Transactions'HasMore'
  GHC.Types.Bool ->
  -- | 'customerSources'Data'Transactions'Url'
  Data.Text.Internal.Text ->
  CustomerSources'Data'Transactions'
mkCustomerSources'Data'Transactions' :: [BitcoinTransaction]
-> Bool -> Text -> CustomerSources'Data'Transactions'
mkCustomerSources'Data'Transactions' [BitcoinTransaction]
customerSources'Data'Transactions'Data Bool
customerSources'Data'Transactions'HasMore Text
customerSources'Data'Transactions'Url =
  CustomerSources'Data'Transactions' :: [BitcoinTransaction]
-> Bool -> Text -> CustomerSources'Data'Transactions'
CustomerSources'Data'Transactions'
    { customerSources'Data'Transactions'Data :: [BitcoinTransaction]
customerSources'Data'Transactions'Data = [BitcoinTransaction]
customerSources'Data'Transactions'Data,
      customerSources'Data'Transactions'HasMore :: Bool
customerSources'Data'Transactions'HasMore = Bool
customerSources'Data'Transactions'HasMore,
      customerSources'Data'Transactions'Url :: Text
customerSources'Data'Transactions'Url = Text
customerSources'Data'Transactions'Url
    }

-- | Defines the enum schema located at @components.schemas.customer.properties.sources.properties.data.items.anyOf.properties.type@ in the specification.
--
-- The \`type\` of the source. The \`type\` is a payment method, one of \`ach_credit_transfer\`, \`ach_debit\`, \`alipay\`, \`bancontact\`, \`card\`, \`card_present\`, \`eps\`, \`giropay\`, \`ideal\`, \`multibanco\`, \`klarna\`, \`p24\`, \`sepa_debit\`, \`sofort\`, \`three_d_secure\`, or \`wechat\`. An additional hash is included on the source with a name matching this value. It contains additional information specific to the [payment method](https:\/\/stripe.com\/docs\/sources) used.
data CustomerSources'Data'Type'
  = -- | This case is used if the value encountered during decoding does not match any of the provided cases in the specification.
    CustomerSources'Data'Type'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.
    CustomerSources'Data'Type'Typed Data.Text.Internal.Text
  | -- | Represents the JSON value @"ach_credit_transfer"@
    CustomerSources'Data'Type'EnumAchCreditTransfer
  | -- | Represents the JSON value @"ach_debit"@
    CustomerSources'Data'Type'EnumAchDebit
  | -- | Represents the JSON value @"acss_debit"@
    CustomerSources'Data'Type'EnumAcssDebit
  | -- | Represents the JSON value @"alipay"@
    CustomerSources'Data'Type'EnumAlipay
  | -- | Represents the JSON value @"au_becs_debit"@
    CustomerSources'Data'Type'EnumAuBecsDebit
  | -- | Represents the JSON value @"bancontact"@
    CustomerSources'Data'Type'EnumBancontact
  | -- | Represents the JSON value @"card"@
    CustomerSources'Data'Type'EnumCard
  | -- | Represents the JSON value @"card_present"@
    CustomerSources'Data'Type'EnumCardPresent
  | -- | Represents the JSON value @"eps"@
    CustomerSources'Data'Type'EnumEps
  | -- | Represents the JSON value @"giropay"@
    CustomerSources'Data'Type'EnumGiropay
  | -- | Represents the JSON value @"ideal"@
    CustomerSources'Data'Type'EnumIdeal
  | -- | Represents the JSON value @"klarna"@
    CustomerSources'Data'Type'EnumKlarna
  | -- | Represents the JSON value @"multibanco"@
    CustomerSources'Data'Type'EnumMultibanco
  | -- | Represents the JSON value @"p24"@
    CustomerSources'Data'Type'EnumP24
  | -- | Represents the JSON value @"sepa_debit"@
    CustomerSources'Data'Type'EnumSepaDebit
  | -- | Represents the JSON value @"sofort"@
    CustomerSources'Data'Type'EnumSofort
  | -- | Represents the JSON value @"three_d_secure"@
    CustomerSources'Data'Type'EnumThreeDSecure
  | -- | Represents the JSON value @"wechat"@
    CustomerSources'Data'Type'EnumWechat
  deriving (Int -> CustomerSources'Data'Type' -> ShowS
[CustomerSources'Data'Type'] -> ShowS
CustomerSources'Data'Type' -> String
(Int -> CustomerSources'Data'Type' -> ShowS)
-> (CustomerSources'Data'Type' -> String)
-> ([CustomerSources'Data'Type'] -> ShowS)
-> Show CustomerSources'Data'Type'
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CustomerSources'Data'Type'] -> ShowS
$cshowList :: [CustomerSources'Data'Type'] -> ShowS
show :: CustomerSources'Data'Type' -> String
$cshow :: CustomerSources'Data'Type' -> String
showsPrec :: Int -> CustomerSources'Data'Type' -> ShowS
$cshowsPrec :: Int -> CustomerSources'Data'Type' -> ShowS
GHC.Show.Show, CustomerSources'Data'Type' -> CustomerSources'Data'Type' -> Bool
(CustomerSources'Data'Type' -> CustomerSources'Data'Type' -> Bool)
-> (CustomerSources'Data'Type'
    -> CustomerSources'Data'Type' -> Bool)
-> Eq CustomerSources'Data'Type'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CustomerSources'Data'Type' -> CustomerSources'Data'Type' -> Bool
$c/= :: CustomerSources'Data'Type' -> CustomerSources'Data'Type' -> Bool
== :: CustomerSources'Data'Type' -> CustomerSources'Data'Type' -> Bool
$c== :: CustomerSources'Data'Type' -> CustomerSources'Data'Type' -> Bool
GHC.Classes.Eq)

instance Data.Aeson.Types.ToJSON.ToJSON CustomerSources'Data'Type' where
  toJSON :: CustomerSources'Data'Type' -> Value
toJSON (CustomerSources'Data'Type'Other Value
val) = Value
val
  toJSON (CustomerSources'Data'Type'Typed Text
val) = Text -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON Text
val
  toJSON (CustomerSources'Data'Type'
CustomerSources'Data'Type'EnumAchCreditTransfer) = Value
"ach_credit_transfer"
  toJSON (CustomerSources'Data'Type'
CustomerSources'Data'Type'EnumAchDebit) = Value
"ach_debit"
  toJSON (CustomerSources'Data'Type'
CustomerSources'Data'Type'EnumAcssDebit) = Value
"acss_debit"
  toJSON (CustomerSources'Data'Type'
CustomerSources'Data'Type'EnumAlipay) = Value
"alipay"
  toJSON (CustomerSources'Data'Type'
CustomerSources'Data'Type'EnumAuBecsDebit) = Value
"au_becs_debit"
  toJSON (CustomerSources'Data'Type'
CustomerSources'Data'Type'EnumBancontact) = Value
"bancontact"
  toJSON (CustomerSources'Data'Type'
CustomerSources'Data'Type'EnumCard) = Value
"card"
  toJSON (CustomerSources'Data'Type'
CustomerSources'Data'Type'EnumCardPresent) = Value
"card_present"
  toJSON (CustomerSources'Data'Type'
CustomerSources'Data'Type'EnumEps) = Value
"eps"
  toJSON (CustomerSources'Data'Type'
CustomerSources'Data'Type'EnumGiropay) = Value
"giropay"
  toJSON (CustomerSources'Data'Type'
CustomerSources'Data'Type'EnumIdeal) = Value
"ideal"
  toJSON (CustomerSources'Data'Type'
CustomerSources'Data'Type'EnumKlarna) = Value
"klarna"
  toJSON (CustomerSources'Data'Type'
CustomerSources'Data'Type'EnumMultibanco) = Value
"multibanco"
  toJSON (CustomerSources'Data'Type'
CustomerSources'Data'Type'EnumP24) = Value
"p24"
  toJSON (CustomerSources'Data'Type'
CustomerSources'Data'Type'EnumSepaDebit) = Value
"sepa_debit"
  toJSON (CustomerSources'Data'Type'
CustomerSources'Data'Type'EnumSofort) = Value
"sofort"
  toJSON (CustomerSources'Data'Type'
CustomerSources'Data'Type'EnumThreeDSecure) = Value
"three_d_secure"
  toJSON (CustomerSources'Data'Type'
CustomerSources'Data'Type'EnumWechat) = Value
"wechat"

instance Data.Aeson.Types.FromJSON.FromJSON CustomerSources'Data'Type' where
  parseJSON :: Value -> Parser CustomerSources'Data'Type'
parseJSON Value
val =
    CustomerSources'Data'Type' -> Parser CustomerSources'Data'Type'
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
"ach_credit_transfer" -> CustomerSources'Data'Type'
CustomerSources'Data'Type'EnumAchCreditTransfer
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"ach_debit" -> CustomerSources'Data'Type'
CustomerSources'Data'Type'EnumAchDebit
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"acss_debit" -> CustomerSources'Data'Type'
CustomerSources'Data'Type'EnumAcssDebit
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"alipay" -> CustomerSources'Data'Type'
CustomerSources'Data'Type'EnumAlipay
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"au_becs_debit" -> CustomerSources'Data'Type'
CustomerSources'Data'Type'EnumAuBecsDebit
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"bancontact" -> CustomerSources'Data'Type'
CustomerSources'Data'Type'EnumBancontact
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"card" -> CustomerSources'Data'Type'
CustomerSources'Data'Type'EnumCard
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"card_present" -> CustomerSources'Data'Type'
CustomerSources'Data'Type'EnumCardPresent
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"eps" -> CustomerSources'Data'Type'
CustomerSources'Data'Type'EnumEps
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"giropay" -> CustomerSources'Data'Type'
CustomerSources'Data'Type'EnumGiropay
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"ideal" -> CustomerSources'Data'Type'
CustomerSources'Data'Type'EnumIdeal
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"klarna" -> CustomerSources'Data'Type'
CustomerSources'Data'Type'EnumKlarna
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"multibanco" -> CustomerSources'Data'Type'
CustomerSources'Data'Type'EnumMultibanco
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"p24" -> CustomerSources'Data'Type'
CustomerSources'Data'Type'EnumP24
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"sepa_debit" -> CustomerSources'Data'Type'
CustomerSources'Data'Type'EnumSepaDebit
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"sofort" -> CustomerSources'Data'Type'
CustomerSources'Data'Type'EnumSofort
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"three_d_secure" -> CustomerSources'Data'Type'
CustomerSources'Data'Type'EnumThreeDSecure
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"wechat" -> CustomerSources'Data'Type'
CustomerSources'Data'Type'EnumWechat
            | Bool
GHC.Base.otherwise -> Value -> CustomerSources'Data'Type'
CustomerSources'Data'Type'Other Value
val
      )

-- | Defines the object schema located at @components.schemas.customer.properties.subscriptions@ in the specification.
--
-- The customer\'s current subscriptions, if any.
data CustomerSubscriptions' = CustomerSubscriptions'
  { -- | data: Details about each object.
    CustomerSubscriptions' -> [Subscription]
customerSubscriptions'Data :: ([Subscription]),
    -- | has_more: True if this list has another page of items after this one that can be fetched.
    CustomerSubscriptions' -> Bool
customerSubscriptions'HasMore :: GHC.Types.Bool,
    -- | url: The URL where this list can be accessed.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    CustomerSubscriptions' -> Text
customerSubscriptions'Url :: Data.Text.Internal.Text
  }
  deriving
    ( Int -> CustomerSubscriptions' -> ShowS
[CustomerSubscriptions'] -> ShowS
CustomerSubscriptions' -> String
(Int -> CustomerSubscriptions' -> ShowS)
-> (CustomerSubscriptions' -> String)
-> ([CustomerSubscriptions'] -> ShowS)
-> Show CustomerSubscriptions'
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CustomerSubscriptions'] -> ShowS
$cshowList :: [CustomerSubscriptions'] -> ShowS
show :: CustomerSubscriptions' -> String
$cshow :: CustomerSubscriptions' -> String
showsPrec :: Int -> CustomerSubscriptions' -> ShowS
$cshowsPrec :: Int -> CustomerSubscriptions' -> ShowS
GHC.Show.Show,
      CustomerSubscriptions' -> CustomerSubscriptions' -> Bool
(CustomerSubscriptions' -> CustomerSubscriptions' -> Bool)
-> (CustomerSubscriptions' -> CustomerSubscriptions' -> Bool)
-> Eq CustomerSubscriptions'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CustomerSubscriptions' -> CustomerSubscriptions' -> Bool
$c/= :: CustomerSubscriptions' -> CustomerSubscriptions' -> Bool
== :: CustomerSubscriptions' -> CustomerSubscriptions' -> Bool
$c== :: CustomerSubscriptions' -> CustomerSubscriptions' -> Bool
GHC.Classes.Eq
    )

instance Data.Aeson.Types.ToJSON.ToJSON CustomerSubscriptions' where
  toJSON :: CustomerSubscriptions' -> Value
toJSON CustomerSubscriptions'
obj = [Pair] -> Value
Data.Aeson.Types.Internal.object (Text
"data" Text -> [Subscription] -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= CustomerSubscriptions' -> [Subscription]
customerSubscriptions'Data CustomerSubscriptions'
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..= CustomerSubscriptions' -> Bool
customerSubscriptions'HasMore CustomerSubscriptions'
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..= CustomerSubscriptions' -> Text
customerSubscriptions'Url CustomerSubscriptions'
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 :: CustomerSubscriptions' -> Encoding
toEncoding CustomerSubscriptions'
obj = Series -> Encoding
Data.Aeson.Encoding.Internal.pairs ((Text
"data" Text -> [Subscription] -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= CustomerSubscriptions' -> [Subscription]
customerSubscriptions'Data CustomerSubscriptions'
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..= CustomerSubscriptions' -> Bool
customerSubscriptions'HasMore CustomerSubscriptions'
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..= CustomerSubscriptions' -> Text
customerSubscriptions'Url CustomerSubscriptions'
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 CustomerSubscriptions' where
  parseJSON :: Value -> Parser CustomerSubscriptions'
parseJSON = String
-> (Object -> Parser CustomerSubscriptions')
-> Value
-> Parser CustomerSubscriptions'
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.Aeson.Types.FromJSON.withObject String
"CustomerSubscriptions'" (\Object
obj -> ((([Subscription] -> Bool -> Text -> CustomerSubscriptions')
-> Parser
     ([Subscription] -> Bool -> Text -> CustomerSubscriptions')
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure [Subscription] -> Bool -> Text -> CustomerSubscriptions'
CustomerSubscriptions' Parser ([Subscription] -> Bool -> Text -> CustomerSubscriptions')
-> Parser [Subscription]
-> Parser (Bool -> Text -> CustomerSubscriptions')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser [Subscription]
forall a. FromJSON a => Object -> Text -> Parser a
Data.Aeson.Types.FromJSON..: Text
"data")) Parser (Bool -> Text -> CustomerSubscriptions')
-> Parser Bool -> Parser (Text -> CustomerSubscriptions')
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 -> CustomerSubscriptions')
-> Parser Text -> Parser CustomerSubscriptions'
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 'CustomerSubscriptions'' with all required fields.
mkCustomerSubscriptions' ::
  -- | 'customerSubscriptions'Data'
  [Subscription] ->
  -- | 'customerSubscriptions'HasMore'
  GHC.Types.Bool ->
  -- | 'customerSubscriptions'Url'
  Data.Text.Internal.Text ->
  CustomerSubscriptions'
mkCustomerSubscriptions' :: [Subscription] -> Bool -> Text -> CustomerSubscriptions'
mkCustomerSubscriptions' [Subscription]
customerSubscriptions'Data Bool
customerSubscriptions'HasMore Text
customerSubscriptions'Url =
  CustomerSubscriptions' :: [Subscription] -> Bool -> Text -> CustomerSubscriptions'
CustomerSubscriptions'
    { customerSubscriptions'Data :: [Subscription]
customerSubscriptions'Data = [Subscription]
customerSubscriptions'Data,
      customerSubscriptions'HasMore :: Bool
customerSubscriptions'HasMore = Bool
customerSubscriptions'HasMore,
      customerSubscriptions'Url :: Text
customerSubscriptions'Url = Text
customerSubscriptions'Url
    }

-- | Defines the enum schema located at @components.schemas.customer.properties.tax_exempt@ in the specification.
--
-- Describes the customer\'s tax exemption status. One of \`none\`, \`exempt\`, or \`reverse\`. When set to \`reverse\`, invoice and receipt PDFs include the text **\"Reverse charge\"**.
data CustomerTaxExempt'
  = -- | This case is used if the value encountered during decoding does not match any of the provided cases in the specification.
    CustomerTaxExempt'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.
    CustomerTaxExempt'Typed Data.Text.Internal.Text
  | -- | Represents the JSON value @"exempt"@
    CustomerTaxExempt'EnumExempt
  | -- | Represents the JSON value @"none"@
    CustomerTaxExempt'EnumNone
  | -- | Represents the JSON value @"reverse"@
    CustomerTaxExempt'EnumReverse
  deriving (Int -> CustomerTaxExempt' -> ShowS
[CustomerTaxExempt'] -> ShowS
CustomerTaxExempt' -> String
(Int -> CustomerTaxExempt' -> ShowS)
-> (CustomerTaxExempt' -> String)
-> ([CustomerTaxExempt'] -> ShowS)
-> Show CustomerTaxExempt'
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CustomerTaxExempt'] -> ShowS
$cshowList :: [CustomerTaxExempt'] -> ShowS
show :: CustomerTaxExempt' -> String
$cshow :: CustomerTaxExempt' -> String
showsPrec :: Int -> CustomerTaxExempt' -> ShowS
$cshowsPrec :: Int -> CustomerTaxExempt' -> ShowS
GHC.Show.Show, CustomerTaxExempt' -> CustomerTaxExempt' -> Bool
(CustomerTaxExempt' -> CustomerTaxExempt' -> Bool)
-> (CustomerTaxExempt' -> CustomerTaxExempt' -> Bool)
-> Eq CustomerTaxExempt'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CustomerTaxExempt' -> CustomerTaxExempt' -> Bool
$c/= :: CustomerTaxExempt' -> CustomerTaxExempt' -> Bool
== :: CustomerTaxExempt' -> CustomerTaxExempt' -> Bool
$c== :: CustomerTaxExempt' -> CustomerTaxExempt' -> Bool
GHC.Classes.Eq)

instance Data.Aeson.Types.ToJSON.ToJSON CustomerTaxExempt' where
  toJSON :: CustomerTaxExempt' -> Value
toJSON (CustomerTaxExempt'Other Value
val) = Value
val
  toJSON (CustomerTaxExempt'Typed Text
val) = Text -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON Text
val
  toJSON (CustomerTaxExempt'
CustomerTaxExempt'EnumExempt) = Value
"exempt"
  toJSON (CustomerTaxExempt'
CustomerTaxExempt'EnumNone) = Value
"none"
  toJSON (CustomerTaxExempt'
CustomerTaxExempt'EnumReverse) = Value
"reverse"

instance Data.Aeson.Types.FromJSON.FromJSON CustomerTaxExempt' where
  parseJSON :: Value -> Parser CustomerTaxExempt'
parseJSON Value
val =
    CustomerTaxExempt' -> Parser CustomerTaxExempt'
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
"exempt" -> CustomerTaxExempt'
CustomerTaxExempt'EnumExempt
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"none" -> CustomerTaxExempt'
CustomerTaxExempt'EnumNone
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"reverse" -> CustomerTaxExempt'
CustomerTaxExempt'EnumReverse
            | Bool
GHC.Base.otherwise -> Value -> CustomerTaxExempt'
CustomerTaxExempt'Other Value
val
      )

-- | Defines the object schema located at @components.schemas.customer.properties.tax_ids@ in the specification.
--
-- The customer\'s tax IDs.
data CustomerTaxIds' = CustomerTaxIds'
  { -- | data: Details about each object.
    CustomerTaxIds' -> [TaxId]
customerTaxIds'Data :: ([TaxId]),
    -- | has_more: True if this list has another page of items after this one that can be fetched.
    CustomerTaxIds' -> Bool
customerTaxIds'HasMore :: GHC.Types.Bool,
    -- | url: The URL where this list can be accessed.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    CustomerTaxIds' -> Text
customerTaxIds'Url :: Data.Text.Internal.Text
  }
  deriving
    ( Int -> CustomerTaxIds' -> ShowS
[CustomerTaxIds'] -> ShowS
CustomerTaxIds' -> String
(Int -> CustomerTaxIds' -> ShowS)
-> (CustomerTaxIds' -> String)
-> ([CustomerTaxIds'] -> ShowS)
-> Show CustomerTaxIds'
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CustomerTaxIds'] -> ShowS
$cshowList :: [CustomerTaxIds'] -> ShowS
show :: CustomerTaxIds' -> String
$cshow :: CustomerTaxIds' -> String
showsPrec :: Int -> CustomerTaxIds' -> ShowS
$cshowsPrec :: Int -> CustomerTaxIds' -> ShowS
GHC.Show.Show,
      CustomerTaxIds' -> CustomerTaxIds' -> Bool
(CustomerTaxIds' -> CustomerTaxIds' -> Bool)
-> (CustomerTaxIds' -> CustomerTaxIds' -> Bool)
-> Eq CustomerTaxIds'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CustomerTaxIds' -> CustomerTaxIds' -> Bool
$c/= :: CustomerTaxIds' -> CustomerTaxIds' -> Bool
== :: CustomerTaxIds' -> CustomerTaxIds' -> Bool
$c== :: CustomerTaxIds' -> CustomerTaxIds' -> Bool
GHC.Classes.Eq
    )

instance Data.Aeson.Types.ToJSON.ToJSON CustomerTaxIds' where
  toJSON :: CustomerTaxIds' -> Value
toJSON CustomerTaxIds'
obj = [Pair] -> Value
Data.Aeson.Types.Internal.object (Text
"data" Text -> [TaxId] -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= CustomerTaxIds' -> [TaxId]
customerTaxIds'Data CustomerTaxIds'
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..= CustomerTaxIds' -> Bool
customerTaxIds'HasMore CustomerTaxIds'
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..= CustomerTaxIds' -> Text
customerTaxIds'Url CustomerTaxIds'
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 :: CustomerTaxIds' -> Encoding
toEncoding CustomerTaxIds'
obj = Series -> Encoding
Data.Aeson.Encoding.Internal.pairs ((Text
"data" Text -> [TaxId] -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= CustomerTaxIds' -> [TaxId]
customerTaxIds'Data CustomerTaxIds'
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..= CustomerTaxIds' -> Bool
customerTaxIds'HasMore CustomerTaxIds'
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..= CustomerTaxIds' -> Text
customerTaxIds'Url CustomerTaxIds'
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 CustomerTaxIds' where
  parseJSON :: Value -> Parser CustomerTaxIds'
parseJSON = String
-> (Object -> Parser CustomerTaxIds')
-> Value
-> Parser CustomerTaxIds'
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.Aeson.Types.FromJSON.withObject String
"CustomerTaxIds'" (\Object
obj -> ((([TaxId] -> Bool -> Text -> CustomerTaxIds')
-> Parser ([TaxId] -> Bool -> Text -> CustomerTaxIds')
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure [TaxId] -> Bool -> Text -> CustomerTaxIds'
CustomerTaxIds' Parser ([TaxId] -> Bool -> Text -> CustomerTaxIds')
-> Parser [TaxId] -> Parser (Bool -> Text -> CustomerTaxIds')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser [TaxId]
forall a. FromJSON a => Object -> Text -> Parser a
Data.Aeson.Types.FromJSON..: Text
"data")) Parser (Bool -> Text -> CustomerTaxIds')
-> Parser Bool -> Parser (Text -> CustomerTaxIds')
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 -> CustomerTaxIds')
-> Parser Text -> Parser CustomerTaxIds'
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 'CustomerTaxIds'' with all required fields.
mkCustomerTaxIds' ::
  -- | 'customerTaxIds'Data'
  [TaxId] ->
  -- | 'customerTaxIds'HasMore'
  GHC.Types.Bool ->
  -- | 'customerTaxIds'Url'
  Data.Text.Internal.Text ->
  CustomerTaxIds'
mkCustomerTaxIds' :: [TaxId] -> Bool -> Text -> CustomerTaxIds'
mkCustomerTaxIds' [TaxId]
customerTaxIds'Data Bool
customerTaxIds'HasMore Text
customerTaxIds'Url =
  CustomerTaxIds' :: [TaxId] -> Bool -> Text -> CustomerTaxIds'
CustomerTaxIds'
    { customerTaxIds'Data :: [TaxId]
customerTaxIds'Data = [TaxId]
customerTaxIds'Data,
      customerTaxIds'HasMore :: Bool
customerTaxIds'HasMore = Bool
customerTaxIds'HasMore,
      customerTaxIds'Url :: Text
customerTaxIds'Url = Text
customerTaxIds'Url
    }