{-# 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 BillingInfoCreate
module RecurlyClient.Types.BillingInfoCreate 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
import qualified Data.ByteString as Data.ByteString.Internal
import qualified Data.Foldable
import qualified Data.Functor
import qualified Data.Maybe
import qualified Data.Scientific
import qualified Data.Text
import qualified Data.Text as 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 RecurlyClient.Common
import RecurlyClient.TypeAlias
import {-# SOURCE #-} RecurlyClient.Types.Address
import {-# SOURCE #-} RecurlyClient.Types.PaymentGatewayReferences
import qualified Prelude as GHC.Integer.Type
import qualified Prelude as GHC.Maybe

-- | Defines the object schema located at @components.schemas.BillingInfoCreate@ in the specification.
data BillingInfoCreate = BillingInfoCreate
    { BillingInfoCreate -> Maybe Text
billingInfoCreateAccount_number :: (GHC.Maybe.Maybe Data.Text.Internal.Text)
    -- ^ account_number: The bank account number. (ACH, Bacs only)
    --
    -- Constraints:
    --
    -- * Maximum length of 255
    , BillingInfoCreate -> Maybe BillingInfoCreateAccount_type
billingInfoCreateAccount_type :: (GHC.Maybe.Maybe BillingInfoCreateAccount_type)
    -- ^ account_type: The bank account type. (ACH only)
    , BillingInfoCreate -> Maybe Address
billingInfoCreateAddress :: (GHC.Maybe.Maybe Address)
    -- ^ address
    , BillingInfoCreate -> Maybe Text
billingInfoCreateAmazon_billing_agreement_id :: (GHC.Maybe.Maybe Data.Text.Internal.Text)
    -- ^ amazon_billing_agreement_id
    , BillingInfoCreate -> Maybe Bool
billingInfoCreateBackup_payment_method :: (GHC.Maybe.Maybe GHC.Types.Bool)
    -- ^ backup_payment_method: The \`backup_payment_method\` field is used to designate a billing info as a backup on the account that will be tried if the initial billing info used for an invoice is declined. All payment methods, including the billing info marked \`primary_payment_method\` can be set as a backup. An account can have a maximum of 1 backup, if a user sets a different payment method as a backup, the existing backup will no longer be marked as such.
    , BillingInfoCreate -> Maybe BillingInfoCreateCard_network_preference
billingInfoCreateCard_network_preference :: (GHC.Maybe.Maybe BillingInfoCreateCard_network_preference)
    -- ^ card_network_preference: Represents the card network preference associated with the billing info for dual badged cards. Must be a supported card network.
    , BillingInfoCreate -> Maybe BillingInfoCreateCard_type
billingInfoCreateCard_type :: (GHC.Maybe.Maybe BillingInfoCreateCard_type)
    -- ^ card_type
    , BillingInfoCreate -> Maybe Text
billingInfoCreateCompany :: (GHC.Maybe.Maybe Data.Text.Internal.Text)
    -- ^ company
    --
    -- Constraints:
    --
    -- * Maximum length of 100
    , BillingInfoCreate -> Maybe Text
billingInfoCreateCurrency :: (GHC.Maybe.Maybe Data.Text.Internal.Text)
    -- ^ currency: 3-letter ISO 4217 currency code.
    , BillingInfoCreate -> Maybe Text
billingInfoCreateCvv :: (GHC.Maybe.Maybe Data.Text.Internal.Text)
    -- ^ cvv: *STRONGLY RECOMMENDED*
    --
    -- Constraints:
    --
    -- * Maximum length of 4
    , BillingInfoCreate -> Maybe BillingInfoCreateExternal_hpp_type
billingInfoCreateExternal_hpp_type :: (GHC.Maybe.Maybe BillingInfoCreateExternal_hpp_type)
    -- ^ external_hpp_type: Use for Adyen HPP billing info. This should only be used as part of a pending purchase request, when the billing info is nested inside an account object.
    , BillingInfoCreate -> Maybe Text
billingInfoCreateFirst_name :: (GHC.Maybe.Maybe Data.Text.Internal.Text)
    -- ^ first_name
    --
    -- Constraints:
    --
    -- * Maximum length of 50
    , BillingInfoCreate -> Maybe Text
billingInfoCreateFraud_session_id :: (GHC.Maybe.Maybe Data.Text.Internal.Text)
    -- ^ fraud_session_id
    , BillingInfoCreate -> Maybe BillingInfoCreateGateway_attributes
billingInfoCreateGateway_attributes :: (GHC.Maybe.Maybe BillingInfoCreateGateway_attributes)
    -- ^ gateway_attributes: Additional attributes to send to the gateway.
    , BillingInfoCreate -> Maybe Text
billingInfoCreateGateway_code :: (GHC.Maybe.Maybe Data.Text.Internal.Text)
    -- ^ gateway_code
    --
    -- Constraints:
    --
    -- * Maximum length of 12
    , BillingInfoCreate -> Maybe Text
billingInfoCreateGateway_token :: (GHC.Maybe.Maybe Data.Text.Internal.Text)
    -- ^ gateway_token
    --
    -- Constraints:
    --
    -- * Maximum length of 50
    , BillingInfoCreate -> Maybe Text
billingInfoCreateIban :: (GHC.Maybe.Maybe Data.Text.Internal.Text)
    -- ^ iban: The International Bank Account Number, up to 34 alphanumeric characters comprising a country code; two check digits; and a number that includes the domestic bank account number, branch identifier, and potential routing information
    --
    -- Constraints:
    --
    -- * Maximum length of 34
    , BillingInfoCreate -> Maybe Text
billingInfoCreateIp_address :: (GHC.Maybe.Maybe Data.Text.Internal.Text)
    -- ^ ip_address: *STRONGLY RECOMMENDED* Customer\'s IP address when updating their billing information.
    --
    -- Constraints:
    --
    -- * Maximum length of 20
    , BillingInfoCreate -> Maybe Text
billingInfoCreateLast_name :: (GHC.Maybe.Maybe Data.Text.Internal.Text)
    -- ^ last_name
    --
    -- Constraints:
    --
    -- * Maximum length of 50
    , BillingInfoCreate -> Maybe Text
billingInfoCreateMonth :: (GHC.Maybe.Maybe Data.Text.Internal.Text)
    -- ^ month
    --
    -- Constraints:
    --
    -- * Maximum length of 2
    , BillingInfoCreate -> Maybe Text
billingInfoCreateName_on_account :: (GHC.Maybe.Maybe Data.Text.Internal.Text)
    -- ^ name_on_account: The name associated with the bank account (ACH, SEPA, Bacs only)
    --
    -- Constraints:
    --
    -- * Maximum length of 255
    , BillingInfoCreate -> Maybe Text
billingInfoCreateNumber :: (GHC.Maybe.Maybe Data.Text.Internal.Text)
    -- ^ number: Credit card number, spaces and dashes are accepted.
    , BillingInfoCreate
-> Maybe BillingInfoCreateOnline_banking_payment_type
billingInfoCreateOnline_banking_payment_type :: (GHC.Maybe.Maybe BillingInfoCreateOnline_banking_payment_type)
    -- ^ online_banking_payment_type: Use for Online Banking billing info. This should only be used as part of a pending purchase request, when the billing info is nested inside an account object.
    , BillingInfoCreate -> Maybe [PaymentGatewayReferences]
billingInfoCreatePayment_gateway_references :: (GHC.Maybe.Maybe [PaymentGatewayReferences])
    -- ^ payment_gateway_references: Array of Payment Gateway References, each a reference to a third-party gateway object of varying types.
    , BillingInfoCreate -> Maybe Text
billingInfoCreatePaypal_billing_agreement_id :: (GHC.Maybe.Maybe Data.Text.Internal.Text)
    -- ^ paypal_billing_agreement_id
    , BillingInfoCreate -> Maybe Bool
billingInfoCreatePrimary_payment_method :: (GHC.Maybe.Maybe GHC.Types.Bool)
    -- ^ primary_payment_method: The \`primary_payment_method\` field is used to designate the primary billing info on the account. The first billing info created on an account will always become primary. Adding additional billing infos provides the flexibility to mark another billing info as primary, or adding additional non-primary billing infos. This can be accomplished by passing the \`primary_payment_method\` with a value of \`true\`. When adding billing infos via the billing_info and \/accounts endpoints, this value is not permitted, and will return an error if provided.
    , BillingInfoCreate -> Maybe Text
billingInfoCreateRoku_billing_agreement_id :: (GHC.Maybe.Maybe Data.Text.Internal.Text)
    -- ^ roku_billing_agreement_id
    , BillingInfoCreate -> Maybe Text
billingInfoCreateRouting_number :: (GHC.Maybe.Maybe Data.Text.Internal.Text)
    -- ^ routing_number: The bank\'s rounting number. (ACH only)
    --
    -- Constraints:
    --
    -- * Maximum length of 15
    , BillingInfoCreate -> Maybe Text
billingInfoCreateSort_code :: (GHC.Maybe.Maybe Data.Text.Internal.Text)
    -- ^ sort_code: Bank identifier code for UK based banks. Required for Bacs based billing infos. (Bacs only)
    --
    -- Constraints:
    --
    -- * Maximum length of 15
    , BillingInfoCreate -> Maybe Text
billingInfoCreateTax_identifier :: (GHC.Maybe.Maybe Data.Text.Internal.Text)
    -- ^ tax_identifier: Tax identifier is required if adding a billing info that is a consumer card in Brazil or in Argentina. This would be the customer\'s CPF\/CNPJ (Brazil) and CUIT (Argentina). CPF, CNPJ and CUIT are tax identifiers for all residents who pay taxes in Brazil and Argentina respectively.
    , BillingInfoCreate -> Maybe BillingInfoCreateTax_identifier_type
billingInfoCreateTax_identifier_type :: (GHC.Maybe.Maybe BillingInfoCreateTax_identifier_type)
    -- ^ tax_identifier_type: This field and a value of \`cpf\`, \`cnpj\` or \`cuit\` are required if adding a billing info that is an elo or hipercard type in Brazil or in Argentina.
    , BillingInfoCreate -> Maybe Text
billingInfoCreateThree_d_secure_action_result_token_id :: (GHC.Maybe.Maybe Data.Text.Internal.Text)
    -- ^ three_d_secure_action_result_token_id: A token generated by Recurly.js after completing a 3-D Secure device fingerprinting or authentication challenge.
    --
    -- Constraints:
    --
    -- * Maximum length of 22
    , BillingInfoCreate -> Maybe Text
billingInfoCreateToken_id :: (GHC.Maybe.Maybe Data.Text.Internal.Text)
    -- ^ token_id: A token [generated by Recurly.js](https:\/\/recurly.com\/developers\/reference\/recurly-js\/\#getting-a-token).
    --
    -- Constraints:
    --
    -- * Maximum length of 22
    , BillingInfoCreate -> Maybe BillingInfoCreateTransaction_type
billingInfoCreateTransaction_type :: (GHC.Maybe.Maybe BillingInfoCreateTransaction_type)
    -- ^ transaction_type: An optional type designation for the payment gateway transaction created by this request. Supports \'moto\' value, which is the acronym for mail order and telephone transactions.
    , BillingInfoCreate -> Maybe BillingInfoCreateType
billingInfoCreateType :: (GHC.Maybe.Maybe BillingInfoCreateType)
    -- ^ type: The payment method type for a non-credit card based billing info. \`bacs\` and \`becs\` are the only accepted values.
    , BillingInfoCreate -> Maybe Text
billingInfoCreateVat_number :: (GHC.Maybe.Maybe Data.Text.Internal.Text)
    -- ^ vat_number
    , BillingInfoCreate -> Maybe Text
billingInfoCreateYear :: (GHC.Maybe.Maybe Data.Text.Internal.Text)
    -- ^ year
    --
    -- Constraints:
    --
    -- * Maximum length of 4
    }
    deriving
        ( Int -> BillingInfoCreate -> ShowS
[BillingInfoCreate] -> ShowS
BillingInfoCreate -> String
(Int -> BillingInfoCreate -> ShowS)
-> (BillingInfoCreate -> String)
-> ([BillingInfoCreate] -> ShowS)
-> Show BillingInfoCreate
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> BillingInfoCreate -> ShowS
showsPrec :: Int -> BillingInfoCreate -> ShowS
$cshow :: BillingInfoCreate -> String
show :: BillingInfoCreate -> String
$cshowList :: [BillingInfoCreate] -> ShowS
showList :: [BillingInfoCreate] -> ShowS
GHC.Show.Show
        , BillingInfoCreate -> BillingInfoCreate -> Bool
(BillingInfoCreate -> BillingInfoCreate -> Bool)
-> (BillingInfoCreate -> BillingInfoCreate -> Bool)
-> Eq BillingInfoCreate
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: BillingInfoCreate -> BillingInfoCreate -> Bool
== :: BillingInfoCreate -> BillingInfoCreate -> Bool
$c/= :: BillingInfoCreate -> BillingInfoCreate -> Bool
/= :: BillingInfoCreate -> BillingInfoCreate -> Bool
GHC.Classes.Eq
        )

instance Data.Aeson.Types.ToJSON.ToJSON BillingInfoCreate where
    toJSON :: BillingInfoCreate -> Value
toJSON BillingInfoCreate
obj = [Pair] -> Value
Data.Aeson.Types.Internal.object ([[Pair]] -> [Pair]
forall (t :: * -> *) a. Foldable t => t [a] -> [a]
Data.Foldable.concat ([Pair] -> (Text -> [Pair]) -> Maybe Text -> [Pair]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Pair]
forall a. Monoid a => a
GHC.Base.mempty (Pair -> [Pair]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Pair -> [Pair]) -> (Text -> Pair) -> Text -> [Pair]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"account_number" Key -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Pair
Data.Aeson.Types.ToJSON..=)) (BillingInfoCreate -> Maybe Text
billingInfoCreateAccount_number BillingInfoCreate
obj) [Pair] -> [[Pair]] -> [[Pair]]
forall a. a -> [a] -> [a]
: [Pair]
-> (BillingInfoCreateAccount_type -> [Pair])
-> Maybe BillingInfoCreateAccount_type
-> [Pair]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Pair]
forall a. Monoid a => a
GHC.Base.mempty (Pair -> [Pair]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Pair -> [Pair])
-> (BillingInfoCreateAccount_type -> Pair)
-> BillingInfoCreateAccount_type
-> [Pair]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"account_type" Key -> BillingInfoCreateAccount_type -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Pair
Data.Aeson.Types.ToJSON..=)) (BillingInfoCreate -> Maybe BillingInfoCreateAccount_type
billingInfoCreateAccount_type BillingInfoCreate
obj) [Pair] -> [[Pair]] -> [[Pair]]
forall a. a -> [a] -> [a]
: [Pair] -> (Address -> [Pair]) -> Maybe Address -> [Pair]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Pair]
forall a. Monoid a => a
GHC.Base.mempty (Pair -> [Pair]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Pair -> [Pair]) -> (Address -> Pair) -> Address -> [Pair]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"address" Key -> Address -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Pair
Data.Aeson.Types.ToJSON..=)) (BillingInfoCreate -> Maybe Address
billingInfoCreateAddress BillingInfoCreate
obj) [Pair] -> [[Pair]] -> [[Pair]]
forall a. a -> [a] -> [a]
: [Pair] -> (Text -> [Pair]) -> Maybe Text -> [Pair]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Pair]
forall a. Monoid a => a
GHC.Base.mempty (Pair -> [Pair]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Pair -> [Pair]) -> (Text -> Pair) -> Text -> [Pair]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"amazon_billing_agreement_id" Key -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Pair
Data.Aeson.Types.ToJSON..=)) (BillingInfoCreate -> Maybe Text
billingInfoCreateAmazon_billing_agreement_id BillingInfoCreate
obj) [Pair] -> [[Pair]] -> [[Pair]]
forall a. a -> [a] -> [a]
: [Pair] -> (Bool -> [Pair]) -> Maybe Bool -> [Pair]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Pair]
forall a. Monoid a => a
GHC.Base.mempty (Pair -> [Pair]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Pair -> [Pair]) -> (Bool -> Pair) -> Bool -> [Pair]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"backup_payment_method" Key -> Bool -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Pair
Data.Aeson.Types.ToJSON..=)) (BillingInfoCreate -> Maybe Bool
billingInfoCreateBackup_payment_method BillingInfoCreate
obj) [Pair] -> [[Pair]] -> [[Pair]]
forall a. a -> [a] -> [a]
: [Pair]
-> (BillingInfoCreateCard_network_preference -> [Pair])
-> Maybe BillingInfoCreateCard_network_preference
-> [Pair]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Pair]
forall a. Monoid a => a
GHC.Base.mempty (Pair -> [Pair]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Pair -> [Pair])
-> (BillingInfoCreateCard_network_preference -> Pair)
-> BillingInfoCreateCard_network_preference
-> [Pair]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"card_network_preference" Key -> BillingInfoCreateCard_network_preference -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Pair
Data.Aeson.Types.ToJSON..=)) (BillingInfoCreate -> Maybe BillingInfoCreateCard_network_preference
billingInfoCreateCard_network_preference BillingInfoCreate
obj) [Pair] -> [[Pair]] -> [[Pair]]
forall a. a -> [a] -> [a]
: [Pair]
-> (BillingInfoCreateCard_type -> [Pair])
-> Maybe BillingInfoCreateCard_type
-> [Pair]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Pair]
forall a. Monoid a => a
GHC.Base.mempty (Pair -> [Pair]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Pair -> [Pair])
-> (BillingInfoCreateCard_type -> Pair)
-> BillingInfoCreateCard_type
-> [Pair]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"card_type" Key -> BillingInfoCreateCard_type -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Pair
Data.Aeson.Types.ToJSON..=)) (BillingInfoCreate -> Maybe BillingInfoCreateCard_type
billingInfoCreateCard_type BillingInfoCreate
obj) [Pair] -> [[Pair]] -> [[Pair]]
forall a. a -> [a] -> [a]
: [Pair] -> (Text -> [Pair]) -> Maybe Text -> [Pair]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Pair]
forall a. Monoid a => a
GHC.Base.mempty (Pair -> [Pair]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Pair -> [Pair]) -> (Text -> Pair) -> Text -> [Pair]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"company" Key -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Pair
Data.Aeson.Types.ToJSON..=)) (BillingInfoCreate -> Maybe Text
billingInfoCreateCompany BillingInfoCreate
obj) [Pair] -> [[Pair]] -> [[Pair]]
forall a. a -> [a] -> [a]
: [Pair] -> (Text -> [Pair]) -> Maybe Text -> [Pair]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Pair]
forall a. Monoid a => a
GHC.Base.mempty (Pair -> [Pair]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Pair -> [Pair]) -> (Text -> Pair) -> Text -> [Pair]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"currency" Key -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Pair
Data.Aeson.Types.ToJSON..=)) (BillingInfoCreate -> Maybe Text
billingInfoCreateCurrency BillingInfoCreate
obj) [Pair] -> [[Pair]] -> [[Pair]]
forall a. a -> [a] -> [a]
: [Pair] -> (Text -> [Pair]) -> Maybe Text -> [Pair]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Pair]
forall a. Monoid a => a
GHC.Base.mempty (Pair -> [Pair]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Pair -> [Pair]) -> (Text -> Pair) -> Text -> [Pair]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"cvv" Key -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Pair
Data.Aeson.Types.ToJSON..=)) (BillingInfoCreate -> Maybe Text
billingInfoCreateCvv BillingInfoCreate
obj) [Pair] -> [[Pair]] -> [[Pair]]
forall a. a -> [a] -> [a]
: [Pair]
-> (BillingInfoCreateExternal_hpp_type -> [Pair])
-> Maybe BillingInfoCreateExternal_hpp_type
-> [Pair]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Pair]
forall a. Monoid a => a
GHC.Base.mempty (Pair -> [Pair]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Pair -> [Pair])
-> (BillingInfoCreateExternal_hpp_type -> Pair)
-> BillingInfoCreateExternal_hpp_type
-> [Pair]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"external_hpp_type" Key -> BillingInfoCreateExternal_hpp_type -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Pair
Data.Aeson.Types.ToJSON..=)) (BillingInfoCreate -> Maybe BillingInfoCreateExternal_hpp_type
billingInfoCreateExternal_hpp_type BillingInfoCreate
obj) [Pair] -> [[Pair]] -> [[Pair]]
forall a. a -> [a] -> [a]
: [Pair] -> (Text -> [Pair]) -> Maybe Text -> [Pair]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Pair]
forall a. Monoid a => a
GHC.Base.mempty (Pair -> [Pair]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Pair -> [Pair]) -> (Text -> Pair) -> Text -> [Pair]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"first_name" Key -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Pair
Data.Aeson.Types.ToJSON..=)) (BillingInfoCreate -> Maybe Text
billingInfoCreateFirst_name BillingInfoCreate
obj) [Pair] -> [[Pair]] -> [[Pair]]
forall a. a -> [a] -> [a]
: [Pair] -> (Text -> [Pair]) -> Maybe Text -> [Pair]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Pair]
forall a. Monoid a => a
GHC.Base.mempty (Pair -> [Pair]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Pair -> [Pair]) -> (Text -> Pair) -> Text -> [Pair]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"fraud_session_id" Key -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Pair
Data.Aeson.Types.ToJSON..=)) (BillingInfoCreate -> Maybe Text
billingInfoCreateFraud_session_id BillingInfoCreate
obj) [Pair] -> [[Pair]] -> [[Pair]]
forall a. a -> [a] -> [a]
: [Pair]
-> (BillingInfoCreateGateway_attributes -> [Pair])
-> Maybe BillingInfoCreateGateway_attributes
-> [Pair]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Pair]
forall a. Monoid a => a
GHC.Base.mempty (Pair -> [Pair]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Pair -> [Pair])
-> (BillingInfoCreateGateway_attributes -> Pair)
-> BillingInfoCreateGateway_attributes
-> [Pair]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"gateway_attributes" Key -> BillingInfoCreateGateway_attributes -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Pair
Data.Aeson.Types.ToJSON..=)) (BillingInfoCreate -> Maybe BillingInfoCreateGateway_attributes
billingInfoCreateGateway_attributes BillingInfoCreate
obj) [Pair] -> [[Pair]] -> [[Pair]]
forall a. a -> [a] -> [a]
: [Pair] -> (Text -> [Pair]) -> Maybe Text -> [Pair]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Pair]
forall a. Monoid a => a
GHC.Base.mempty (Pair -> [Pair]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Pair -> [Pair]) -> (Text -> Pair) -> Text -> [Pair]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"gateway_code" Key -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Pair
Data.Aeson.Types.ToJSON..=)) (BillingInfoCreate -> Maybe Text
billingInfoCreateGateway_code BillingInfoCreate
obj) [Pair] -> [[Pair]] -> [[Pair]]
forall a. a -> [a] -> [a]
: [Pair] -> (Text -> [Pair]) -> Maybe Text -> [Pair]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Pair]
forall a. Monoid a => a
GHC.Base.mempty (Pair -> [Pair]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Pair -> [Pair]) -> (Text -> Pair) -> Text -> [Pair]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"gateway_token" Key -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Pair
Data.Aeson.Types.ToJSON..=)) (BillingInfoCreate -> Maybe Text
billingInfoCreateGateway_token BillingInfoCreate
obj) [Pair] -> [[Pair]] -> [[Pair]]
forall a. a -> [a] -> [a]
: [Pair] -> (Text -> [Pair]) -> Maybe Text -> [Pair]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Pair]
forall a. Monoid a => a
GHC.Base.mempty (Pair -> [Pair]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Pair -> [Pair]) -> (Text -> Pair) -> Text -> [Pair]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"iban" Key -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Pair
Data.Aeson.Types.ToJSON..=)) (BillingInfoCreate -> Maybe Text
billingInfoCreateIban BillingInfoCreate
obj) [Pair] -> [[Pair]] -> [[Pair]]
forall a. a -> [a] -> [a]
: [Pair] -> (Text -> [Pair]) -> Maybe Text -> [Pair]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Pair]
forall a. Monoid a => a
GHC.Base.mempty (Pair -> [Pair]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Pair -> [Pair]) -> (Text -> Pair) -> Text -> [Pair]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"ip_address" Key -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Pair
Data.Aeson.Types.ToJSON..=)) (BillingInfoCreate -> Maybe Text
billingInfoCreateIp_address BillingInfoCreate
obj) [Pair] -> [[Pair]] -> [[Pair]]
forall a. a -> [a] -> [a]
: [Pair] -> (Text -> [Pair]) -> Maybe Text -> [Pair]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Pair]
forall a. Monoid a => a
GHC.Base.mempty (Pair -> [Pair]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Pair -> [Pair]) -> (Text -> Pair) -> Text -> [Pair]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"last_name" Key -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Pair
Data.Aeson.Types.ToJSON..=)) (BillingInfoCreate -> Maybe Text
billingInfoCreateLast_name BillingInfoCreate
obj) [Pair] -> [[Pair]] -> [[Pair]]
forall a. a -> [a] -> [a]
: [Pair] -> (Text -> [Pair]) -> Maybe Text -> [Pair]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Pair]
forall a. Monoid a => a
GHC.Base.mempty (Pair -> [Pair]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Pair -> [Pair]) -> (Text -> Pair) -> Text -> [Pair]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"month" Key -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Pair
Data.Aeson.Types.ToJSON..=)) (BillingInfoCreate -> Maybe Text
billingInfoCreateMonth BillingInfoCreate
obj) [Pair] -> [[Pair]] -> [[Pair]]
forall a. a -> [a] -> [a]
: [Pair] -> (Text -> [Pair]) -> Maybe Text -> [Pair]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Pair]
forall a. Monoid a => a
GHC.Base.mempty (Pair -> [Pair]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Pair -> [Pair]) -> (Text -> Pair) -> Text -> [Pair]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"name_on_account" Key -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Pair
Data.Aeson.Types.ToJSON..=)) (BillingInfoCreate -> Maybe Text
billingInfoCreateName_on_account BillingInfoCreate
obj) [Pair] -> [[Pair]] -> [[Pair]]
forall a. a -> [a] -> [a]
: [Pair] -> (Text -> [Pair]) -> Maybe Text -> [Pair]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Pair]
forall a. Monoid a => a
GHC.Base.mempty (Pair -> [Pair]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Pair -> [Pair]) -> (Text -> Pair) -> Text -> [Pair]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"number" Key -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Pair
Data.Aeson.Types.ToJSON..=)) (BillingInfoCreate -> Maybe Text
billingInfoCreateNumber BillingInfoCreate
obj) [Pair] -> [[Pair]] -> [[Pair]]
forall a. a -> [a] -> [a]
: [Pair]
-> (BillingInfoCreateOnline_banking_payment_type -> [Pair])
-> Maybe BillingInfoCreateOnline_banking_payment_type
-> [Pair]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Pair]
forall a. Monoid a => a
GHC.Base.mempty (Pair -> [Pair]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Pair -> [Pair])
-> (BillingInfoCreateOnline_banking_payment_type -> Pair)
-> BillingInfoCreateOnline_banking_payment_type
-> [Pair]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"online_banking_payment_type" Key -> BillingInfoCreateOnline_banking_payment_type -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Pair
Data.Aeson.Types.ToJSON..=)) (BillingInfoCreate
-> Maybe BillingInfoCreateOnline_banking_payment_type
billingInfoCreateOnline_banking_payment_type BillingInfoCreate
obj) [Pair] -> [[Pair]] -> [[Pair]]
forall a. a -> [a] -> [a]
: [Pair]
-> ([PaymentGatewayReferences] -> [Pair])
-> Maybe [PaymentGatewayReferences]
-> [Pair]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Pair]
forall a. Monoid a => a
GHC.Base.mempty (Pair -> [Pair]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Pair -> [Pair])
-> ([PaymentGatewayReferences] -> Pair)
-> [PaymentGatewayReferences]
-> [Pair]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"payment_gateway_references" Key -> [PaymentGatewayReferences] -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Pair
Data.Aeson.Types.ToJSON..=)) (BillingInfoCreate -> Maybe [PaymentGatewayReferences]
billingInfoCreatePayment_gateway_references BillingInfoCreate
obj) [Pair] -> [[Pair]] -> [[Pair]]
forall a. a -> [a] -> [a]
: [Pair] -> (Text -> [Pair]) -> Maybe Text -> [Pair]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Pair]
forall a. Monoid a => a
GHC.Base.mempty (Pair -> [Pair]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Pair -> [Pair]) -> (Text -> Pair) -> Text -> [Pair]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"paypal_billing_agreement_id" Key -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Pair
Data.Aeson.Types.ToJSON..=)) (BillingInfoCreate -> Maybe Text
billingInfoCreatePaypal_billing_agreement_id BillingInfoCreate
obj) [Pair] -> [[Pair]] -> [[Pair]]
forall a. a -> [a] -> [a]
: [Pair] -> (Bool -> [Pair]) -> Maybe Bool -> [Pair]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Pair]
forall a. Monoid a => a
GHC.Base.mempty (Pair -> [Pair]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Pair -> [Pair]) -> (Bool -> Pair) -> Bool -> [Pair]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"primary_payment_method" Key -> Bool -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Pair
Data.Aeson.Types.ToJSON..=)) (BillingInfoCreate -> Maybe Bool
billingInfoCreatePrimary_payment_method BillingInfoCreate
obj) [Pair] -> [[Pair]] -> [[Pair]]
forall a. a -> [a] -> [a]
: [Pair] -> (Text -> [Pair]) -> Maybe Text -> [Pair]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Pair]
forall a. Monoid a => a
GHC.Base.mempty (Pair -> [Pair]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Pair -> [Pair]) -> (Text -> Pair) -> Text -> [Pair]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"roku_billing_agreement_id" Key -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Pair
Data.Aeson.Types.ToJSON..=)) (BillingInfoCreate -> Maybe Text
billingInfoCreateRoku_billing_agreement_id BillingInfoCreate
obj) [Pair] -> [[Pair]] -> [[Pair]]
forall a. a -> [a] -> [a]
: [Pair] -> (Text -> [Pair]) -> Maybe Text -> [Pair]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Pair]
forall a. Monoid a => a
GHC.Base.mempty (Pair -> [Pair]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Pair -> [Pair]) -> (Text -> Pair) -> Text -> [Pair]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"routing_number" Key -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Pair
Data.Aeson.Types.ToJSON..=)) (BillingInfoCreate -> Maybe Text
billingInfoCreateRouting_number BillingInfoCreate
obj) [Pair] -> [[Pair]] -> [[Pair]]
forall a. a -> [a] -> [a]
: [Pair] -> (Text -> [Pair]) -> Maybe Text -> [Pair]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Pair]
forall a. Monoid a => a
GHC.Base.mempty (Pair -> [Pair]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Pair -> [Pair]) -> (Text -> Pair) -> Text -> [Pair]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"sort_code" Key -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Pair
Data.Aeson.Types.ToJSON..=)) (BillingInfoCreate -> Maybe Text
billingInfoCreateSort_code BillingInfoCreate
obj) [Pair] -> [[Pair]] -> [[Pair]]
forall a. a -> [a] -> [a]
: [Pair] -> (Text -> [Pair]) -> Maybe Text -> [Pair]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Pair]
forall a. Monoid a => a
GHC.Base.mempty (Pair -> [Pair]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Pair -> [Pair]) -> (Text -> Pair) -> Text -> [Pair]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"tax_identifier" Key -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Pair
Data.Aeson.Types.ToJSON..=)) (BillingInfoCreate -> Maybe Text
billingInfoCreateTax_identifier BillingInfoCreate
obj) [Pair] -> [[Pair]] -> [[Pair]]
forall a. a -> [a] -> [a]
: [Pair]
-> (BillingInfoCreateTax_identifier_type -> [Pair])
-> Maybe BillingInfoCreateTax_identifier_type
-> [Pair]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Pair]
forall a. Monoid a => a
GHC.Base.mempty (Pair -> [Pair]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Pair -> [Pair])
-> (BillingInfoCreateTax_identifier_type -> Pair)
-> BillingInfoCreateTax_identifier_type
-> [Pair]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"tax_identifier_type" Key -> BillingInfoCreateTax_identifier_type -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Pair
Data.Aeson.Types.ToJSON..=)) (BillingInfoCreate -> Maybe BillingInfoCreateTax_identifier_type
billingInfoCreateTax_identifier_type BillingInfoCreate
obj) [Pair] -> [[Pair]] -> [[Pair]]
forall a. a -> [a] -> [a]
: [Pair] -> (Text -> [Pair]) -> Maybe Text -> [Pair]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Pair]
forall a. Monoid a => a
GHC.Base.mempty (Pair -> [Pair]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Pair -> [Pair]) -> (Text -> Pair) -> Text -> [Pair]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"three_d_secure_action_result_token_id" Key -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Pair
Data.Aeson.Types.ToJSON..=)) (BillingInfoCreate -> Maybe Text
billingInfoCreateThree_d_secure_action_result_token_id BillingInfoCreate
obj) [Pair] -> [[Pair]] -> [[Pair]]
forall a. a -> [a] -> [a]
: [Pair] -> (Text -> [Pair]) -> Maybe Text -> [Pair]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Pair]
forall a. Monoid a => a
GHC.Base.mempty (Pair -> [Pair]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Pair -> [Pair]) -> (Text -> Pair) -> Text -> [Pair]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"token_id" Key -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Pair
Data.Aeson.Types.ToJSON..=)) (BillingInfoCreate -> Maybe Text
billingInfoCreateToken_id BillingInfoCreate
obj) [Pair] -> [[Pair]] -> [[Pair]]
forall a. a -> [a] -> [a]
: [Pair]
-> (BillingInfoCreateTransaction_type -> [Pair])
-> Maybe BillingInfoCreateTransaction_type
-> [Pair]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Pair]
forall a. Monoid a => a
GHC.Base.mempty (Pair -> [Pair]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Pair -> [Pair])
-> (BillingInfoCreateTransaction_type -> Pair)
-> BillingInfoCreateTransaction_type
-> [Pair]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"transaction_type" Key -> BillingInfoCreateTransaction_type -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Pair
Data.Aeson.Types.ToJSON..=)) (BillingInfoCreate -> Maybe BillingInfoCreateTransaction_type
billingInfoCreateTransaction_type BillingInfoCreate
obj) [Pair] -> [[Pair]] -> [[Pair]]
forall a. a -> [a] -> [a]
: [Pair]
-> (BillingInfoCreateType -> [Pair])
-> Maybe BillingInfoCreateType
-> [Pair]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Pair]
forall a. Monoid a => a
GHC.Base.mempty (Pair -> [Pair]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Pair -> [Pair])
-> (BillingInfoCreateType -> Pair)
-> BillingInfoCreateType
-> [Pair]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"type" Key -> BillingInfoCreateType -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Pair
Data.Aeson.Types.ToJSON..=)) (BillingInfoCreate -> Maybe BillingInfoCreateType
billingInfoCreateType BillingInfoCreate
obj) [Pair] -> [[Pair]] -> [[Pair]]
forall a. a -> [a] -> [a]
: [Pair] -> (Text -> [Pair]) -> Maybe Text -> [Pair]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Pair]
forall a. Monoid a => a
GHC.Base.mempty (Pair -> [Pair]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Pair -> [Pair]) -> (Text -> Pair) -> Text -> [Pair]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"vat_number" Key -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Pair
Data.Aeson.Types.ToJSON..=)) (BillingInfoCreate -> Maybe Text
billingInfoCreateVat_number BillingInfoCreate
obj) [Pair] -> [[Pair]] -> [[Pair]]
forall a. a -> [a] -> [a]
: [Pair] -> (Text -> [Pair]) -> Maybe Text -> [Pair]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Pair]
forall a. Monoid a => a
GHC.Base.mempty (Pair -> [Pair]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Pair -> [Pair]) -> (Text -> Pair) -> Text -> [Pair]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"year" Key -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Pair
Data.Aeson.Types.ToJSON..=)) (BillingInfoCreate -> Maybe Text
billingInfoCreateYear BillingInfoCreate
obj) [Pair] -> [[Pair]] -> [[Pair]]
forall a. a -> [a] -> [a]
: [[Pair]]
forall a. Monoid a => a
GHC.Base.mempty))
    toEncoding :: BillingInfoCreate -> Encoding
toEncoding BillingInfoCreate
obj = Series -> Encoding
Data.Aeson.Encoding.Internal.pairs ([Series] -> Series
forall a. Monoid a => [a] -> a
GHC.Base.mconcat ([[Series]] -> [Series]
forall (t :: * -> *) a. Foldable t => t [a] -> [a]
Data.Foldable.concat ([Series] -> (Text -> [Series]) -> Maybe Text -> [Series]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Series]
forall a. Monoid a => a
GHC.Base.mempty (Series -> [Series]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Series -> [Series]) -> (Text -> Series) -> Text -> [Series]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"account_number" Key -> Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Series
Data.Aeson.Types.ToJSON..=)) (BillingInfoCreate -> Maybe Text
billingInfoCreateAccount_number BillingInfoCreate
obj) [Series] -> [[Series]] -> [[Series]]
forall a. a -> [a] -> [a]
: [Series]
-> (BillingInfoCreateAccount_type -> [Series])
-> Maybe BillingInfoCreateAccount_type
-> [Series]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Series]
forall a. Monoid a => a
GHC.Base.mempty (Series -> [Series]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Series -> [Series])
-> (BillingInfoCreateAccount_type -> Series)
-> BillingInfoCreateAccount_type
-> [Series]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"account_type" Key -> BillingInfoCreateAccount_type -> Series
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Series
Data.Aeson.Types.ToJSON..=)) (BillingInfoCreate -> Maybe BillingInfoCreateAccount_type
billingInfoCreateAccount_type BillingInfoCreate
obj) [Series] -> [[Series]] -> [[Series]]
forall a. a -> [a] -> [a]
: [Series] -> (Address -> [Series]) -> Maybe Address -> [Series]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Series]
forall a. Monoid a => a
GHC.Base.mempty (Series -> [Series]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Series -> [Series]) -> (Address -> Series) -> Address -> [Series]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"address" Key -> Address -> Series
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Series
Data.Aeson.Types.ToJSON..=)) (BillingInfoCreate -> Maybe Address
billingInfoCreateAddress BillingInfoCreate
obj) [Series] -> [[Series]] -> [[Series]]
forall a. a -> [a] -> [a]
: [Series] -> (Text -> [Series]) -> Maybe Text -> [Series]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Series]
forall a. Monoid a => a
GHC.Base.mempty (Series -> [Series]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Series -> [Series]) -> (Text -> Series) -> Text -> [Series]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"amazon_billing_agreement_id" Key -> Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Series
Data.Aeson.Types.ToJSON..=)) (BillingInfoCreate -> Maybe Text
billingInfoCreateAmazon_billing_agreement_id BillingInfoCreate
obj) [Series] -> [[Series]] -> [[Series]]
forall a. a -> [a] -> [a]
: [Series] -> (Bool -> [Series]) -> Maybe Bool -> [Series]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Series]
forall a. Monoid a => a
GHC.Base.mempty (Series -> [Series]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Series -> [Series]) -> (Bool -> Series) -> Bool -> [Series]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"backup_payment_method" Key -> Bool -> Series
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Series
Data.Aeson.Types.ToJSON..=)) (BillingInfoCreate -> Maybe Bool
billingInfoCreateBackup_payment_method BillingInfoCreate
obj) [Series] -> [[Series]] -> [[Series]]
forall a. a -> [a] -> [a]
: [Series]
-> (BillingInfoCreateCard_network_preference -> [Series])
-> Maybe BillingInfoCreateCard_network_preference
-> [Series]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Series]
forall a. Monoid a => a
GHC.Base.mempty (Series -> [Series]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Series -> [Series])
-> (BillingInfoCreateCard_network_preference -> Series)
-> BillingInfoCreateCard_network_preference
-> [Series]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"card_network_preference" Key -> BillingInfoCreateCard_network_preference -> Series
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Series
Data.Aeson.Types.ToJSON..=)) (BillingInfoCreate -> Maybe BillingInfoCreateCard_network_preference
billingInfoCreateCard_network_preference BillingInfoCreate
obj) [Series] -> [[Series]] -> [[Series]]
forall a. a -> [a] -> [a]
: [Series]
-> (BillingInfoCreateCard_type -> [Series])
-> Maybe BillingInfoCreateCard_type
-> [Series]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Series]
forall a. Monoid a => a
GHC.Base.mempty (Series -> [Series]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Series -> [Series])
-> (BillingInfoCreateCard_type -> Series)
-> BillingInfoCreateCard_type
-> [Series]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"card_type" Key -> BillingInfoCreateCard_type -> Series
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Series
Data.Aeson.Types.ToJSON..=)) (BillingInfoCreate -> Maybe BillingInfoCreateCard_type
billingInfoCreateCard_type BillingInfoCreate
obj) [Series] -> [[Series]] -> [[Series]]
forall a. a -> [a] -> [a]
: [Series] -> (Text -> [Series]) -> Maybe Text -> [Series]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Series]
forall a. Monoid a => a
GHC.Base.mempty (Series -> [Series]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Series -> [Series]) -> (Text -> Series) -> Text -> [Series]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"company" Key -> Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Series
Data.Aeson.Types.ToJSON..=)) (BillingInfoCreate -> Maybe Text
billingInfoCreateCompany BillingInfoCreate
obj) [Series] -> [[Series]] -> [[Series]]
forall a. a -> [a] -> [a]
: [Series] -> (Text -> [Series]) -> Maybe Text -> [Series]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Series]
forall a. Monoid a => a
GHC.Base.mempty (Series -> [Series]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Series -> [Series]) -> (Text -> Series) -> Text -> [Series]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"currency" Key -> Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Series
Data.Aeson.Types.ToJSON..=)) (BillingInfoCreate -> Maybe Text
billingInfoCreateCurrency BillingInfoCreate
obj) [Series] -> [[Series]] -> [[Series]]
forall a. a -> [a] -> [a]
: [Series] -> (Text -> [Series]) -> Maybe Text -> [Series]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Series]
forall a. Monoid a => a
GHC.Base.mempty (Series -> [Series]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Series -> [Series]) -> (Text -> Series) -> Text -> [Series]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"cvv" Key -> Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Series
Data.Aeson.Types.ToJSON..=)) (BillingInfoCreate -> Maybe Text
billingInfoCreateCvv BillingInfoCreate
obj) [Series] -> [[Series]] -> [[Series]]
forall a. a -> [a] -> [a]
: [Series]
-> (BillingInfoCreateExternal_hpp_type -> [Series])
-> Maybe BillingInfoCreateExternal_hpp_type
-> [Series]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Series]
forall a. Monoid a => a
GHC.Base.mempty (Series -> [Series]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Series -> [Series])
-> (BillingInfoCreateExternal_hpp_type -> Series)
-> BillingInfoCreateExternal_hpp_type
-> [Series]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"external_hpp_type" Key -> BillingInfoCreateExternal_hpp_type -> Series
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Series
Data.Aeson.Types.ToJSON..=)) (BillingInfoCreate -> Maybe BillingInfoCreateExternal_hpp_type
billingInfoCreateExternal_hpp_type BillingInfoCreate
obj) [Series] -> [[Series]] -> [[Series]]
forall a. a -> [a] -> [a]
: [Series] -> (Text -> [Series]) -> Maybe Text -> [Series]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Series]
forall a. Monoid a => a
GHC.Base.mempty (Series -> [Series]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Series -> [Series]) -> (Text -> Series) -> Text -> [Series]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"first_name" Key -> Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Series
Data.Aeson.Types.ToJSON..=)) (BillingInfoCreate -> Maybe Text
billingInfoCreateFirst_name BillingInfoCreate
obj) [Series] -> [[Series]] -> [[Series]]
forall a. a -> [a] -> [a]
: [Series] -> (Text -> [Series]) -> Maybe Text -> [Series]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Series]
forall a. Monoid a => a
GHC.Base.mempty (Series -> [Series]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Series -> [Series]) -> (Text -> Series) -> Text -> [Series]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"fraud_session_id" Key -> Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Series
Data.Aeson.Types.ToJSON..=)) (BillingInfoCreate -> Maybe Text
billingInfoCreateFraud_session_id BillingInfoCreate
obj) [Series] -> [[Series]] -> [[Series]]
forall a. a -> [a] -> [a]
: [Series]
-> (BillingInfoCreateGateway_attributes -> [Series])
-> Maybe BillingInfoCreateGateway_attributes
-> [Series]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Series]
forall a. Monoid a => a
GHC.Base.mempty (Series -> [Series]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Series -> [Series])
-> (BillingInfoCreateGateway_attributes -> Series)
-> BillingInfoCreateGateway_attributes
-> [Series]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"gateway_attributes" Key -> BillingInfoCreateGateway_attributes -> Series
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Series
Data.Aeson.Types.ToJSON..=)) (BillingInfoCreate -> Maybe BillingInfoCreateGateway_attributes
billingInfoCreateGateway_attributes BillingInfoCreate
obj) [Series] -> [[Series]] -> [[Series]]
forall a. a -> [a] -> [a]
: [Series] -> (Text -> [Series]) -> Maybe Text -> [Series]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Series]
forall a. Monoid a => a
GHC.Base.mempty (Series -> [Series]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Series -> [Series]) -> (Text -> Series) -> Text -> [Series]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"gateway_code" Key -> Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Series
Data.Aeson.Types.ToJSON..=)) (BillingInfoCreate -> Maybe Text
billingInfoCreateGateway_code BillingInfoCreate
obj) [Series] -> [[Series]] -> [[Series]]
forall a. a -> [a] -> [a]
: [Series] -> (Text -> [Series]) -> Maybe Text -> [Series]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Series]
forall a. Monoid a => a
GHC.Base.mempty (Series -> [Series]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Series -> [Series]) -> (Text -> Series) -> Text -> [Series]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"gateway_token" Key -> Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Series
Data.Aeson.Types.ToJSON..=)) (BillingInfoCreate -> Maybe Text
billingInfoCreateGateway_token BillingInfoCreate
obj) [Series] -> [[Series]] -> [[Series]]
forall a. a -> [a] -> [a]
: [Series] -> (Text -> [Series]) -> Maybe Text -> [Series]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Series]
forall a. Monoid a => a
GHC.Base.mempty (Series -> [Series]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Series -> [Series]) -> (Text -> Series) -> Text -> [Series]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"iban" Key -> Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Series
Data.Aeson.Types.ToJSON..=)) (BillingInfoCreate -> Maybe Text
billingInfoCreateIban BillingInfoCreate
obj) [Series] -> [[Series]] -> [[Series]]
forall a. a -> [a] -> [a]
: [Series] -> (Text -> [Series]) -> Maybe Text -> [Series]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Series]
forall a. Monoid a => a
GHC.Base.mempty (Series -> [Series]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Series -> [Series]) -> (Text -> Series) -> Text -> [Series]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"ip_address" Key -> Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Series
Data.Aeson.Types.ToJSON..=)) (BillingInfoCreate -> Maybe Text
billingInfoCreateIp_address BillingInfoCreate
obj) [Series] -> [[Series]] -> [[Series]]
forall a. a -> [a] -> [a]
: [Series] -> (Text -> [Series]) -> Maybe Text -> [Series]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Series]
forall a. Monoid a => a
GHC.Base.mempty (Series -> [Series]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Series -> [Series]) -> (Text -> Series) -> Text -> [Series]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"last_name" Key -> Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Series
Data.Aeson.Types.ToJSON..=)) (BillingInfoCreate -> Maybe Text
billingInfoCreateLast_name BillingInfoCreate
obj) [Series] -> [[Series]] -> [[Series]]
forall a. a -> [a] -> [a]
: [Series] -> (Text -> [Series]) -> Maybe Text -> [Series]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Series]
forall a. Monoid a => a
GHC.Base.mempty (Series -> [Series]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Series -> [Series]) -> (Text -> Series) -> Text -> [Series]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"month" Key -> Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Series
Data.Aeson.Types.ToJSON..=)) (BillingInfoCreate -> Maybe Text
billingInfoCreateMonth BillingInfoCreate
obj) [Series] -> [[Series]] -> [[Series]]
forall a. a -> [a] -> [a]
: [Series] -> (Text -> [Series]) -> Maybe Text -> [Series]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Series]
forall a. Monoid a => a
GHC.Base.mempty (Series -> [Series]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Series -> [Series]) -> (Text -> Series) -> Text -> [Series]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"name_on_account" Key -> Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Series
Data.Aeson.Types.ToJSON..=)) (BillingInfoCreate -> Maybe Text
billingInfoCreateName_on_account BillingInfoCreate
obj) [Series] -> [[Series]] -> [[Series]]
forall a. a -> [a] -> [a]
: [Series] -> (Text -> [Series]) -> Maybe Text -> [Series]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Series]
forall a. Monoid a => a
GHC.Base.mempty (Series -> [Series]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Series -> [Series]) -> (Text -> Series) -> Text -> [Series]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"number" Key -> Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Series
Data.Aeson.Types.ToJSON..=)) (BillingInfoCreate -> Maybe Text
billingInfoCreateNumber BillingInfoCreate
obj) [Series] -> [[Series]] -> [[Series]]
forall a. a -> [a] -> [a]
: [Series]
-> (BillingInfoCreateOnline_banking_payment_type -> [Series])
-> Maybe BillingInfoCreateOnline_banking_payment_type
-> [Series]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Series]
forall a. Monoid a => a
GHC.Base.mempty (Series -> [Series]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Series -> [Series])
-> (BillingInfoCreateOnline_banking_payment_type -> Series)
-> BillingInfoCreateOnline_banking_payment_type
-> [Series]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"online_banking_payment_type" Key -> BillingInfoCreateOnline_banking_payment_type -> Series
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Series
Data.Aeson.Types.ToJSON..=)) (BillingInfoCreate
-> Maybe BillingInfoCreateOnline_banking_payment_type
billingInfoCreateOnline_banking_payment_type BillingInfoCreate
obj) [Series] -> [[Series]] -> [[Series]]
forall a. a -> [a] -> [a]
: [Series]
-> ([PaymentGatewayReferences] -> [Series])
-> Maybe [PaymentGatewayReferences]
-> [Series]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Series]
forall a. Monoid a => a
GHC.Base.mempty (Series -> [Series]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Series -> [Series])
-> ([PaymentGatewayReferences] -> Series)
-> [PaymentGatewayReferences]
-> [Series]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"payment_gateway_references" Key -> [PaymentGatewayReferences] -> Series
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Series
Data.Aeson.Types.ToJSON..=)) (BillingInfoCreate -> Maybe [PaymentGatewayReferences]
billingInfoCreatePayment_gateway_references BillingInfoCreate
obj) [Series] -> [[Series]] -> [[Series]]
forall a. a -> [a] -> [a]
: [Series] -> (Text -> [Series]) -> Maybe Text -> [Series]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Series]
forall a. Monoid a => a
GHC.Base.mempty (Series -> [Series]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Series -> [Series]) -> (Text -> Series) -> Text -> [Series]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"paypal_billing_agreement_id" Key -> Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Series
Data.Aeson.Types.ToJSON..=)) (BillingInfoCreate -> Maybe Text
billingInfoCreatePaypal_billing_agreement_id BillingInfoCreate
obj) [Series] -> [[Series]] -> [[Series]]
forall a. a -> [a] -> [a]
: [Series] -> (Bool -> [Series]) -> Maybe Bool -> [Series]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Series]
forall a. Monoid a => a
GHC.Base.mempty (Series -> [Series]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Series -> [Series]) -> (Bool -> Series) -> Bool -> [Series]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"primary_payment_method" Key -> Bool -> Series
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Series
Data.Aeson.Types.ToJSON..=)) (BillingInfoCreate -> Maybe Bool
billingInfoCreatePrimary_payment_method BillingInfoCreate
obj) [Series] -> [[Series]] -> [[Series]]
forall a. a -> [a] -> [a]
: [Series] -> (Text -> [Series]) -> Maybe Text -> [Series]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Series]
forall a. Monoid a => a
GHC.Base.mempty (Series -> [Series]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Series -> [Series]) -> (Text -> Series) -> Text -> [Series]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"roku_billing_agreement_id" Key -> Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Series
Data.Aeson.Types.ToJSON..=)) (BillingInfoCreate -> Maybe Text
billingInfoCreateRoku_billing_agreement_id BillingInfoCreate
obj) [Series] -> [[Series]] -> [[Series]]
forall a. a -> [a] -> [a]
: [Series] -> (Text -> [Series]) -> Maybe Text -> [Series]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Series]
forall a. Monoid a => a
GHC.Base.mempty (Series -> [Series]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Series -> [Series]) -> (Text -> Series) -> Text -> [Series]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"routing_number" Key -> Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Series
Data.Aeson.Types.ToJSON..=)) (BillingInfoCreate -> Maybe Text
billingInfoCreateRouting_number BillingInfoCreate
obj) [Series] -> [[Series]] -> [[Series]]
forall a. a -> [a] -> [a]
: [Series] -> (Text -> [Series]) -> Maybe Text -> [Series]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Series]
forall a. Monoid a => a
GHC.Base.mempty (Series -> [Series]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Series -> [Series]) -> (Text -> Series) -> Text -> [Series]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"sort_code" Key -> Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Series
Data.Aeson.Types.ToJSON..=)) (BillingInfoCreate -> Maybe Text
billingInfoCreateSort_code BillingInfoCreate
obj) [Series] -> [[Series]] -> [[Series]]
forall a. a -> [a] -> [a]
: [Series] -> (Text -> [Series]) -> Maybe Text -> [Series]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Series]
forall a. Monoid a => a
GHC.Base.mempty (Series -> [Series]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Series -> [Series]) -> (Text -> Series) -> Text -> [Series]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"tax_identifier" Key -> Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Series
Data.Aeson.Types.ToJSON..=)) (BillingInfoCreate -> Maybe Text
billingInfoCreateTax_identifier BillingInfoCreate
obj) [Series] -> [[Series]] -> [[Series]]
forall a. a -> [a] -> [a]
: [Series]
-> (BillingInfoCreateTax_identifier_type -> [Series])
-> Maybe BillingInfoCreateTax_identifier_type
-> [Series]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Series]
forall a. Monoid a => a
GHC.Base.mempty (Series -> [Series]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Series -> [Series])
-> (BillingInfoCreateTax_identifier_type -> Series)
-> BillingInfoCreateTax_identifier_type
-> [Series]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"tax_identifier_type" Key -> BillingInfoCreateTax_identifier_type -> Series
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Series
Data.Aeson.Types.ToJSON..=)) (BillingInfoCreate -> Maybe BillingInfoCreateTax_identifier_type
billingInfoCreateTax_identifier_type BillingInfoCreate
obj) [Series] -> [[Series]] -> [[Series]]
forall a. a -> [a] -> [a]
: [Series] -> (Text -> [Series]) -> Maybe Text -> [Series]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Series]
forall a. Monoid a => a
GHC.Base.mempty (Series -> [Series]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Series -> [Series]) -> (Text -> Series) -> Text -> [Series]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"three_d_secure_action_result_token_id" Key -> Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Series
Data.Aeson.Types.ToJSON..=)) (BillingInfoCreate -> Maybe Text
billingInfoCreateThree_d_secure_action_result_token_id BillingInfoCreate
obj) [Series] -> [[Series]] -> [[Series]]
forall a. a -> [a] -> [a]
: [Series] -> (Text -> [Series]) -> Maybe Text -> [Series]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Series]
forall a. Monoid a => a
GHC.Base.mempty (Series -> [Series]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Series -> [Series]) -> (Text -> Series) -> Text -> [Series]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"token_id" Key -> Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Series
Data.Aeson.Types.ToJSON..=)) (BillingInfoCreate -> Maybe Text
billingInfoCreateToken_id BillingInfoCreate
obj) [Series] -> [[Series]] -> [[Series]]
forall a. a -> [a] -> [a]
: [Series]
-> (BillingInfoCreateTransaction_type -> [Series])
-> Maybe BillingInfoCreateTransaction_type
-> [Series]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Series]
forall a. Monoid a => a
GHC.Base.mempty (Series -> [Series]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Series -> [Series])
-> (BillingInfoCreateTransaction_type -> Series)
-> BillingInfoCreateTransaction_type
-> [Series]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"transaction_type" Key -> BillingInfoCreateTransaction_type -> Series
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Series
Data.Aeson.Types.ToJSON..=)) (BillingInfoCreate -> Maybe BillingInfoCreateTransaction_type
billingInfoCreateTransaction_type BillingInfoCreate
obj) [Series] -> [[Series]] -> [[Series]]
forall a. a -> [a] -> [a]
: [Series]
-> (BillingInfoCreateType -> [Series])
-> Maybe BillingInfoCreateType
-> [Series]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Series]
forall a. Monoid a => a
GHC.Base.mempty (Series -> [Series]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Series -> [Series])
-> (BillingInfoCreateType -> Series)
-> BillingInfoCreateType
-> [Series]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"type" Key -> BillingInfoCreateType -> Series
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Series
Data.Aeson.Types.ToJSON..=)) (BillingInfoCreate -> Maybe BillingInfoCreateType
billingInfoCreateType BillingInfoCreate
obj) [Series] -> [[Series]] -> [[Series]]
forall a. a -> [a] -> [a]
: [Series] -> (Text -> [Series]) -> Maybe Text -> [Series]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Series]
forall a. Monoid a => a
GHC.Base.mempty (Series -> [Series]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Series -> [Series]) -> (Text -> Series) -> Text -> [Series]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"vat_number" Key -> Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Series
Data.Aeson.Types.ToJSON..=)) (BillingInfoCreate -> Maybe Text
billingInfoCreateVat_number BillingInfoCreate
obj) [Series] -> [[Series]] -> [[Series]]
forall a. a -> [a] -> [a]
: [Series] -> (Text -> [Series]) -> Maybe Text -> [Series]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Series]
forall a. Monoid a => a
GHC.Base.mempty (Series -> [Series]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Series -> [Series]) -> (Text -> Series) -> Text -> [Series]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"year" Key -> Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Series
Data.Aeson.Types.ToJSON..=)) (BillingInfoCreate -> Maybe Text
billingInfoCreateYear BillingInfoCreate
obj) [Series] -> [[Series]] -> [[Series]]
forall a. a -> [a] -> [a]
: [[Series]]
forall a. Monoid a => a
GHC.Base.mempty)))
instance Data.Aeson.Types.FromJSON.FromJSON BillingInfoCreate where
    parseJSON :: Value -> Parser BillingInfoCreate
parseJSON = String
-> (Object -> Parser BillingInfoCreate)
-> Value
-> Parser BillingInfoCreate
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.Aeson.Types.FromJSON.withObject String
"BillingInfoCreate" (\Object
obj -> (((((((((((((((((((((((((((((((((((((Maybe Text
 -> Maybe BillingInfoCreateAccount_type
 -> Maybe Address
 -> Maybe Text
 -> Maybe Bool
 -> Maybe BillingInfoCreateCard_network_preference
 -> Maybe BillingInfoCreateCard_type
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe BillingInfoCreateExternal_hpp_type
 -> Maybe Text
 -> Maybe Text
 -> Maybe BillingInfoCreateGateway_attributes
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe BillingInfoCreateOnline_banking_payment_type
 -> Maybe [PaymentGatewayReferences]
 -> Maybe Text
 -> Maybe Bool
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe BillingInfoCreateTax_identifier_type
 -> Maybe Text
 -> Maybe Text
 -> Maybe BillingInfoCreateTransaction_type
 -> Maybe BillingInfoCreateType
 -> Maybe Text
 -> Maybe Text
 -> BillingInfoCreate)
-> Parser
     (Maybe Text
      -> Maybe BillingInfoCreateAccount_type
      -> Maybe Address
      -> Maybe Text
      -> Maybe Bool
      -> Maybe BillingInfoCreateCard_network_preference
      -> Maybe BillingInfoCreateCard_type
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe BillingInfoCreateExternal_hpp_type
      -> Maybe Text
      -> Maybe Text
      -> Maybe BillingInfoCreateGateway_attributes
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe BillingInfoCreateOnline_banking_payment_type
      -> Maybe [PaymentGatewayReferences]
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe BillingInfoCreateTax_identifier_type
      -> Maybe Text
      -> Maybe Text
      -> Maybe BillingInfoCreateTransaction_type
      -> Maybe BillingInfoCreateType
      -> Maybe Text
      -> Maybe Text
      -> BillingInfoCreate)
forall a. a -> Parser a
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure Maybe Text
-> Maybe BillingInfoCreateAccount_type
-> Maybe Address
-> Maybe Text
-> Maybe Bool
-> Maybe BillingInfoCreateCard_network_preference
-> Maybe BillingInfoCreateCard_type
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe BillingInfoCreateExternal_hpp_type
-> Maybe Text
-> Maybe Text
-> Maybe BillingInfoCreateGateway_attributes
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe BillingInfoCreateOnline_banking_payment_type
-> Maybe [PaymentGatewayReferences]
-> Maybe Text
-> Maybe Bool
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe BillingInfoCreateTax_identifier_type
-> Maybe Text
-> Maybe Text
-> Maybe BillingInfoCreateTransaction_type
-> Maybe BillingInfoCreateType
-> Maybe Text
-> Maybe Text
-> BillingInfoCreate
BillingInfoCreate Parser
  (Maybe Text
   -> Maybe BillingInfoCreateAccount_type
   -> Maybe Address
   -> Maybe Text
   -> Maybe Bool
   -> Maybe BillingInfoCreateCard_network_preference
   -> Maybe BillingInfoCreateCard_type
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe BillingInfoCreateExternal_hpp_type
   -> Maybe Text
   -> Maybe Text
   -> Maybe BillingInfoCreateGateway_attributes
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe BillingInfoCreateOnline_banking_payment_type
   -> Maybe [PaymentGatewayReferences]
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe BillingInfoCreateTax_identifier_type
   -> Maybe Text
   -> Maybe Text
   -> Maybe BillingInfoCreateTransaction_type
   -> Maybe BillingInfoCreateType
   -> Maybe Text
   -> Maybe Text
   -> BillingInfoCreate)
-> Parser (Maybe Text)
-> Parser
     (Maybe BillingInfoCreateAccount_type
      -> Maybe Address
      -> Maybe Text
      -> Maybe Bool
      -> Maybe BillingInfoCreateCard_network_preference
      -> Maybe BillingInfoCreateCard_type
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe BillingInfoCreateExternal_hpp_type
      -> Maybe Text
      -> Maybe Text
      -> Maybe BillingInfoCreateGateway_attributes
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe BillingInfoCreateOnline_banking_payment_type
      -> Maybe [PaymentGatewayReferences]
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe BillingInfoCreateTax_identifier_type
      -> Maybe Text
      -> Maybe Text
      -> Maybe BillingInfoCreateTransaction_type
      -> Maybe BillingInfoCreateType
      -> Maybe Text
      -> Maybe Text
      -> BillingInfoCreate)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Key -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Key
"account_number")) Parser
  (Maybe BillingInfoCreateAccount_type
   -> Maybe Address
   -> Maybe Text
   -> Maybe Bool
   -> Maybe BillingInfoCreateCard_network_preference
   -> Maybe BillingInfoCreateCard_type
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe BillingInfoCreateExternal_hpp_type
   -> Maybe Text
   -> Maybe Text
   -> Maybe BillingInfoCreateGateway_attributes
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe BillingInfoCreateOnline_banking_payment_type
   -> Maybe [PaymentGatewayReferences]
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe BillingInfoCreateTax_identifier_type
   -> Maybe Text
   -> Maybe Text
   -> Maybe BillingInfoCreateTransaction_type
   -> Maybe BillingInfoCreateType
   -> Maybe Text
   -> Maybe Text
   -> BillingInfoCreate)
-> Parser (Maybe BillingInfoCreateAccount_type)
-> Parser
     (Maybe Address
      -> Maybe Text
      -> Maybe Bool
      -> Maybe BillingInfoCreateCard_network_preference
      -> Maybe BillingInfoCreateCard_type
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe BillingInfoCreateExternal_hpp_type
      -> Maybe Text
      -> Maybe Text
      -> Maybe BillingInfoCreateGateway_attributes
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe BillingInfoCreateOnline_banking_payment_type
      -> Maybe [PaymentGatewayReferences]
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe BillingInfoCreateTax_identifier_type
      -> Maybe Text
      -> Maybe Text
      -> Maybe BillingInfoCreateTransaction_type
      -> Maybe BillingInfoCreateType
      -> Maybe Text
      -> Maybe Text
      -> BillingInfoCreate)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Key -> Parser (Maybe BillingInfoCreateAccount_type)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Key
"account_type")) Parser
  (Maybe Address
   -> Maybe Text
   -> Maybe Bool
   -> Maybe BillingInfoCreateCard_network_preference
   -> Maybe BillingInfoCreateCard_type
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe BillingInfoCreateExternal_hpp_type
   -> Maybe Text
   -> Maybe Text
   -> Maybe BillingInfoCreateGateway_attributes
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe BillingInfoCreateOnline_banking_payment_type
   -> Maybe [PaymentGatewayReferences]
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe BillingInfoCreateTax_identifier_type
   -> Maybe Text
   -> Maybe Text
   -> Maybe BillingInfoCreateTransaction_type
   -> Maybe BillingInfoCreateType
   -> Maybe Text
   -> Maybe Text
   -> BillingInfoCreate)
-> Parser (Maybe Address)
-> Parser
     (Maybe Text
      -> Maybe Bool
      -> Maybe BillingInfoCreateCard_network_preference
      -> Maybe BillingInfoCreateCard_type
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe BillingInfoCreateExternal_hpp_type
      -> Maybe Text
      -> Maybe Text
      -> Maybe BillingInfoCreateGateway_attributes
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe BillingInfoCreateOnline_banking_payment_type
      -> Maybe [PaymentGatewayReferences]
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe BillingInfoCreateTax_identifier_type
      -> Maybe Text
      -> Maybe Text
      -> Maybe BillingInfoCreateTransaction_type
      -> Maybe BillingInfoCreateType
      -> Maybe Text
      -> Maybe Text
      -> BillingInfoCreate)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Key -> Parser (Maybe Address)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Key
"address")) Parser
  (Maybe Text
   -> Maybe Bool
   -> Maybe BillingInfoCreateCard_network_preference
   -> Maybe BillingInfoCreateCard_type
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe BillingInfoCreateExternal_hpp_type
   -> Maybe Text
   -> Maybe Text
   -> Maybe BillingInfoCreateGateway_attributes
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe BillingInfoCreateOnline_banking_payment_type
   -> Maybe [PaymentGatewayReferences]
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe BillingInfoCreateTax_identifier_type
   -> Maybe Text
   -> Maybe Text
   -> Maybe BillingInfoCreateTransaction_type
   -> Maybe BillingInfoCreateType
   -> Maybe Text
   -> Maybe Text
   -> BillingInfoCreate)
-> Parser (Maybe Text)
-> Parser
     (Maybe Bool
      -> Maybe BillingInfoCreateCard_network_preference
      -> Maybe BillingInfoCreateCard_type
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe BillingInfoCreateExternal_hpp_type
      -> Maybe Text
      -> Maybe Text
      -> Maybe BillingInfoCreateGateway_attributes
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe BillingInfoCreateOnline_banking_payment_type
      -> Maybe [PaymentGatewayReferences]
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe BillingInfoCreateTax_identifier_type
      -> Maybe Text
      -> Maybe Text
      -> Maybe BillingInfoCreateTransaction_type
      -> Maybe BillingInfoCreateType
      -> Maybe Text
      -> Maybe Text
      -> BillingInfoCreate)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Key -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Key
"amazon_billing_agreement_id")) Parser
  (Maybe Bool
   -> Maybe BillingInfoCreateCard_network_preference
   -> Maybe BillingInfoCreateCard_type
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe BillingInfoCreateExternal_hpp_type
   -> Maybe Text
   -> Maybe Text
   -> Maybe BillingInfoCreateGateway_attributes
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe BillingInfoCreateOnline_banking_payment_type
   -> Maybe [PaymentGatewayReferences]
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe BillingInfoCreateTax_identifier_type
   -> Maybe Text
   -> Maybe Text
   -> Maybe BillingInfoCreateTransaction_type
   -> Maybe BillingInfoCreateType
   -> Maybe Text
   -> Maybe Text
   -> BillingInfoCreate)
-> Parser (Maybe Bool)
-> Parser
     (Maybe BillingInfoCreateCard_network_preference
      -> Maybe BillingInfoCreateCard_type
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe BillingInfoCreateExternal_hpp_type
      -> Maybe Text
      -> Maybe Text
      -> Maybe BillingInfoCreateGateway_attributes
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe BillingInfoCreateOnline_banking_payment_type
      -> Maybe [PaymentGatewayReferences]
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe BillingInfoCreateTax_identifier_type
      -> Maybe Text
      -> Maybe Text
      -> Maybe BillingInfoCreateTransaction_type
      -> Maybe BillingInfoCreateType
      -> Maybe Text
      -> Maybe Text
      -> BillingInfoCreate)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Key -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Key
"backup_payment_method")) Parser
  (Maybe BillingInfoCreateCard_network_preference
   -> Maybe BillingInfoCreateCard_type
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe BillingInfoCreateExternal_hpp_type
   -> Maybe Text
   -> Maybe Text
   -> Maybe BillingInfoCreateGateway_attributes
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe BillingInfoCreateOnline_banking_payment_type
   -> Maybe [PaymentGatewayReferences]
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe BillingInfoCreateTax_identifier_type
   -> Maybe Text
   -> Maybe Text
   -> Maybe BillingInfoCreateTransaction_type
   -> Maybe BillingInfoCreateType
   -> Maybe Text
   -> Maybe Text
   -> BillingInfoCreate)
-> Parser (Maybe BillingInfoCreateCard_network_preference)
-> Parser
     (Maybe BillingInfoCreateCard_type
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe BillingInfoCreateExternal_hpp_type
      -> Maybe Text
      -> Maybe Text
      -> Maybe BillingInfoCreateGateway_attributes
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe BillingInfoCreateOnline_banking_payment_type
      -> Maybe [PaymentGatewayReferences]
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe BillingInfoCreateTax_identifier_type
      -> Maybe Text
      -> Maybe Text
      -> Maybe BillingInfoCreateTransaction_type
      -> Maybe BillingInfoCreateType
      -> Maybe Text
      -> Maybe Text
      -> BillingInfoCreate)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Key -> Parser (Maybe BillingInfoCreateCard_network_preference)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Key
"card_network_preference")) Parser
  (Maybe BillingInfoCreateCard_type
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe BillingInfoCreateExternal_hpp_type
   -> Maybe Text
   -> Maybe Text
   -> Maybe BillingInfoCreateGateway_attributes
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe BillingInfoCreateOnline_banking_payment_type
   -> Maybe [PaymentGatewayReferences]
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe BillingInfoCreateTax_identifier_type
   -> Maybe Text
   -> Maybe Text
   -> Maybe BillingInfoCreateTransaction_type
   -> Maybe BillingInfoCreateType
   -> Maybe Text
   -> Maybe Text
   -> BillingInfoCreate)
-> Parser (Maybe BillingInfoCreateCard_type)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe BillingInfoCreateExternal_hpp_type
      -> Maybe Text
      -> Maybe Text
      -> Maybe BillingInfoCreateGateway_attributes
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe BillingInfoCreateOnline_banking_payment_type
      -> Maybe [PaymentGatewayReferences]
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe BillingInfoCreateTax_identifier_type
      -> Maybe Text
      -> Maybe Text
      -> Maybe BillingInfoCreateTransaction_type
      -> Maybe BillingInfoCreateType
      -> Maybe Text
      -> Maybe Text
      -> BillingInfoCreate)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Key -> Parser (Maybe BillingInfoCreateCard_type)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Key
"card_type")) Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe BillingInfoCreateExternal_hpp_type
   -> Maybe Text
   -> Maybe Text
   -> Maybe BillingInfoCreateGateway_attributes
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe BillingInfoCreateOnline_banking_payment_type
   -> Maybe [PaymentGatewayReferences]
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe BillingInfoCreateTax_identifier_type
   -> Maybe Text
   -> Maybe Text
   -> Maybe BillingInfoCreateTransaction_type
   -> Maybe BillingInfoCreateType
   -> Maybe Text
   -> Maybe Text
   -> BillingInfoCreate)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe BillingInfoCreateExternal_hpp_type
      -> Maybe Text
      -> Maybe Text
      -> Maybe BillingInfoCreateGateway_attributes
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe BillingInfoCreateOnline_banking_payment_type
      -> Maybe [PaymentGatewayReferences]
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe BillingInfoCreateTax_identifier_type
      -> Maybe Text
      -> Maybe Text
      -> Maybe BillingInfoCreateTransaction_type
      -> Maybe BillingInfoCreateType
      -> Maybe Text
      -> Maybe Text
      -> BillingInfoCreate)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Key -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Key
"company")) Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe BillingInfoCreateExternal_hpp_type
   -> Maybe Text
   -> Maybe Text
   -> Maybe BillingInfoCreateGateway_attributes
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe BillingInfoCreateOnline_banking_payment_type
   -> Maybe [PaymentGatewayReferences]
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe BillingInfoCreateTax_identifier_type
   -> Maybe Text
   -> Maybe Text
   -> Maybe BillingInfoCreateTransaction_type
   -> Maybe BillingInfoCreateType
   -> Maybe Text
   -> Maybe Text
   -> BillingInfoCreate)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe BillingInfoCreateExternal_hpp_type
      -> Maybe Text
      -> Maybe Text
      -> Maybe BillingInfoCreateGateway_attributes
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe BillingInfoCreateOnline_banking_payment_type
      -> Maybe [PaymentGatewayReferences]
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe BillingInfoCreateTax_identifier_type
      -> Maybe Text
      -> Maybe Text
      -> Maybe BillingInfoCreateTransaction_type
      -> Maybe BillingInfoCreateType
      -> Maybe Text
      -> Maybe Text
      -> BillingInfoCreate)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Key -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Key
"currency")) Parser
  (Maybe Text
   -> Maybe BillingInfoCreateExternal_hpp_type
   -> Maybe Text
   -> Maybe Text
   -> Maybe BillingInfoCreateGateway_attributes
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe BillingInfoCreateOnline_banking_payment_type
   -> Maybe [PaymentGatewayReferences]
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe BillingInfoCreateTax_identifier_type
   -> Maybe Text
   -> Maybe Text
   -> Maybe BillingInfoCreateTransaction_type
   -> Maybe BillingInfoCreateType
   -> Maybe Text
   -> Maybe Text
   -> BillingInfoCreate)
-> Parser (Maybe Text)
-> Parser
     (Maybe BillingInfoCreateExternal_hpp_type
      -> Maybe Text
      -> Maybe Text
      -> Maybe BillingInfoCreateGateway_attributes
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe BillingInfoCreateOnline_banking_payment_type
      -> Maybe [PaymentGatewayReferences]
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe BillingInfoCreateTax_identifier_type
      -> Maybe Text
      -> Maybe Text
      -> Maybe BillingInfoCreateTransaction_type
      -> Maybe BillingInfoCreateType
      -> Maybe Text
      -> Maybe Text
      -> BillingInfoCreate)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Key -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Key
"cvv")) Parser
  (Maybe BillingInfoCreateExternal_hpp_type
   -> Maybe Text
   -> Maybe Text
   -> Maybe BillingInfoCreateGateway_attributes
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe BillingInfoCreateOnline_banking_payment_type
   -> Maybe [PaymentGatewayReferences]
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe BillingInfoCreateTax_identifier_type
   -> Maybe Text
   -> Maybe Text
   -> Maybe BillingInfoCreateTransaction_type
   -> Maybe BillingInfoCreateType
   -> Maybe Text
   -> Maybe Text
   -> BillingInfoCreate)
-> Parser (Maybe BillingInfoCreateExternal_hpp_type)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe BillingInfoCreateGateway_attributes
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe BillingInfoCreateOnline_banking_payment_type
      -> Maybe [PaymentGatewayReferences]
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe BillingInfoCreateTax_identifier_type
      -> Maybe Text
      -> Maybe Text
      -> Maybe BillingInfoCreateTransaction_type
      -> Maybe BillingInfoCreateType
      -> Maybe Text
      -> Maybe Text
      -> BillingInfoCreate)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Key -> Parser (Maybe BillingInfoCreateExternal_hpp_type)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Key
"external_hpp_type")) Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe BillingInfoCreateGateway_attributes
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe BillingInfoCreateOnline_banking_payment_type
   -> Maybe [PaymentGatewayReferences]
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe BillingInfoCreateTax_identifier_type
   -> Maybe Text
   -> Maybe Text
   -> Maybe BillingInfoCreateTransaction_type
   -> Maybe BillingInfoCreateType
   -> Maybe Text
   -> Maybe Text
   -> BillingInfoCreate)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe BillingInfoCreateGateway_attributes
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe BillingInfoCreateOnline_banking_payment_type
      -> Maybe [PaymentGatewayReferences]
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe BillingInfoCreateTax_identifier_type
      -> Maybe Text
      -> Maybe Text
      -> Maybe BillingInfoCreateTransaction_type
      -> Maybe BillingInfoCreateType
      -> Maybe Text
      -> Maybe Text
      -> BillingInfoCreate)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Key -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Key
"first_name")) Parser
  (Maybe Text
   -> Maybe BillingInfoCreateGateway_attributes
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe BillingInfoCreateOnline_banking_payment_type
   -> Maybe [PaymentGatewayReferences]
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe BillingInfoCreateTax_identifier_type
   -> Maybe Text
   -> Maybe Text
   -> Maybe BillingInfoCreateTransaction_type
   -> Maybe BillingInfoCreateType
   -> Maybe Text
   -> Maybe Text
   -> BillingInfoCreate)
-> Parser (Maybe Text)
-> Parser
     (Maybe BillingInfoCreateGateway_attributes
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe BillingInfoCreateOnline_banking_payment_type
      -> Maybe [PaymentGatewayReferences]
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe BillingInfoCreateTax_identifier_type
      -> Maybe Text
      -> Maybe Text
      -> Maybe BillingInfoCreateTransaction_type
      -> Maybe BillingInfoCreateType
      -> Maybe Text
      -> Maybe Text
      -> BillingInfoCreate)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Key -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Key
"fraud_session_id")) Parser
  (Maybe BillingInfoCreateGateway_attributes
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe BillingInfoCreateOnline_banking_payment_type
   -> Maybe [PaymentGatewayReferences]
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe BillingInfoCreateTax_identifier_type
   -> Maybe Text
   -> Maybe Text
   -> Maybe BillingInfoCreateTransaction_type
   -> Maybe BillingInfoCreateType
   -> Maybe Text
   -> Maybe Text
   -> BillingInfoCreate)
-> Parser (Maybe BillingInfoCreateGateway_attributes)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe BillingInfoCreateOnline_banking_payment_type
      -> Maybe [PaymentGatewayReferences]
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe BillingInfoCreateTax_identifier_type
      -> Maybe Text
      -> Maybe Text
      -> Maybe BillingInfoCreateTransaction_type
      -> Maybe BillingInfoCreateType
      -> Maybe Text
      -> Maybe Text
      -> BillingInfoCreate)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Key -> Parser (Maybe BillingInfoCreateGateway_attributes)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Key
"gateway_attributes")) Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe BillingInfoCreateOnline_banking_payment_type
   -> Maybe [PaymentGatewayReferences]
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe BillingInfoCreateTax_identifier_type
   -> Maybe Text
   -> Maybe Text
   -> Maybe BillingInfoCreateTransaction_type
   -> Maybe BillingInfoCreateType
   -> Maybe Text
   -> Maybe Text
   -> BillingInfoCreate)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe BillingInfoCreateOnline_banking_payment_type
      -> Maybe [PaymentGatewayReferences]
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe BillingInfoCreateTax_identifier_type
      -> Maybe Text
      -> Maybe Text
      -> Maybe BillingInfoCreateTransaction_type
      -> Maybe BillingInfoCreateType
      -> Maybe Text
      -> Maybe Text
      -> BillingInfoCreate)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Key -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Key
"gateway_code")) Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe BillingInfoCreateOnline_banking_payment_type
   -> Maybe [PaymentGatewayReferences]
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe BillingInfoCreateTax_identifier_type
   -> Maybe Text
   -> Maybe Text
   -> Maybe BillingInfoCreateTransaction_type
   -> Maybe BillingInfoCreateType
   -> Maybe Text
   -> Maybe Text
   -> BillingInfoCreate)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe BillingInfoCreateOnline_banking_payment_type
      -> Maybe [PaymentGatewayReferences]
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe BillingInfoCreateTax_identifier_type
      -> Maybe Text
      -> Maybe Text
      -> Maybe BillingInfoCreateTransaction_type
      -> Maybe BillingInfoCreateType
      -> Maybe Text
      -> Maybe Text
      -> BillingInfoCreate)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Key -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Key
"gateway_token")) Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe BillingInfoCreateOnline_banking_payment_type
   -> Maybe [PaymentGatewayReferences]
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe BillingInfoCreateTax_identifier_type
   -> Maybe Text
   -> Maybe Text
   -> Maybe BillingInfoCreateTransaction_type
   -> Maybe BillingInfoCreateType
   -> Maybe Text
   -> Maybe Text
   -> BillingInfoCreate)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe BillingInfoCreateOnline_banking_payment_type
      -> Maybe [PaymentGatewayReferences]
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe BillingInfoCreateTax_identifier_type
      -> Maybe Text
      -> Maybe Text
      -> Maybe BillingInfoCreateTransaction_type
      -> Maybe BillingInfoCreateType
      -> Maybe Text
      -> Maybe Text
      -> BillingInfoCreate)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Key -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Key
"iban")) Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe BillingInfoCreateOnline_banking_payment_type
   -> Maybe [PaymentGatewayReferences]
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe BillingInfoCreateTax_identifier_type
   -> Maybe Text
   -> Maybe Text
   -> Maybe BillingInfoCreateTransaction_type
   -> Maybe BillingInfoCreateType
   -> Maybe Text
   -> Maybe Text
   -> BillingInfoCreate)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe BillingInfoCreateOnline_banking_payment_type
      -> Maybe [PaymentGatewayReferences]
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe BillingInfoCreateTax_identifier_type
      -> Maybe Text
      -> Maybe Text
      -> Maybe BillingInfoCreateTransaction_type
      -> Maybe BillingInfoCreateType
      -> Maybe Text
      -> Maybe Text
      -> BillingInfoCreate)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Key -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Key
"ip_address")) Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe BillingInfoCreateOnline_banking_payment_type
   -> Maybe [PaymentGatewayReferences]
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe BillingInfoCreateTax_identifier_type
   -> Maybe Text
   -> Maybe Text
   -> Maybe BillingInfoCreateTransaction_type
   -> Maybe BillingInfoCreateType
   -> Maybe Text
   -> Maybe Text
   -> BillingInfoCreate)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe BillingInfoCreateOnline_banking_payment_type
      -> Maybe [PaymentGatewayReferences]
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe BillingInfoCreateTax_identifier_type
      -> Maybe Text
      -> Maybe Text
      -> Maybe BillingInfoCreateTransaction_type
      -> Maybe BillingInfoCreateType
      -> Maybe Text
      -> Maybe Text
      -> BillingInfoCreate)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Key -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Key
"last_name")) Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe BillingInfoCreateOnline_banking_payment_type
   -> Maybe [PaymentGatewayReferences]
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe BillingInfoCreateTax_identifier_type
   -> Maybe Text
   -> Maybe Text
   -> Maybe BillingInfoCreateTransaction_type
   -> Maybe BillingInfoCreateType
   -> Maybe Text
   -> Maybe Text
   -> BillingInfoCreate)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe BillingInfoCreateOnline_banking_payment_type
      -> Maybe [PaymentGatewayReferences]
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe BillingInfoCreateTax_identifier_type
      -> Maybe Text
      -> Maybe Text
      -> Maybe BillingInfoCreateTransaction_type
      -> Maybe BillingInfoCreateType
      -> Maybe Text
      -> Maybe Text
      -> BillingInfoCreate)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Key -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Key
"month")) Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe BillingInfoCreateOnline_banking_payment_type
   -> Maybe [PaymentGatewayReferences]
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe BillingInfoCreateTax_identifier_type
   -> Maybe Text
   -> Maybe Text
   -> Maybe BillingInfoCreateTransaction_type
   -> Maybe BillingInfoCreateType
   -> Maybe Text
   -> Maybe Text
   -> BillingInfoCreate)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe BillingInfoCreateOnline_banking_payment_type
      -> Maybe [PaymentGatewayReferences]
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe BillingInfoCreateTax_identifier_type
      -> Maybe Text
      -> Maybe Text
      -> Maybe BillingInfoCreateTransaction_type
      -> Maybe BillingInfoCreateType
      -> Maybe Text
      -> Maybe Text
      -> BillingInfoCreate)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Key -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Key
"name_on_account")) Parser
  (Maybe Text
   -> Maybe BillingInfoCreateOnline_banking_payment_type
   -> Maybe [PaymentGatewayReferences]
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe BillingInfoCreateTax_identifier_type
   -> Maybe Text
   -> Maybe Text
   -> Maybe BillingInfoCreateTransaction_type
   -> Maybe BillingInfoCreateType
   -> Maybe Text
   -> Maybe Text
   -> BillingInfoCreate)
-> Parser (Maybe Text)
-> Parser
     (Maybe BillingInfoCreateOnline_banking_payment_type
      -> Maybe [PaymentGatewayReferences]
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe BillingInfoCreateTax_identifier_type
      -> Maybe Text
      -> Maybe Text
      -> Maybe BillingInfoCreateTransaction_type
      -> Maybe BillingInfoCreateType
      -> Maybe Text
      -> Maybe Text
      -> BillingInfoCreate)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Key -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Key
"number")) Parser
  (Maybe BillingInfoCreateOnline_banking_payment_type
   -> Maybe [PaymentGatewayReferences]
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe BillingInfoCreateTax_identifier_type
   -> Maybe Text
   -> Maybe Text
   -> Maybe BillingInfoCreateTransaction_type
   -> Maybe BillingInfoCreateType
   -> Maybe Text
   -> Maybe Text
   -> BillingInfoCreate)
-> Parser (Maybe BillingInfoCreateOnline_banking_payment_type)
-> Parser
     (Maybe [PaymentGatewayReferences]
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe BillingInfoCreateTax_identifier_type
      -> Maybe Text
      -> Maybe Text
      -> Maybe BillingInfoCreateTransaction_type
      -> Maybe BillingInfoCreateType
      -> Maybe Text
      -> Maybe Text
      -> BillingInfoCreate)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Key
-> Parser (Maybe BillingInfoCreateOnline_banking_payment_type)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Key
"online_banking_payment_type")) Parser
  (Maybe [PaymentGatewayReferences]
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe BillingInfoCreateTax_identifier_type
   -> Maybe Text
   -> Maybe Text
   -> Maybe BillingInfoCreateTransaction_type
   -> Maybe BillingInfoCreateType
   -> Maybe Text
   -> Maybe Text
   -> BillingInfoCreate)
-> Parser (Maybe [PaymentGatewayReferences])
-> Parser
     (Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe BillingInfoCreateTax_identifier_type
      -> Maybe Text
      -> Maybe Text
      -> Maybe BillingInfoCreateTransaction_type
      -> Maybe BillingInfoCreateType
      -> Maybe Text
      -> Maybe Text
      -> BillingInfoCreate)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Key -> Parser (Maybe [PaymentGatewayReferences])
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Key
"payment_gateway_references")) Parser
  (Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe BillingInfoCreateTax_identifier_type
   -> Maybe Text
   -> Maybe Text
   -> Maybe BillingInfoCreateTransaction_type
   -> Maybe BillingInfoCreateType
   -> Maybe Text
   -> Maybe Text
   -> BillingInfoCreate)
-> Parser (Maybe Text)
-> Parser
     (Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe BillingInfoCreateTax_identifier_type
      -> Maybe Text
      -> Maybe Text
      -> Maybe BillingInfoCreateTransaction_type
      -> Maybe BillingInfoCreateType
      -> Maybe Text
      -> Maybe Text
      -> BillingInfoCreate)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Key -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Key
"paypal_billing_agreement_id")) Parser
  (Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe BillingInfoCreateTax_identifier_type
   -> Maybe Text
   -> Maybe Text
   -> Maybe BillingInfoCreateTransaction_type
   -> Maybe BillingInfoCreateType
   -> Maybe Text
   -> Maybe Text
   -> BillingInfoCreate)
-> Parser (Maybe Bool)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe BillingInfoCreateTax_identifier_type
      -> Maybe Text
      -> Maybe Text
      -> Maybe BillingInfoCreateTransaction_type
      -> Maybe BillingInfoCreateType
      -> Maybe Text
      -> Maybe Text
      -> BillingInfoCreate)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Key -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Key
"primary_payment_method")) Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe BillingInfoCreateTax_identifier_type
   -> Maybe Text
   -> Maybe Text
   -> Maybe BillingInfoCreateTransaction_type
   -> Maybe BillingInfoCreateType
   -> Maybe Text
   -> Maybe Text
   -> BillingInfoCreate)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe BillingInfoCreateTax_identifier_type
      -> Maybe Text
      -> Maybe Text
      -> Maybe BillingInfoCreateTransaction_type
      -> Maybe BillingInfoCreateType
      -> Maybe Text
      -> Maybe Text
      -> BillingInfoCreate)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Key -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Key
"roku_billing_agreement_id")) Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe BillingInfoCreateTax_identifier_type
   -> Maybe Text
   -> Maybe Text
   -> Maybe BillingInfoCreateTransaction_type
   -> Maybe BillingInfoCreateType
   -> Maybe Text
   -> Maybe Text
   -> BillingInfoCreate)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe BillingInfoCreateTax_identifier_type
      -> Maybe Text
      -> Maybe Text
      -> Maybe BillingInfoCreateTransaction_type
      -> Maybe BillingInfoCreateType
      -> Maybe Text
      -> Maybe Text
      -> BillingInfoCreate)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Key -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Key
"routing_number")) Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe BillingInfoCreateTax_identifier_type
   -> Maybe Text
   -> Maybe Text
   -> Maybe BillingInfoCreateTransaction_type
   -> Maybe BillingInfoCreateType
   -> Maybe Text
   -> Maybe Text
   -> BillingInfoCreate)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe BillingInfoCreateTax_identifier_type
      -> Maybe Text
      -> Maybe Text
      -> Maybe BillingInfoCreateTransaction_type
      -> Maybe BillingInfoCreateType
      -> Maybe Text
      -> Maybe Text
      -> BillingInfoCreate)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Key -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Key
"sort_code")) Parser
  (Maybe Text
   -> Maybe BillingInfoCreateTax_identifier_type
   -> Maybe Text
   -> Maybe Text
   -> Maybe BillingInfoCreateTransaction_type
   -> Maybe BillingInfoCreateType
   -> Maybe Text
   -> Maybe Text
   -> BillingInfoCreate)
-> Parser (Maybe Text)
-> Parser
     (Maybe BillingInfoCreateTax_identifier_type
      -> Maybe Text
      -> Maybe Text
      -> Maybe BillingInfoCreateTransaction_type
      -> Maybe BillingInfoCreateType
      -> Maybe Text
      -> Maybe Text
      -> BillingInfoCreate)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Key -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Key
"tax_identifier")) Parser
  (Maybe BillingInfoCreateTax_identifier_type
   -> Maybe Text
   -> Maybe Text
   -> Maybe BillingInfoCreateTransaction_type
   -> Maybe BillingInfoCreateType
   -> Maybe Text
   -> Maybe Text
   -> BillingInfoCreate)
-> Parser (Maybe BillingInfoCreateTax_identifier_type)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe BillingInfoCreateTransaction_type
      -> Maybe BillingInfoCreateType
      -> Maybe Text
      -> Maybe Text
      -> BillingInfoCreate)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Key -> Parser (Maybe BillingInfoCreateTax_identifier_type)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Key
"tax_identifier_type")) Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe BillingInfoCreateTransaction_type
   -> Maybe BillingInfoCreateType
   -> Maybe Text
   -> Maybe Text
   -> BillingInfoCreate)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe BillingInfoCreateTransaction_type
      -> Maybe BillingInfoCreateType
      -> Maybe Text
      -> Maybe Text
      -> BillingInfoCreate)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Key -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Key
"three_d_secure_action_result_token_id")) Parser
  (Maybe Text
   -> Maybe BillingInfoCreateTransaction_type
   -> Maybe BillingInfoCreateType
   -> Maybe Text
   -> Maybe Text
   -> BillingInfoCreate)
-> Parser (Maybe Text)
-> Parser
     (Maybe BillingInfoCreateTransaction_type
      -> Maybe BillingInfoCreateType
      -> Maybe Text
      -> Maybe Text
      -> BillingInfoCreate)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Key -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Key
"token_id")) Parser
  (Maybe BillingInfoCreateTransaction_type
   -> Maybe BillingInfoCreateType
   -> Maybe Text
   -> Maybe Text
   -> BillingInfoCreate)
-> Parser (Maybe BillingInfoCreateTransaction_type)
-> Parser
     (Maybe BillingInfoCreateType
      -> Maybe Text -> Maybe Text -> BillingInfoCreate)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Key -> Parser (Maybe BillingInfoCreateTransaction_type)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Key
"transaction_type")) Parser
  (Maybe BillingInfoCreateType
   -> Maybe Text -> Maybe Text -> BillingInfoCreate)
-> Parser (Maybe BillingInfoCreateType)
-> Parser (Maybe Text -> Maybe Text -> BillingInfoCreate)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Key -> Parser (Maybe BillingInfoCreateType)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Key
"type")) Parser (Maybe Text -> Maybe Text -> BillingInfoCreate)
-> Parser (Maybe Text) -> Parser (Maybe Text -> BillingInfoCreate)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Key -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Key
"vat_number")) Parser (Maybe Text -> BillingInfoCreate)
-> Parser (Maybe Text) -> Parser BillingInfoCreate
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Key -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Key
"year"))

-- | Create a new 'BillingInfoCreate' with all required fields.
mkBillingInfoCreate :: BillingInfoCreate
mkBillingInfoCreate :: BillingInfoCreate
mkBillingInfoCreate =
    BillingInfoCreate
        { billingInfoCreateAccount_number :: Maybe Text
billingInfoCreateAccount_number = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing
        , billingInfoCreateAccount_type :: Maybe BillingInfoCreateAccount_type
billingInfoCreateAccount_type = Maybe BillingInfoCreateAccount_type
forall a. Maybe a
GHC.Maybe.Nothing
        , billingInfoCreateAddress :: Maybe Address
billingInfoCreateAddress = Maybe Address
forall a. Maybe a
GHC.Maybe.Nothing
        , billingInfoCreateAmazon_billing_agreement_id :: Maybe Text
billingInfoCreateAmazon_billing_agreement_id = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing
        , billingInfoCreateBackup_payment_method :: Maybe Bool
billingInfoCreateBackup_payment_method = Maybe Bool
forall a. Maybe a
GHC.Maybe.Nothing
        , billingInfoCreateCard_network_preference :: Maybe BillingInfoCreateCard_network_preference
billingInfoCreateCard_network_preference = Maybe BillingInfoCreateCard_network_preference
forall a. Maybe a
GHC.Maybe.Nothing
        , billingInfoCreateCard_type :: Maybe BillingInfoCreateCard_type
billingInfoCreateCard_type = Maybe BillingInfoCreateCard_type
forall a. Maybe a
GHC.Maybe.Nothing
        , billingInfoCreateCompany :: Maybe Text
billingInfoCreateCompany = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing
        , billingInfoCreateCurrency :: Maybe Text
billingInfoCreateCurrency = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing
        , billingInfoCreateCvv :: Maybe Text
billingInfoCreateCvv = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing
        , billingInfoCreateExternal_hpp_type :: Maybe BillingInfoCreateExternal_hpp_type
billingInfoCreateExternal_hpp_type = Maybe BillingInfoCreateExternal_hpp_type
forall a. Maybe a
GHC.Maybe.Nothing
        , billingInfoCreateFirst_name :: Maybe Text
billingInfoCreateFirst_name = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing
        , billingInfoCreateFraud_session_id :: Maybe Text
billingInfoCreateFraud_session_id = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing
        , billingInfoCreateGateway_attributes :: Maybe BillingInfoCreateGateway_attributes
billingInfoCreateGateway_attributes = Maybe BillingInfoCreateGateway_attributes
forall a. Maybe a
GHC.Maybe.Nothing
        , billingInfoCreateGateway_code :: Maybe Text
billingInfoCreateGateway_code = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing
        , billingInfoCreateGateway_token :: Maybe Text
billingInfoCreateGateway_token = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing
        , billingInfoCreateIban :: Maybe Text
billingInfoCreateIban = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing
        , billingInfoCreateIp_address :: Maybe Text
billingInfoCreateIp_address = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing
        , billingInfoCreateLast_name :: Maybe Text
billingInfoCreateLast_name = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing
        , billingInfoCreateMonth :: Maybe Text
billingInfoCreateMonth = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing
        , billingInfoCreateName_on_account :: Maybe Text
billingInfoCreateName_on_account = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing
        , billingInfoCreateNumber :: Maybe Text
billingInfoCreateNumber = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing
        , billingInfoCreateOnline_banking_payment_type :: Maybe BillingInfoCreateOnline_banking_payment_type
billingInfoCreateOnline_banking_payment_type = Maybe BillingInfoCreateOnline_banking_payment_type
forall a. Maybe a
GHC.Maybe.Nothing
        , billingInfoCreatePayment_gateway_references :: Maybe [PaymentGatewayReferences]
billingInfoCreatePayment_gateway_references = Maybe [PaymentGatewayReferences]
forall a. Maybe a
GHC.Maybe.Nothing
        , billingInfoCreatePaypal_billing_agreement_id :: Maybe Text
billingInfoCreatePaypal_billing_agreement_id = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing
        , billingInfoCreatePrimary_payment_method :: Maybe Bool
billingInfoCreatePrimary_payment_method = Maybe Bool
forall a. Maybe a
GHC.Maybe.Nothing
        , billingInfoCreateRoku_billing_agreement_id :: Maybe Text
billingInfoCreateRoku_billing_agreement_id = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing
        , billingInfoCreateRouting_number :: Maybe Text
billingInfoCreateRouting_number = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing
        , billingInfoCreateSort_code :: Maybe Text
billingInfoCreateSort_code = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing
        , billingInfoCreateTax_identifier :: Maybe Text
billingInfoCreateTax_identifier = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing
        , billingInfoCreateTax_identifier_type :: Maybe BillingInfoCreateTax_identifier_type
billingInfoCreateTax_identifier_type = Maybe BillingInfoCreateTax_identifier_type
forall a. Maybe a
GHC.Maybe.Nothing
        , billingInfoCreateThree_d_secure_action_result_token_id :: Maybe Text
billingInfoCreateThree_d_secure_action_result_token_id = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing
        , billingInfoCreateToken_id :: Maybe Text
billingInfoCreateToken_id = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing
        , billingInfoCreateTransaction_type :: Maybe BillingInfoCreateTransaction_type
billingInfoCreateTransaction_type = Maybe BillingInfoCreateTransaction_type
forall a. Maybe a
GHC.Maybe.Nothing
        , billingInfoCreateType :: Maybe BillingInfoCreateType
billingInfoCreateType = Maybe BillingInfoCreateType
forall a. Maybe a
GHC.Maybe.Nothing
        , billingInfoCreateVat_number :: Maybe Text
billingInfoCreateVat_number = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing
        , billingInfoCreateYear :: Maybe Text
billingInfoCreateYear = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing
        }

{- | Defines the enum schema located at @components.schemas.BillingInfoCreate.properties.account_type@ in the specification.

The bank account type. (ACH only)
-}
data BillingInfoCreateAccount_type
    = -- | This case is used if the value encountered during decoding does not match any of the provided cases in the specification.
      BillingInfoCreateAccount_typeOther Data.Aeson.Types.Internal.Value
    | -- | This constructor can be used to send values to the server which are not present in the specification yet.
      BillingInfoCreateAccount_typeTyped Data.Text.Internal.Text
    | -- | Represents the JSON value @"checking"@
      BillingInfoCreateAccount_typeEnumChecking
    | -- | Represents the JSON value @"savings"@
      BillingInfoCreateAccount_typeEnumSavings
    deriving (Int -> BillingInfoCreateAccount_type -> ShowS
[BillingInfoCreateAccount_type] -> ShowS
BillingInfoCreateAccount_type -> String
(Int -> BillingInfoCreateAccount_type -> ShowS)
-> (BillingInfoCreateAccount_type -> String)
-> ([BillingInfoCreateAccount_type] -> ShowS)
-> Show BillingInfoCreateAccount_type
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> BillingInfoCreateAccount_type -> ShowS
showsPrec :: Int -> BillingInfoCreateAccount_type -> ShowS
$cshow :: BillingInfoCreateAccount_type -> String
show :: BillingInfoCreateAccount_type -> String
$cshowList :: [BillingInfoCreateAccount_type] -> ShowS
showList :: [BillingInfoCreateAccount_type] -> ShowS
GHC.Show.Show, BillingInfoCreateAccount_type
-> BillingInfoCreateAccount_type -> Bool
(BillingInfoCreateAccount_type
 -> BillingInfoCreateAccount_type -> Bool)
-> (BillingInfoCreateAccount_type
    -> BillingInfoCreateAccount_type -> Bool)
-> Eq BillingInfoCreateAccount_type
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: BillingInfoCreateAccount_type
-> BillingInfoCreateAccount_type -> Bool
== :: BillingInfoCreateAccount_type
-> BillingInfoCreateAccount_type -> Bool
$c/= :: BillingInfoCreateAccount_type
-> BillingInfoCreateAccount_type -> Bool
/= :: BillingInfoCreateAccount_type
-> BillingInfoCreateAccount_type -> Bool
GHC.Classes.Eq)

instance Data.Aeson.Types.ToJSON.ToJSON BillingInfoCreateAccount_type where
    toJSON :: BillingInfoCreateAccount_type -> Value
toJSON (BillingInfoCreateAccount_typeOther Value
val) = Value
val
    toJSON (BillingInfoCreateAccount_typeTyped Text
val) = Text -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON Text
val
    toJSON (BillingInfoCreateAccount_type
BillingInfoCreateAccount_typeEnumChecking) = Value
"checking"
    toJSON (BillingInfoCreateAccount_type
BillingInfoCreateAccount_typeEnumSavings) = Value
"savings"
instance Data.Aeson.Types.FromJSON.FromJSON BillingInfoCreateAccount_type where
    parseJSON :: Value -> Parser BillingInfoCreateAccount_type
parseJSON Value
val =
        BillingInfoCreateAccount_type
-> Parser BillingInfoCreateAccount_type
forall a. a -> Parser a
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
"checking" -> BillingInfoCreateAccount_type
BillingInfoCreateAccount_typeEnumChecking
                | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"savings" -> BillingInfoCreateAccount_type
BillingInfoCreateAccount_typeEnumSavings
                | Bool
GHC.Base.otherwise -> Value -> BillingInfoCreateAccount_type
BillingInfoCreateAccount_typeOther Value
val
            )

{- | Defines the enum schema located at @components.schemas.BillingInfoCreate.properties.card_network_preference@ in the specification.

Represents the card network preference associated with the billing info for dual badged cards. Must be a supported card network.
-}
data BillingInfoCreateCard_network_preference
    = -- | This case is used if the value encountered during decoding does not match any of the provided cases in the specification.
      BillingInfoCreateCard_network_preferenceOther Data.Aeson.Types.Internal.Value
    | -- | This constructor can be used to send values to the server which are not present in the specification yet.
      BillingInfoCreateCard_network_preferenceTyped Data.Text.Internal.Text
    | -- | Represents the JSON value @"Bancontact"@
      BillingInfoCreateCard_network_preferenceEnumBancontact
    | -- | Represents the JSON value @"CartesBancaires"@
      BillingInfoCreateCard_network_preferenceEnumCartesBancaires
    | -- | Represents the JSON value @"Dankort"@
      BillingInfoCreateCard_network_preferenceEnumDankort
    | -- | Represents the JSON value @"MasterCard"@
      BillingInfoCreateCard_network_preferenceEnumMasterCard
    | -- | Represents the JSON value @"Visa"@
      BillingInfoCreateCard_network_preferenceEnumVisa
    deriving (Int -> BillingInfoCreateCard_network_preference -> ShowS
[BillingInfoCreateCard_network_preference] -> ShowS
BillingInfoCreateCard_network_preference -> String
(Int -> BillingInfoCreateCard_network_preference -> ShowS)
-> (BillingInfoCreateCard_network_preference -> String)
-> ([BillingInfoCreateCard_network_preference] -> ShowS)
-> Show BillingInfoCreateCard_network_preference
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> BillingInfoCreateCard_network_preference -> ShowS
showsPrec :: Int -> BillingInfoCreateCard_network_preference -> ShowS
$cshow :: BillingInfoCreateCard_network_preference -> String
show :: BillingInfoCreateCard_network_preference -> String
$cshowList :: [BillingInfoCreateCard_network_preference] -> ShowS
showList :: [BillingInfoCreateCard_network_preference] -> ShowS
GHC.Show.Show, BillingInfoCreateCard_network_preference
-> BillingInfoCreateCard_network_preference -> Bool
(BillingInfoCreateCard_network_preference
 -> BillingInfoCreateCard_network_preference -> Bool)
-> (BillingInfoCreateCard_network_preference
    -> BillingInfoCreateCard_network_preference -> Bool)
-> Eq BillingInfoCreateCard_network_preference
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: BillingInfoCreateCard_network_preference
-> BillingInfoCreateCard_network_preference -> Bool
== :: BillingInfoCreateCard_network_preference
-> BillingInfoCreateCard_network_preference -> Bool
$c/= :: BillingInfoCreateCard_network_preference
-> BillingInfoCreateCard_network_preference -> Bool
/= :: BillingInfoCreateCard_network_preference
-> BillingInfoCreateCard_network_preference -> Bool
GHC.Classes.Eq)

instance Data.Aeson.Types.ToJSON.ToJSON BillingInfoCreateCard_network_preference where
    toJSON :: BillingInfoCreateCard_network_preference -> Value
toJSON (BillingInfoCreateCard_network_preferenceOther Value
val) = Value
val
    toJSON (BillingInfoCreateCard_network_preferenceTyped Text
val) = Text -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON Text
val
    toJSON (BillingInfoCreateCard_network_preference
BillingInfoCreateCard_network_preferenceEnumBancontact) = Value
"Bancontact"
    toJSON (BillingInfoCreateCard_network_preference
BillingInfoCreateCard_network_preferenceEnumCartesBancaires) = Value
"CartesBancaires"
    toJSON (BillingInfoCreateCard_network_preference
BillingInfoCreateCard_network_preferenceEnumDankort) = Value
"Dankort"
    toJSON (BillingInfoCreateCard_network_preference
BillingInfoCreateCard_network_preferenceEnumMasterCard) = Value
"MasterCard"
    toJSON (BillingInfoCreateCard_network_preference
BillingInfoCreateCard_network_preferenceEnumVisa) = Value
"Visa"
instance Data.Aeson.Types.FromJSON.FromJSON BillingInfoCreateCard_network_preference where
    parseJSON :: Value -> Parser BillingInfoCreateCard_network_preference
parseJSON Value
val =
        BillingInfoCreateCard_network_preference
-> Parser BillingInfoCreateCard_network_preference
forall a. a -> Parser a
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
"Bancontact" -> BillingInfoCreateCard_network_preference
BillingInfoCreateCard_network_preferenceEnumBancontact
                | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"CartesBancaires" -> BillingInfoCreateCard_network_preference
BillingInfoCreateCard_network_preferenceEnumCartesBancaires
                | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"Dankort" -> BillingInfoCreateCard_network_preference
BillingInfoCreateCard_network_preferenceEnumDankort
                | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"MasterCard" -> BillingInfoCreateCard_network_preference
BillingInfoCreateCard_network_preferenceEnumMasterCard
                | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"Visa" -> BillingInfoCreateCard_network_preference
BillingInfoCreateCard_network_preferenceEnumVisa
                | Bool
GHC.Base.otherwise -> Value -> BillingInfoCreateCard_network_preference
BillingInfoCreateCard_network_preferenceOther Value
val
            )

-- | Defines the enum schema located at @components.schemas.BillingInfoCreate.properties.card_type@ in the specification.
data BillingInfoCreateCard_type
    = -- | This case is used if the value encountered during decoding does not match any of the provided cases in the specification.
      BillingInfoCreateCard_typeOther Data.Aeson.Types.Internal.Value
    | -- | This constructor can be used to send values to the server which are not present in the specification yet.
      BillingInfoCreateCard_typeTyped Data.Text.Internal.Text
    | -- | Represents the JSON value @"American Express"@
      BillingInfoCreateCard_typeEnumAmerican_Express
    | -- | Represents the JSON value @"Dankort"@
      BillingInfoCreateCard_typeEnumDankort
    | -- | Represents the JSON value @"Diners Club"@
      BillingInfoCreateCard_typeEnumDiners_Club
    | -- | Represents the JSON value @"Discover"@
      BillingInfoCreateCard_typeEnumDiscover
    | -- | Represents the JSON value @"ELO"@
      BillingInfoCreateCard_typeEnumELO
    | -- | Represents the JSON value @"Forbrugsforeningen"@
      BillingInfoCreateCard_typeEnumForbrugsforeningen
    | -- | Represents the JSON value @"Hipercard"@
      BillingInfoCreateCard_typeEnumHipercard
    | -- | Represents the JSON value @"JCB"@
      BillingInfoCreateCard_typeEnumJCB
    | -- | Represents the JSON value @"Laser"@
      BillingInfoCreateCard_typeEnumLaser
    | -- | Represents the JSON value @"Maestro"@
      BillingInfoCreateCard_typeEnumMaestro
    | -- | Represents the JSON value @"MasterCard"@
      BillingInfoCreateCard_typeEnumMasterCard
    | -- | Represents the JSON value @"Test Card"@
      BillingInfoCreateCard_typeEnumTest_Card
    | -- | Represents the JSON value @"Union Pay"@
      BillingInfoCreateCard_typeEnumUnion_Pay
    | -- | Represents the JSON value @"Unknown"@
      BillingInfoCreateCard_typeEnumUnknown
    | -- | Represents the JSON value @"Visa"@
      BillingInfoCreateCard_typeEnumVisa
    | -- | Represents the JSON value @"Tarjeta Naranja"@
      BillingInfoCreateCard_typeEnumTarjeta_Naranja
    deriving (Int -> BillingInfoCreateCard_type -> ShowS
[BillingInfoCreateCard_type] -> ShowS
BillingInfoCreateCard_type -> String
(Int -> BillingInfoCreateCard_type -> ShowS)
-> (BillingInfoCreateCard_type -> String)
-> ([BillingInfoCreateCard_type] -> ShowS)
-> Show BillingInfoCreateCard_type
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> BillingInfoCreateCard_type -> ShowS
showsPrec :: Int -> BillingInfoCreateCard_type -> ShowS
$cshow :: BillingInfoCreateCard_type -> String
show :: BillingInfoCreateCard_type -> String
$cshowList :: [BillingInfoCreateCard_type] -> ShowS
showList :: [BillingInfoCreateCard_type] -> ShowS
GHC.Show.Show, BillingInfoCreateCard_type -> BillingInfoCreateCard_type -> Bool
(BillingInfoCreateCard_type -> BillingInfoCreateCard_type -> Bool)
-> (BillingInfoCreateCard_type
    -> BillingInfoCreateCard_type -> Bool)
-> Eq BillingInfoCreateCard_type
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: BillingInfoCreateCard_type -> BillingInfoCreateCard_type -> Bool
== :: BillingInfoCreateCard_type -> BillingInfoCreateCard_type -> Bool
$c/= :: BillingInfoCreateCard_type -> BillingInfoCreateCard_type -> Bool
/= :: BillingInfoCreateCard_type -> BillingInfoCreateCard_type -> Bool
GHC.Classes.Eq)

instance Data.Aeson.Types.ToJSON.ToJSON BillingInfoCreateCard_type where
    toJSON :: BillingInfoCreateCard_type -> Value
toJSON (BillingInfoCreateCard_typeOther Value
val) = Value
val
    toJSON (BillingInfoCreateCard_typeTyped Text
val) = Text -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON Text
val
    toJSON (BillingInfoCreateCard_type
BillingInfoCreateCard_typeEnumAmerican_Express) = Value
"American Express"
    toJSON (BillingInfoCreateCard_type
BillingInfoCreateCard_typeEnumDankort) = Value
"Dankort"
    toJSON (BillingInfoCreateCard_type
BillingInfoCreateCard_typeEnumDiners_Club) = Value
"Diners Club"
    toJSON (BillingInfoCreateCard_type
BillingInfoCreateCard_typeEnumDiscover) = Value
"Discover"
    toJSON (BillingInfoCreateCard_type
BillingInfoCreateCard_typeEnumELO) = Value
"ELO"
    toJSON (BillingInfoCreateCard_type
BillingInfoCreateCard_typeEnumForbrugsforeningen) = Value
"Forbrugsforeningen"
    toJSON (BillingInfoCreateCard_type
BillingInfoCreateCard_typeEnumHipercard) = Value
"Hipercard"
    toJSON (BillingInfoCreateCard_type
BillingInfoCreateCard_typeEnumJCB) = Value
"JCB"
    toJSON (BillingInfoCreateCard_type
BillingInfoCreateCard_typeEnumLaser) = Value
"Laser"
    toJSON (BillingInfoCreateCard_type
BillingInfoCreateCard_typeEnumMaestro) = Value
"Maestro"
    toJSON (BillingInfoCreateCard_type
BillingInfoCreateCard_typeEnumMasterCard) = Value
"MasterCard"
    toJSON (BillingInfoCreateCard_type
BillingInfoCreateCard_typeEnumTest_Card) = Value
"Test Card"
    toJSON (BillingInfoCreateCard_type
BillingInfoCreateCard_typeEnumUnion_Pay) = Value
"Union Pay"
    toJSON (BillingInfoCreateCard_type
BillingInfoCreateCard_typeEnumUnknown) = Value
"Unknown"
    toJSON (BillingInfoCreateCard_type
BillingInfoCreateCard_typeEnumVisa) = Value
"Visa"
    toJSON (BillingInfoCreateCard_type
BillingInfoCreateCard_typeEnumTarjeta_Naranja) = Value
"Tarjeta Naranja"
instance Data.Aeson.Types.FromJSON.FromJSON BillingInfoCreateCard_type where
    parseJSON :: Value -> Parser BillingInfoCreateCard_type
parseJSON Value
val =
        BillingInfoCreateCard_type -> Parser BillingInfoCreateCard_type
forall a. a -> Parser a
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
"American Express" -> BillingInfoCreateCard_type
BillingInfoCreateCard_typeEnumAmerican_Express
                | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"Dankort" -> BillingInfoCreateCard_type
BillingInfoCreateCard_typeEnumDankort
                | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"Diners Club" -> BillingInfoCreateCard_type
BillingInfoCreateCard_typeEnumDiners_Club
                | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"Discover" -> BillingInfoCreateCard_type
BillingInfoCreateCard_typeEnumDiscover
                | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"ELO" -> BillingInfoCreateCard_type
BillingInfoCreateCard_typeEnumELO
                | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"Forbrugsforeningen" -> BillingInfoCreateCard_type
BillingInfoCreateCard_typeEnumForbrugsforeningen
                | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"Hipercard" -> BillingInfoCreateCard_type
BillingInfoCreateCard_typeEnumHipercard
                | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"JCB" -> BillingInfoCreateCard_type
BillingInfoCreateCard_typeEnumJCB
                | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"Laser" -> BillingInfoCreateCard_type
BillingInfoCreateCard_typeEnumLaser
                | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"Maestro" -> BillingInfoCreateCard_type
BillingInfoCreateCard_typeEnumMaestro
                | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"MasterCard" -> BillingInfoCreateCard_type
BillingInfoCreateCard_typeEnumMasterCard
                | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"Test Card" -> BillingInfoCreateCard_type
BillingInfoCreateCard_typeEnumTest_Card
                | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"Union Pay" -> BillingInfoCreateCard_type
BillingInfoCreateCard_typeEnumUnion_Pay
                | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"Unknown" -> BillingInfoCreateCard_type
BillingInfoCreateCard_typeEnumUnknown
                | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"Visa" -> BillingInfoCreateCard_type
BillingInfoCreateCard_typeEnumVisa
                | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"Tarjeta Naranja" -> BillingInfoCreateCard_type
BillingInfoCreateCard_typeEnumTarjeta_Naranja
                | Bool
GHC.Base.otherwise -> Value -> BillingInfoCreateCard_type
BillingInfoCreateCard_typeOther Value
val
            )

{- | Defines the enum schema located at @components.schemas.BillingInfoCreate.properties.external_hpp_type@ in the specification.

Use for Adyen HPP billing info. This should only be used as part of a pending purchase request, when the billing info is nested inside an account object.
-}
data BillingInfoCreateExternal_hpp_type
    = -- | This case is used if the value encountered during decoding does not match any of the provided cases in the specification.
      BillingInfoCreateExternal_hpp_typeOther Data.Aeson.Types.Internal.Value
    | -- | This constructor can be used to send values to the server which are not present in the specification yet.
      BillingInfoCreateExternal_hpp_typeTyped Data.Text.Internal.Text
    | -- | Represents the JSON value @"adyen"@
      BillingInfoCreateExternal_hpp_typeEnumAdyen
    deriving (Int -> BillingInfoCreateExternal_hpp_type -> ShowS
[BillingInfoCreateExternal_hpp_type] -> ShowS
BillingInfoCreateExternal_hpp_type -> String
(Int -> BillingInfoCreateExternal_hpp_type -> ShowS)
-> (BillingInfoCreateExternal_hpp_type -> String)
-> ([BillingInfoCreateExternal_hpp_type] -> ShowS)
-> Show BillingInfoCreateExternal_hpp_type
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> BillingInfoCreateExternal_hpp_type -> ShowS
showsPrec :: Int -> BillingInfoCreateExternal_hpp_type -> ShowS
$cshow :: BillingInfoCreateExternal_hpp_type -> String
show :: BillingInfoCreateExternal_hpp_type -> String
$cshowList :: [BillingInfoCreateExternal_hpp_type] -> ShowS
showList :: [BillingInfoCreateExternal_hpp_type] -> ShowS
GHC.Show.Show, BillingInfoCreateExternal_hpp_type
-> BillingInfoCreateExternal_hpp_type -> Bool
(BillingInfoCreateExternal_hpp_type
 -> BillingInfoCreateExternal_hpp_type -> Bool)
-> (BillingInfoCreateExternal_hpp_type
    -> BillingInfoCreateExternal_hpp_type -> Bool)
-> Eq BillingInfoCreateExternal_hpp_type
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: BillingInfoCreateExternal_hpp_type
-> BillingInfoCreateExternal_hpp_type -> Bool
== :: BillingInfoCreateExternal_hpp_type
-> BillingInfoCreateExternal_hpp_type -> Bool
$c/= :: BillingInfoCreateExternal_hpp_type
-> BillingInfoCreateExternal_hpp_type -> Bool
/= :: BillingInfoCreateExternal_hpp_type
-> BillingInfoCreateExternal_hpp_type -> Bool
GHC.Classes.Eq)

instance Data.Aeson.Types.ToJSON.ToJSON BillingInfoCreateExternal_hpp_type where
    toJSON :: BillingInfoCreateExternal_hpp_type -> Value
toJSON (BillingInfoCreateExternal_hpp_typeOther Value
val) = Value
val
    toJSON (BillingInfoCreateExternal_hpp_typeTyped Text
val) = Text -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON Text
val
    toJSON (BillingInfoCreateExternal_hpp_type
BillingInfoCreateExternal_hpp_typeEnumAdyen) = Value
"adyen"
instance Data.Aeson.Types.FromJSON.FromJSON BillingInfoCreateExternal_hpp_type where
    parseJSON :: Value -> Parser BillingInfoCreateExternal_hpp_type
parseJSON Value
val =
        BillingInfoCreateExternal_hpp_type
-> Parser BillingInfoCreateExternal_hpp_type
forall a. a -> Parser a
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
"adyen" -> BillingInfoCreateExternal_hpp_type
BillingInfoCreateExternal_hpp_typeEnumAdyen
                | Bool
GHC.Base.otherwise -> Value -> BillingInfoCreateExternal_hpp_type
BillingInfoCreateExternal_hpp_typeOther Value
val
            )

{- | Defines the object schema located at @components.schemas.BillingInfoCreate.properties.gateway_attributes@ in the specification.

Additional attributes to send to the gateway.
-}
data BillingInfoCreateGateway_attributes = BillingInfoCreateGateway_attributes
    { BillingInfoCreateGateway_attributes -> Maybe Text
billingInfoCreateGateway_attributesAccount_reference :: (GHC.Maybe.Maybe Data.Text.Internal.Text)
    -- ^ account_reference: Used by Adyen and Braintree gateways. For Adyen the Shopper Reference value used when the external token was created. Must be used in conjunction with gateway_token and gateway_code. For Braintree the PayPal PayerID is populated in the response.
    --
    -- Constraints:
    --
    -- * Maximum length of 264
    }
    deriving
        ( Int -> BillingInfoCreateGateway_attributes -> ShowS
[BillingInfoCreateGateway_attributes] -> ShowS
BillingInfoCreateGateway_attributes -> String
(Int -> BillingInfoCreateGateway_attributes -> ShowS)
-> (BillingInfoCreateGateway_attributes -> String)
-> ([BillingInfoCreateGateway_attributes] -> ShowS)
-> Show BillingInfoCreateGateway_attributes
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> BillingInfoCreateGateway_attributes -> ShowS
showsPrec :: Int -> BillingInfoCreateGateway_attributes -> ShowS
$cshow :: BillingInfoCreateGateway_attributes -> String
show :: BillingInfoCreateGateway_attributes -> String
$cshowList :: [BillingInfoCreateGateway_attributes] -> ShowS
showList :: [BillingInfoCreateGateway_attributes] -> ShowS
GHC.Show.Show
        , BillingInfoCreateGateway_attributes
-> BillingInfoCreateGateway_attributes -> Bool
(BillingInfoCreateGateway_attributes
 -> BillingInfoCreateGateway_attributes -> Bool)
-> (BillingInfoCreateGateway_attributes
    -> BillingInfoCreateGateway_attributes -> Bool)
-> Eq BillingInfoCreateGateway_attributes
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: BillingInfoCreateGateway_attributes
-> BillingInfoCreateGateway_attributes -> Bool
== :: BillingInfoCreateGateway_attributes
-> BillingInfoCreateGateway_attributes -> Bool
$c/= :: BillingInfoCreateGateway_attributes
-> BillingInfoCreateGateway_attributes -> Bool
/= :: BillingInfoCreateGateway_attributes
-> BillingInfoCreateGateway_attributes -> Bool
GHC.Classes.Eq
        )

instance Data.Aeson.Types.ToJSON.ToJSON BillingInfoCreateGateway_attributes where
    toJSON :: BillingInfoCreateGateway_attributes -> Value
toJSON BillingInfoCreateGateway_attributes
obj = [Pair] -> Value
Data.Aeson.Types.Internal.object ([[Pair]] -> [Pair]
forall (t :: * -> *) a. Foldable t => t [a] -> [a]
Data.Foldable.concat ([Pair] -> (Text -> [Pair]) -> Maybe Text -> [Pair]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Pair]
forall a. Monoid a => a
GHC.Base.mempty (Pair -> [Pair]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Pair -> [Pair]) -> (Text -> Pair) -> Text -> [Pair]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"account_reference" Key -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Pair
Data.Aeson.Types.ToJSON..=)) (BillingInfoCreateGateway_attributes -> Maybe Text
billingInfoCreateGateway_attributesAccount_reference BillingInfoCreateGateway_attributes
obj) [Pair] -> [[Pair]] -> [[Pair]]
forall a. a -> [a] -> [a]
: [[Pair]]
forall a. Monoid a => a
GHC.Base.mempty))
    toEncoding :: BillingInfoCreateGateway_attributes -> Encoding
toEncoding BillingInfoCreateGateway_attributes
obj = Series -> Encoding
Data.Aeson.Encoding.Internal.pairs ([Series] -> Series
forall a. Monoid a => [a] -> a
GHC.Base.mconcat ([[Series]] -> [Series]
forall (t :: * -> *) a. Foldable t => t [a] -> [a]
Data.Foldable.concat ([Series] -> (Text -> [Series]) -> Maybe Text -> [Series]
forall b a. b -> (a -> b) -> Maybe a -> b
Data.Maybe.maybe [Series]
forall a. Monoid a => a
GHC.Base.mempty (Series -> [Series]
forall a. a -> [a]
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure (Series -> [Series]) -> (Text -> Series) -> Text -> [Series]
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. (Key
"account_reference" Key -> Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
forall v. ToJSON v => Key -> v -> Series
Data.Aeson.Types.ToJSON..=)) (BillingInfoCreateGateway_attributes -> Maybe Text
billingInfoCreateGateway_attributesAccount_reference BillingInfoCreateGateway_attributes
obj) [Series] -> [[Series]] -> [[Series]]
forall a. a -> [a] -> [a]
: [[Series]]
forall a. Monoid a => a
GHC.Base.mempty)))
instance Data.Aeson.Types.FromJSON.FromJSON BillingInfoCreateGateway_attributes where
    parseJSON :: Value -> Parser BillingInfoCreateGateway_attributes
parseJSON = String
-> (Object -> Parser BillingInfoCreateGateway_attributes)
-> Value
-> Parser BillingInfoCreateGateway_attributes
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.Aeson.Types.FromJSON.withObject String
"BillingInfoCreateGateway_attributes" (\Object
obj -> (Maybe Text -> BillingInfoCreateGateway_attributes)
-> Parser (Maybe Text -> BillingInfoCreateGateway_attributes)
forall a. a -> Parser a
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure Maybe Text -> BillingInfoCreateGateway_attributes
BillingInfoCreateGateway_attributes Parser (Maybe Text -> BillingInfoCreateGateway_attributes)
-> Parser (Maybe Text)
-> Parser BillingInfoCreateGateway_attributes
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Key -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Key
"account_reference"))

-- | Create a new 'BillingInfoCreateGateway_attributes' with all required fields.
mkBillingInfoCreateGateway_attributes :: BillingInfoCreateGateway_attributes
mkBillingInfoCreateGateway_attributes :: BillingInfoCreateGateway_attributes
mkBillingInfoCreateGateway_attributes = BillingInfoCreateGateway_attributes{billingInfoCreateGateway_attributesAccount_reference :: Maybe Text
billingInfoCreateGateway_attributesAccount_reference = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing}

{- | Defines the enum schema located at @components.schemas.BillingInfoCreate.properties.online_banking_payment_type@ in the specification.

Use for Online Banking billing info. This should only be used as part of a pending purchase request, when the billing info is nested inside an account object.
-}
data BillingInfoCreateOnline_banking_payment_type
    = -- | This case is used if the value encountered during decoding does not match any of the provided cases in the specification.
      BillingInfoCreateOnline_banking_payment_typeOther Data.Aeson.Types.Internal.Value
    | -- | This constructor can be used to send values to the server which are not present in the specification yet.
      BillingInfoCreateOnline_banking_payment_typeTyped Data.Text.Internal.Text
    | -- | Represents the JSON value @"ideal"@
      BillingInfoCreateOnline_banking_payment_typeEnumIdeal
    | -- | Represents the JSON value @"sofort"@
      BillingInfoCreateOnline_banking_payment_typeEnumSofort
    deriving (Int -> BillingInfoCreateOnline_banking_payment_type -> ShowS
[BillingInfoCreateOnline_banking_payment_type] -> ShowS
BillingInfoCreateOnline_banking_payment_type -> String
(Int -> BillingInfoCreateOnline_banking_payment_type -> ShowS)
-> (BillingInfoCreateOnline_banking_payment_type -> String)
-> ([BillingInfoCreateOnline_banking_payment_type] -> ShowS)
-> Show BillingInfoCreateOnline_banking_payment_type
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> BillingInfoCreateOnline_banking_payment_type -> ShowS
showsPrec :: Int -> BillingInfoCreateOnline_banking_payment_type -> ShowS
$cshow :: BillingInfoCreateOnline_banking_payment_type -> String
show :: BillingInfoCreateOnline_banking_payment_type -> String
$cshowList :: [BillingInfoCreateOnline_banking_payment_type] -> ShowS
showList :: [BillingInfoCreateOnline_banking_payment_type] -> ShowS
GHC.Show.Show, BillingInfoCreateOnline_banking_payment_type
-> BillingInfoCreateOnline_banking_payment_type -> Bool
(BillingInfoCreateOnline_banking_payment_type
 -> BillingInfoCreateOnline_banking_payment_type -> Bool)
-> (BillingInfoCreateOnline_banking_payment_type
    -> BillingInfoCreateOnline_banking_payment_type -> Bool)
-> Eq BillingInfoCreateOnline_banking_payment_type
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: BillingInfoCreateOnline_banking_payment_type
-> BillingInfoCreateOnline_banking_payment_type -> Bool
== :: BillingInfoCreateOnline_banking_payment_type
-> BillingInfoCreateOnline_banking_payment_type -> Bool
$c/= :: BillingInfoCreateOnline_banking_payment_type
-> BillingInfoCreateOnline_banking_payment_type -> Bool
/= :: BillingInfoCreateOnline_banking_payment_type
-> BillingInfoCreateOnline_banking_payment_type -> Bool
GHC.Classes.Eq)

instance Data.Aeson.Types.ToJSON.ToJSON BillingInfoCreateOnline_banking_payment_type where
    toJSON :: BillingInfoCreateOnline_banking_payment_type -> Value
toJSON (BillingInfoCreateOnline_banking_payment_typeOther Value
val) = Value
val
    toJSON (BillingInfoCreateOnline_banking_payment_typeTyped Text
val) = Text -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON Text
val
    toJSON (BillingInfoCreateOnline_banking_payment_type
BillingInfoCreateOnline_banking_payment_typeEnumIdeal) = Value
"ideal"
    toJSON (BillingInfoCreateOnline_banking_payment_type
BillingInfoCreateOnline_banking_payment_typeEnumSofort) = Value
"sofort"
instance Data.Aeson.Types.FromJSON.FromJSON BillingInfoCreateOnline_banking_payment_type where
    parseJSON :: Value -> Parser BillingInfoCreateOnline_banking_payment_type
parseJSON Value
val =
        BillingInfoCreateOnline_banking_payment_type
-> Parser BillingInfoCreateOnline_banking_payment_type
forall a. a -> Parser a
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
"ideal" -> BillingInfoCreateOnline_banking_payment_type
BillingInfoCreateOnline_banking_payment_typeEnumIdeal
                | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"sofort" -> BillingInfoCreateOnline_banking_payment_type
BillingInfoCreateOnline_banking_payment_typeEnumSofort
                | Bool
GHC.Base.otherwise -> Value -> BillingInfoCreateOnline_banking_payment_type
BillingInfoCreateOnline_banking_payment_typeOther Value
val
            )

{- | Defines the enum schema located at @components.schemas.BillingInfoCreate.properties.tax_identifier_type@ in the specification.

This field and a value of \`cpf\`, \`cnpj\` or \`cuit\` are required if adding a billing info that is an elo or hipercard type in Brazil or in Argentina.
-}
data BillingInfoCreateTax_identifier_type
    = -- | This case is used if the value encountered during decoding does not match any of the provided cases in the specification.
      BillingInfoCreateTax_identifier_typeOther Data.Aeson.Types.Internal.Value
    | -- | This constructor can be used to send values to the server which are not present in the specification yet.
      BillingInfoCreateTax_identifier_typeTyped Data.Text.Internal.Text
    | -- | Represents the JSON value @"cpf"@
      BillingInfoCreateTax_identifier_typeEnumCpf
    | -- | Represents the JSON value @"cnpj"@
      BillingInfoCreateTax_identifier_typeEnumCnpj
    | -- | Represents the JSON value @"cuit"@
      BillingInfoCreateTax_identifier_typeEnumCuit
    deriving (Int -> BillingInfoCreateTax_identifier_type -> ShowS
[BillingInfoCreateTax_identifier_type] -> ShowS
BillingInfoCreateTax_identifier_type -> String
(Int -> BillingInfoCreateTax_identifier_type -> ShowS)
-> (BillingInfoCreateTax_identifier_type -> String)
-> ([BillingInfoCreateTax_identifier_type] -> ShowS)
-> Show BillingInfoCreateTax_identifier_type
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> BillingInfoCreateTax_identifier_type -> ShowS
showsPrec :: Int -> BillingInfoCreateTax_identifier_type -> ShowS
$cshow :: BillingInfoCreateTax_identifier_type -> String
show :: BillingInfoCreateTax_identifier_type -> String
$cshowList :: [BillingInfoCreateTax_identifier_type] -> ShowS
showList :: [BillingInfoCreateTax_identifier_type] -> ShowS
GHC.Show.Show, BillingInfoCreateTax_identifier_type
-> BillingInfoCreateTax_identifier_type -> Bool
(BillingInfoCreateTax_identifier_type
 -> BillingInfoCreateTax_identifier_type -> Bool)
-> (BillingInfoCreateTax_identifier_type
    -> BillingInfoCreateTax_identifier_type -> Bool)
-> Eq BillingInfoCreateTax_identifier_type
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: BillingInfoCreateTax_identifier_type
-> BillingInfoCreateTax_identifier_type -> Bool
== :: BillingInfoCreateTax_identifier_type
-> BillingInfoCreateTax_identifier_type -> Bool
$c/= :: BillingInfoCreateTax_identifier_type
-> BillingInfoCreateTax_identifier_type -> Bool
/= :: BillingInfoCreateTax_identifier_type
-> BillingInfoCreateTax_identifier_type -> Bool
GHC.Classes.Eq)

instance Data.Aeson.Types.ToJSON.ToJSON BillingInfoCreateTax_identifier_type where
    toJSON :: BillingInfoCreateTax_identifier_type -> Value
toJSON (BillingInfoCreateTax_identifier_typeOther Value
val) = Value
val
    toJSON (BillingInfoCreateTax_identifier_typeTyped Text
val) = Text -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON Text
val
    toJSON (BillingInfoCreateTax_identifier_type
BillingInfoCreateTax_identifier_typeEnumCpf) = Value
"cpf"
    toJSON (BillingInfoCreateTax_identifier_type
BillingInfoCreateTax_identifier_typeEnumCnpj) = Value
"cnpj"
    toJSON (BillingInfoCreateTax_identifier_type
BillingInfoCreateTax_identifier_typeEnumCuit) = Value
"cuit"
instance Data.Aeson.Types.FromJSON.FromJSON BillingInfoCreateTax_identifier_type where
    parseJSON :: Value -> Parser BillingInfoCreateTax_identifier_type
parseJSON Value
val =
        BillingInfoCreateTax_identifier_type
-> Parser BillingInfoCreateTax_identifier_type
forall a. a -> Parser a
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
"cpf" -> BillingInfoCreateTax_identifier_type
BillingInfoCreateTax_identifier_typeEnumCpf
                | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"cnpj" -> BillingInfoCreateTax_identifier_type
BillingInfoCreateTax_identifier_typeEnumCnpj
                | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"cuit" -> BillingInfoCreateTax_identifier_type
BillingInfoCreateTax_identifier_typeEnumCuit
                | Bool
GHC.Base.otherwise -> Value -> BillingInfoCreateTax_identifier_type
BillingInfoCreateTax_identifier_typeOther Value
val
            )

{- | Defines the enum schema located at @components.schemas.BillingInfoCreate.properties.transaction_type@ in the specification.

An optional type designation for the payment gateway transaction created by this request. Supports \'moto\' value, which is the acronym for mail order and telephone transactions.
-}
data BillingInfoCreateTransaction_type
    = -- | This case is used if the value encountered during decoding does not match any of the provided cases in the specification.
      BillingInfoCreateTransaction_typeOther Data.Aeson.Types.Internal.Value
    | -- | This constructor can be used to send values to the server which are not present in the specification yet.
      BillingInfoCreateTransaction_typeTyped Data.Text.Internal.Text
    | -- | Represents the JSON value @"moto"@
      BillingInfoCreateTransaction_typeEnumMoto
    deriving (Int -> BillingInfoCreateTransaction_type -> ShowS
[BillingInfoCreateTransaction_type] -> ShowS
BillingInfoCreateTransaction_type -> String
(Int -> BillingInfoCreateTransaction_type -> ShowS)
-> (BillingInfoCreateTransaction_type -> String)
-> ([BillingInfoCreateTransaction_type] -> ShowS)
-> Show BillingInfoCreateTransaction_type
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> BillingInfoCreateTransaction_type -> ShowS
showsPrec :: Int -> BillingInfoCreateTransaction_type -> ShowS
$cshow :: BillingInfoCreateTransaction_type -> String
show :: BillingInfoCreateTransaction_type -> String
$cshowList :: [BillingInfoCreateTransaction_type] -> ShowS
showList :: [BillingInfoCreateTransaction_type] -> ShowS
GHC.Show.Show, BillingInfoCreateTransaction_type
-> BillingInfoCreateTransaction_type -> Bool
(BillingInfoCreateTransaction_type
 -> BillingInfoCreateTransaction_type -> Bool)
-> (BillingInfoCreateTransaction_type
    -> BillingInfoCreateTransaction_type -> Bool)
-> Eq BillingInfoCreateTransaction_type
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: BillingInfoCreateTransaction_type
-> BillingInfoCreateTransaction_type -> Bool
== :: BillingInfoCreateTransaction_type
-> BillingInfoCreateTransaction_type -> Bool
$c/= :: BillingInfoCreateTransaction_type
-> BillingInfoCreateTransaction_type -> Bool
/= :: BillingInfoCreateTransaction_type
-> BillingInfoCreateTransaction_type -> Bool
GHC.Classes.Eq)

instance Data.Aeson.Types.ToJSON.ToJSON BillingInfoCreateTransaction_type where
    toJSON :: BillingInfoCreateTransaction_type -> Value
toJSON (BillingInfoCreateTransaction_typeOther Value
val) = Value
val
    toJSON (BillingInfoCreateTransaction_typeTyped Text
val) = Text -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON Text
val
    toJSON (BillingInfoCreateTransaction_type
BillingInfoCreateTransaction_typeEnumMoto) = Value
"moto"
instance Data.Aeson.Types.FromJSON.FromJSON BillingInfoCreateTransaction_type where
    parseJSON :: Value -> Parser BillingInfoCreateTransaction_type
parseJSON Value
val =
        BillingInfoCreateTransaction_type
-> Parser BillingInfoCreateTransaction_type
forall a. a -> Parser a
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
"moto" -> BillingInfoCreateTransaction_type
BillingInfoCreateTransaction_typeEnumMoto
                | Bool
GHC.Base.otherwise -> Value -> BillingInfoCreateTransaction_type
BillingInfoCreateTransaction_typeOther Value
val
            )

{- | Defines the enum schema located at @components.schemas.BillingInfoCreate.properties.type@ in the specification.

The payment method type for a non-credit card based billing info. \`bacs\` and \`becs\` are the only accepted values.
-}
data BillingInfoCreateType
    = -- | This case is used if the value encountered during decoding does not match any of the provided cases in the specification.
      BillingInfoCreateTypeOther Data.Aeson.Types.Internal.Value
    | -- | This constructor can be used to send values to the server which are not present in the specification yet.
      BillingInfoCreateTypeTyped Data.Text.Internal.Text
    | -- | Represents the JSON value @"bacs"@
      BillingInfoCreateTypeEnumBacs
    | -- | Represents the JSON value @"becs"@
      BillingInfoCreateTypeEnumBecs
    deriving (Int -> BillingInfoCreateType -> ShowS
[BillingInfoCreateType] -> ShowS
BillingInfoCreateType -> String
(Int -> BillingInfoCreateType -> ShowS)
-> (BillingInfoCreateType -> String)
-> ([BillingInfoCreateType] -> ShowS)
-> Show BillingInfoCreateType
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> BillingInfoCreateType -> ShowS
showsPrec :: Int -> BillingInfoCreateType -> ShowS
$cshow :: BillingInfoCreateType -> String
show :: BillingInfoCreateType -> String
$cshowList :: [BillingInfoCreateType] -> ShowS
showList :: [BillingInfoCreateType] -> ShowS
GHC.Show.Show, BillingInfoCreateType -> BillingInfoCreateType -> Bool
(BillingInfoCreateType -> BillingInfoCreateType -> Bool)
-> (BillingInfoCreateType -> BillingInfoCreateType -> Bool)
-> Eq BillingInfoCreateType
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: BillingInfoCreateType -> BillingInfoCreateType -> Bool
== :: BillingInfoCreateType -> BillingInfoCreateType -> Bool
$c/= :: BillingInfoCreateType -> BillingInfoCreateType -> Bool
/= :: BillingInfoCreateType -> BillingInfoCreateType -> Bool
GHC.Classes.Eq)

instance Data.Aeson.Types.ToJSON.ToJSON BillingInfoCreateType where
    toJSON :: BillingInfoCreateType -> Value
toJSON (BillingInfoCreateTypeOther Value
val) = Value
val
    toJSON (BillingInfoCreateTypeTyped Text
val) = Text -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON Text
val
    toJSON (BillingInfoCreateType
BillingInfoCreateTypeEnumBacs) = Value
"bacs"
    toJSON (BillingInfoCreateType
BillingInfoCreateTypeEnumBecs) = Value
"becs"
instance Data.Aeson.Types.FromJSON.FromJSON BillingInfoCreateType where
    parseJSON :: Value -> Parser BillingInfoCreateType
parseJSON Value
val =
        BillingInfoCreateType -> Parser BillingInfoCreateType
forall a. a -> Parser a
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
"bacs" -> BillingInfoCreateType
BillingInfoCreateTypeEnumBacs
                | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"becs" -> BillingInfoCreateType
BillingInfoCreateTypeEnumBecs
                | Bool
GHC.Base.otherwise -> Value -> BillingInfoCreateType
BillingInfoCreateTypeOther Value
val
            )