{-# LANGUAGE ExplicitForAll #-}
{-# 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 different functions to run the operation postCustomersCustomerCardsId
module StripeAPI.Operations.PostCustomersCustomerCardsId where

import qualified Control.Monad.Fail
import qualified Control.Monad.Trans.Reader
import qualified Data.Aeson
import qualified Data.Aeson as Data.Aeson.Encoding.Internal
import qualified Data.Aeson as Data.Aeson.Types
import qualified Data.Aeson as Data.Aeson.Types.FromJSON
import qualified Data.Aeson as Data.Aeson.Types.Internal
import qualified Data.Aeson as Data.Aeson.Types.ToJSON
import qualified Data.ByteString.Char8
import qualified Data.ByteString.Char8 as Data.ByteString.Internal
import qualified Data.Either
import qualified Data.Functor
import qualified Data.Scientific
import qualified Data.Text
import qualified Data.Text.Internal
import qualified Data.Time.Calendar as Data.Time.Calendar.Days
import qualified Data.Time.LocalTime as Data.Time.LocalTime.Internal.ZonedTime
import qualified Data.Vector
import qualified GHC.Base
import qualified GHC.Classes
import qualified GHC.Int
import qualified GHC.Show
import qualified GHC.Types
import qualified Network.HTTP.Client
import qualified Network.HTTP.Client as Network.HTTP.Client.Request
import qualified Network.HTTP.Client as Network.HTTP.Client.Types
import qualified Network.HTTP.Simple
import qualified Network.HTTP.Types
import qualified Network.HTTP.Types as Network.HTTP.Types.Status
import qualified Network.HTTP.Types as Network.HTTP.Types.URI
import qualified StripeAPI.Common
import StripeAPI.Types
import qualified Prelude as GHC.Integer.Type
import qualified Prelude as GHC.Maybe

-- | > POST /v1/customers/{customer}/cards/{id}
--
-- \<p>Update a specified source for a given customer.\<\/p>
postCustomersCustomerCardsId ::
  forall m.
  StripeAPI.Common.MonadHTTP m =>
  -- | Contains all available parameters of this operation (query and path parameters)
  PostCustomersCustomerCardsIdParameters ->
  -- | The request body to send
  GHC.Maybe.Maybe PostCustomersCustomerCardsIdRequestBody ->
  -- | Monadic computation which returns the result of the operation
  StripeAPI.Common.ClientT m (Network.HTTP.Client.Types.Response PostCustomersCustomerCardsIdResponse)
postCustomersCustomerCardsId :: PostCustomersCustomerCardsIdParameters
-> Maybe PostCustomersCustomerCardsIdRequestBody
-> ClientT m (Response PostCustomersCustomerCardsIdResponse)
postCustomersCustomerCardsId
  PostCustomersCustomerCardsIdParameters
parameters
  Maybe PostCustomersCustomerCardsIdRequestBody
body =
    (Response ByteString
 -> Response PostCustomersCustomerCardsIdResponse)
-> ClientT m (Response ByteString)
-> ClientT m (Response PostCustomersCustomerCardsIdResponse)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
GHC.Base.fmap
      ( \Response ByteString
response_0 ->
          (ByteString -> PostCustomersCustomerCardsIdResponse)
-> Response ByteString
-> Response PostCustomersCustomerCardsIdResponse
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
GHC.Base.fmap
            ( (String -> PostCustomersCustomerCardsIdResponse)
-> (PostCustomersCustomerCardsIdResponse
    -> PostCustomersCustomerCardsIdResponse)
-> Either String PostCustomersCustomerCardsIdResponse
-> PostCustomersCustomerCardsIdResponse
forall a c b. (a -> c) -> (b -> c) -> Either a b -> c
Data.Either.either String -> PostCustomersCustomerCardsIdResponse
PostCustomersCustomerCardsIdResponseError PostCustomersCustomerCardsIdResponse
-> PostCustomersCustomerCardsIdResponse
forall a. a -> a
GHC.Base.id
                (Either String PostCustomersCustomerCardsIdResponse
 -> PostCustomersCustomerCardsIdResponse)
-> (ByteString
    -> Either String PostCustomersCustomerCardsIdResponse)
-> ByteString
-> PostCustomersCustomerCardsIdResponse
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. ( \Response ByteString
response ByteString
body ->
                               if
                                   | (\Status
status_1 -> Status -> Int
Network.HTTP.Types.Status.statusCode Status
status_1 Int -> Int -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Int
200) (Response ByteString -> Status
forall body. Response body -> Status
Network.HTTP.Client.Types.responseStatus Response ByteString
response) ->
                                     PostCustomersCustomerCardsIdResponseBody200
-> PostCustomersCustomerCardsIdResponse
PostCustomersCustomerCardsIdResponse200
                                       (PostCustomersCustomerCardsIdResponseBody200
 -> PostCustomersCustomerCardsIdResponse)
-> Either String PostCustomersCustomerCardsIdResponseBody200
-> Either String PostCustomersCustomerCardsIdResponse
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Data.Functor.<$> ( ByteString
-> Either String PostCustomersCustomerCardsIdResponseBody200
forall a. FromJSON a => ByteString -> Either String a
Data.Aeson.eitherDecodeStrict ByteString
body ::
                                                            Data.Either.Either
                                                              GHC.Base.String
                                                              PostCustomersCustomerCardsIdResponseBody200
                                                        )
                                   | Bool -> Status -> Bool
forall a b. a -> b -> a
GHC.Base.const Bool
GHC.Types.True (Response ByteString -> Status
forall body. Response body -> Status
Network.HTTP.Client.Types.responseStatus Response ByteString
response) ->
                                     Error -> PostCustomersCustomerCardsIdResponse
PostCustomersCustomerCardsIdResponseDefault
                                       (Error -> PostCustomersCustomerCardsIdResponse)
-> Either String Error
-> Either String PostCustomersCustomerCardsIdResponse
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Data.Functor.<$> ( ByteString -> Either String Error
forall a. FromJSON a => ByteString -> Either String a
Data.Aeson.eitherDecodeStrict ByteString
body ::
                                                            Data.Either.Either
                                                              GHC.Base.String
                                                              Error
                                                        )
                                   | Bool
GHC.Base.otherwise -> String -> Either String PostCustomersCustomerCardsIdResponse
forall a b. a -> Either a b
Data.Either.Left String
"Missing default response type"
                           )
                  Response ByteString
response_0
            )
            Response ByteString
response_0
      )
      (Text
-> Text
-> [QueryParameter]
-> Maybe PostCustomersCustomerCardsIdRequestBody
-> RequestBodyEncoding
-> ClientT m (Response ByteString)
forall (m :: * -> *) body.
(MonadHTTP m, ToJSON body) =>
Text
-> Text
-> [QueryParameter]
-> Maybe body
-> RequestBodyEncoding
-> ClientT m (Response ByteString)
StripeAPI.Common.doBodyCallWithConfigurationM (Text -> Text
Data.Text.toUpper (Text -> Text) -> Text -> Text
forall a b. (a -> b) -> a -> b
GHC.Base.$ String -> Text
Data.Text.pack String
"POST") (String -> Text
Data.Text.pack (String
"/v1/customers/" String -> String -> String
forall a. [a] -> [a] -> [a]
GHC.Base.++ (ByteString -> String
Data.ByteString.Char8.unpack (Bool -> ByteString -> ByteString
Network.HTTP.Types.URI.urlEncode Bool
GHC.Types.True (ByteString -> ByteString) -> ByteString -> ByteString
forall a b. (a -> b) -> a -> b
GHC.Base.$ (String -> ByteString
Data.ByteString.Char8.pack (String -> ByteString) -> String -> ByteString
forall a b. (a -> b) -> a -> b
GHC.Base.$ Text -> String
forall a. StringifyModel a => a -> String
StripeAPI.Common.stringifyModel (PostCustomersCustomerCardsIdParameters -> Text
postCustomersCustomerCardsIdParametersPathCustomer PostCustomersCustomerCardsIdParameters
parameters))) String -> String -> String
forall a. [a] -> [a] -> [a]
GHC.Base.++ (String
"/cards/" String -> String -> String
forall a. [a] -> [a] -> [a]
GHC.Base.++ (ByteString -> String
Data.ByteString.Char8.unpack (Bool -> ByteString -> ByteString
Network.HTTP.Types.URI.urlEncode Bool
GHC.Types.True (ByteString -> ByteString) -> ByteString -> ByteString
forall a b. (a -> b) -> a -> b
GHC.Base.$ (String -> ByteString
Data.ByteString.Char8.pack (String -> ByteString) -> String -> ByteString
forall a b. (a -> b) -> a -> b
GHC.Base.$ Text -> String
forall a. StringifyModel a => a -> String
StripeAPI.Common.stringifyModel (PostCustomersCustomerCardsIdParameters -> Text
postCustomersCustomerCardsIdParametersPathId PostCustomersCustomerCardsIdParameters
parameters))) String -> String -> String
forall a. [a] -> [a] -> [a]
GHC.Base.++ String
""))))) [QueryParameter]
forall a. Monoid a => a
GHC.Base.mempty Maybe PostCustomersCustomerCardsIdRequestBody
body RequestBodyEncoding
StripeAPI.Common.RequestBodyEncodingFormData)

-- | Defines the object schema located at @paths.\/v1\/customers\/{customer}\/cards\/{id}.POST.parameters@ in the specification.
data PostCustomersCustomerCardsIdParameters = PostCustomersCustomerCardsIdParameters
  { -- | pathCustomer: Represents the parameter named \'customer\'
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PostCustomersCustomerCardsIdParameters -> Text
postCustomersCustomerCardsIdParametersPathCustomer :: Data.Text.Internal.Text,
    -- | pathId: Represents the parameter named \'id\'
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PostCustomersCustomerCardsIdParameters -> Text
postCustomersCustomerCardsIdParametersPathId :: Data.Text.Internal.Text
  }
  deriving
    ( Int -> PostCustomersCustomerCardsIdParameters -> String -> String
[PostCustomersCustomerCardsIdParameters] -> String -> String
PostCustomersCustomerCardsIdParameters -> String
(Int -> PostCustomersCustomerCardsIdParameters -> String -> String)
-> (PostCustomersCustomerCardsIdParameters -> String)
-> ([PostCustomersCustomerCardsIdParameters] -> String -> String)
-> Show PostCustomersCustomerCardsIdParameters
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostCustomersCustomerCardsIdParameters] -> String -> String
$cshowList :: [PostCustomersCustomerCardsIdParameters] -> String -> String
show :: PostCustomersCustomerCardsIdParameters -> String
$cshow :: PostCustomersCustomerCardsIdParameters -> String
showsPrec :: Int -> PostCustomersCustomerCardsIdParameters -> String -> String
$cshowsPrec :: Int -> PostCustomersCustomerCardsIdParameters -> String -> String
GHC.Show.Show,
      PostCustomersCustomerCardsIdParameters
-> PostCustomersCustomerCardsIdParameters -> Bool
(PostCustomersCustomerCardsIdParameters
 -> PostCustomersCustomerCardsIdParameters -> Bool)
-> (PostCustomersCustomerCardsIdParameters
    -> PostCustomersCustomerCardsIdParameters -> Bool)
-> Eq PostCustomersCustomerCardsIdParameters
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostCustomersCustomerCardsIdParameters
-> PostCustomersCustomerCardsIdParameters -> Bool
$c/= :: PostCustomersCustomerCardsIdParameters
-> PostCustomersCustomerCardsIdParameters -> Bool
== :: PostCustomersCustomerCardsIdParameters
-> PostCustomersCustomerCardsIdParameters -> Bool
$c== :: PostCustomersCustomerCardsIdParameters
-> PostCustomersCustomerCardsIdParameters -> Bool
GHC.Classes.Eq
    )

instance Data.Aeson.Types.ToJSON.ToJSON PostCustomersCustomerCardsIdParameters where
  toJSON :: PostCustomersCustomerCardsIdParameters -> Value
toJSON PostCustomersCustomerCardsIdParameters
obj = [Pair] -> Value
Data.Aeson.Types.Internal.object (Text
"pathCustomer" Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerCardsIdParameters -> Text
postCustomersCustomerCardsIdParametersPathCustomer PostCustomersCustomerCardsIdParameters
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"pathId" Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerCardsIdParameters -> Text
postCustomersCustomerCardsIdParametersPathId PostCustomersCustomerCardsIdParameters
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: PostCustomersCustomerCardsIdParameters -> Encoding
toEncoding PostCustomersCustomerCardsIdParameters
obj = Series -> Encoding
Data.Aeson.Encoding.Internal.pairs ((Text
"pathCustomer" Text -> Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerCardsIdParameters -> Text
postCustomersCustomerCardsIdParametersPathCustomer PostCustomersCustomerCardsIdParameters
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> (Text
"pathId" Text -> Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerCardsIdParameters -> Text
postCustomersCustomerCardsIdParametersPathId PostCustomersCustomerCardsIdParameters
obj))

instance Data.Aeson.Types.FromJSON.FromJSON PostCustomersCustomerCardsIdParameters where
  parseJSON :: Value -> Parser PostCustomersCustomerCardsIdParameters
parseJSON = String
-> (Object -> Parser PostCustomersCustomerCardsIdParameters)
-> Value
-> Parser PostCustomersCustomerCardsIdParameters
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.Aeson.Types.FromJSON.withObject String
"PostCustomersCustomerCardsIdParameters" (\Object
obj -> ((Text -> Text -> PostCustomersCustomerCardsIdParameters)
-> Parser (Text -> Text -> PostCustomersCustomerCardsIdParameters)
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure Text -> Text -> PostCustomersCustomerCardsIdParameters
PostCustomersCustomerCardsIdParameters Parser (Text -> Text -> PostCustomersCustomerCardsIdParameters)
-> Parser Text
-> Parser (Text -> PostCustomersCustomerCardsIdParameters)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
Data.Aeson.Types.FromJSON..: Text
"pathCustomer")) Parser (Text -> PostCustomersCustomerCardsIdParameters)
-> Parser Text -> Parser PostCustomersCustomerCardsIdParameters
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
Data.Aeson.Types.FromJSON..: Text
"pathId"))

-- | Create a new 'PostCustomersCustomerCardsIdParameters' with all required fields.
mkPostCustomersCustomerCardsIdParameters ::
  -- | 'postCustomersCustomerCardsIdParametersPathCustomer'
  Data.Text.Internal.Text ->
  -- | 'postCustomersCustomerCardsIdParametersPathId'
  Data.Text.Internal.Text ->
  PostCustomersCustomerCardsIdParameters
mkPostCustomersCustomerCardsIdParameters :: Text -> Text -> PostCustomersCustomerCardsIdParameters
mkPostCustomersCustomerCardsIdParameters Text
postCustomersCustomerCardsIdParametersPathCustomer Text
postCustomersCustomerCardsIdParametersPathId =
  PostCustomersCustomerCardsIdParameters :: Text -> Text -> PostCustomersCustomerCardsIdParameters
PostCustomersCustomerCardsIdParameters
    { postCustomersCustomerCardsIdParametersPathCustomer :: Text
postCustomersCustomerCardsIdParametersPathCustomer = Text
postCustomersCustomerCardsIdParametersPathCustomer,
      postCustomersCustomerCardsIdParametersPathId :: Text
postCustomersCustomerCardsIdParametersPathId = Text
postCustomersCustomerCardsIdParametersPathId
    }

-- | Defines the object schema located at @paths.\/v1\/customers\/{customer}\/cards\/{id}.POST.requestBody.content.application\/x-www-form-urlencoded.schema@ in the specification.
data PostCustomersCustomerCardsIdRequestBody = PostCustomersCustomerCardsIdRequestBody
  { -- | account_holder_name: The name of the person or business that owns the bank account.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PostCustomersCustomerCardsIdRequestBody -> Maybe Text
postCustomersCustomerCardsIdRequestBodyAccountHolderName :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | account_holder_type: The type of entity that holds the account. This can be either \`individual\` or \`company\`.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PostCustomersCustomerCardsIdRequestBody
-> Maybe PostCustomersCustomerCardsIdRequestBodyAccountHolderType'
postCustomersCustomerCardsIdRequestBodyAccountHolderType :: (GHC.Maybe.Maybe PostCustomersCustomerCardsIdRequestBodyAccountHolderType'),
    -- | address_city: City\/District\/Suburb\/Town\/Village.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PostCustomersCustomerCardsIdRequestBody -> Maybe Text
postCustomersCustomerCardsIdRequestBodyAddressCity :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | address_country: Billing address country, if provided when creating card.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PostCustomersCustomerCardsIdRequestBody -> Maybe Text
postCustomersCustomerCardsIdRequestBodyAddressCountry :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | address_line1: Address line 1 (Street address\/PO Box\/Company name).
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PostCustomersCustomerCardsIdRequestBody -> Maybe Text
postCustomersCustomerCardsIdRequestBodyAddressLine1 :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | address_line2: Address line 2 (Apartment\/Suite\/Unit\/Building).
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PostCustomersCustomerCardsIdRequestBody -> Maybe Text
postCustomersCustomerCardsIdRequestBodyAddressLine2 :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | address_state: State\/County\/Province\/Region.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PostCustomersCustomerCardsIdRequestBody -> Maybe Text
postCustomersCustomerCardsIdRequestBodyAddressState :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | address_zip: ZIP or postal code.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PostCustomersCustomerCardsIdRequestBody -> Maybe Text
postCustomersCustomerCardsIdRequestBodyAddressZip :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | exp_month: Two digit number representing the card’s expiration month.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PostCustomersCustomerCardsIdRequestBody -> Maybe Text
postCustomersCustomerCardsIdRequestBodyExpMonth :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | exp_year: Four digit number representing the card’s expiration year.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PostCustomersCustomerCardsIdRequestBody -> Maybe Text
postCustomersCustomerCardsIdRequestBodyExpYear :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | expand: Specifies which fields in the response should be expanded.
    PostCustomersCustomerCardsIdRequestBody -> Maybe [Text]
postCustomersCustomerCardsIdRequestBodyExpand :: (GHC.Maybe.Maybe ([Data.Text.Internal.Text])),
    -- | metadata: Set of [key-value pairs](https:\/\/stripe.com\/docs\/api\/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to \`metadata\`.
    PostCustomersCustomerCardsIdRequestBody
-> Maybe PostCustomersCustomerCardsIdRequestBodyMetadata'Variants
postCustomersCustomerCardsIdRequestBodyMetadata :: (GHC.Maybe.Maybe PostCustomersCustomerCardsIdRequestBodyMetadata'Variants),
    -- | name: Cardholder name.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PostCustomersCustomerCardsIdRequestBody -> Maybe Text
postCustomersCustomerCardsIdRequestBodyName :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | owner
    PostCustomersCustomerCardsIdRequestBody
-> Maybe PostCustomersCustomerCardsIdRequestBodyOwner'
postCustomersCustomerCardsIdRequestBodyOwner :: (GHC.Maybe.Maybe PostCustomersCustomerCardsIdRequestBodyOwner')
  }
  deriving
    ( Int -> PostCustomersCustomerCardsIdRequestBody -> String -> String
[PostCustomersCustomerCardsIdRequestBody] -> String -> String
PostCustomersCustomerCardsIdRequestBody -> String
(Int
 -> PostCustomersCustomerCardsIdRequestBody -> String -> String)
-> (PostCustomersCustomerCardsIdRequestBody -> String)
-> ([PostCustomersCustomerCardsIdRequestBody] -> String -> String)
-> Show PostCustomersCustomerCardsIdRequestBody
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostCustomersCustomerCardsIdRequestBody] -> String -> String
$cshowList :: [PostCustomersCustomerCardsIdRequestBody] -> String -> String
show :: PostCustomersCustomerCardsIdRequestBody -> String
$cshow :: PostCustomersCustomerCardsIdRequestBody -> String
showsPrec :: Int -> PostCustomersCustomerCardsIdRequestBody -> String -> String
$cshowsPrec :: Int -> PostCustomersCustomerCardsIdRequestBody -> String -> String
GHC.Show.Show,
      PostCustomersCustomerCardsIdRequestBody
-> PostCustomersCustomerCardsIdRequestBody -> Bool
(PostCustomersCustomerCardsIdRequestBody
 -> PostCustomersCustomerCardsIdRequestBody -> Bool)
-> (PostCustomersCustomerCardsIdRequestBody
    -> PostCustomersCustomerCardsIdRequestBody -> Bool)
-> Eq PostCustomersCustomerCardsIdRequestBody
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostCustomersCustomerCardsIdRequestBody
-> PostCustomersCustomerCardsIdRequestBody -> Bool
$c/= :: PostCustomersCustomerCardsIdRequestBody
-> PostCustomersCustomerCardsIdRequestBody -> Bool
== :: PostCustomersCustomerCardsIdRequestBody
-> PostCustomersCustomerCardsIdRequestBody -> Bool
$c== :: PostCustomersCustomerCardsIdRequestBody
-> PostCustomersCustomerCardsIdRequestBody -> Bool
GHC.Classes.Eq
    )

instance Data.Aeson.Types.ToJSON.ToJSON PostCustomersCustomerCardsIdRequestBody where
  toJSON :: PostCustomersCustomerCardsIdRequestBody -> Value
toJSON PostCustomersCustomerCardsIdRequestBody
obj = [Pair] -> Value
Data.Aeson.Types.Internal.object (Text
"account_holder_name" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerCardsIdRequestBody -> Maybe Text
postCustomersCustomerCardsIdRequestBodyAccountHolderName PostCustomersCustomerCardsIdRequestBody
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"account_holder_type" Text
-> Maybe PostCustomersCustomerCardsIdRequestBodyAccountHolderType'
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerCardsIdRequestBody
-> Maybe PostCustomersCustomerCardsIdRequestBodyAccountHolderType'
postCustomersCustomerCardsIdRequestBodyAccountHolderType PostCustomersCustomerCardsIdRequestBody
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"address_city" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerCardsIdRequestBody -> Maybe Text
postCustomersCustomerCardsIdRequestBodyAddressCity PostCustomersCustomerCardsIdRequestBody
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"address_country" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerCardsIdRequestBody -> Maybe Text
postCustomersCustomerCardsIdRequestBodyAddressCountry PostCustomersCustomerCardsIdRequestBody
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"address_line1" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerCardsIdRequestBody -> Maybe Text
postCustomersCustomerCardsIdRequestBodyAddressLine1 PostCustomersCustomerCardsIdRequestBody
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"address_line2" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerCardsIdRequestBody -> Maybe Text
postCustomersCustomerCardsIdRequestBodyAddressLine2 PostCustomersCustomerCardsIdRequestBody
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"address_state" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerCardsIdRequestBody -> Maybe Text
postCustomersCustomerCardsIdRequestBodyAddressState PostCustomersCustomerCardsIdRequestBody
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"address_zip" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerCardsIdRequestBody -> Maybe Text
postCustomersCustomerCardsIdRequestBodyAddressZip PostCustomersCustomerCardsIdRequestBody
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"exp_month" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerCardsIdRequestBody -> Maybe Text
postCustomersCustomerCardsIdRequestBodyExpMonth PostCustomersCustomerCardsIdRequestBody
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"exp_year" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerCardsIdRequestBody -> Maybe Text
postCustomersCustomerCardsIdRequestBodyExpYear PostCustomersCustomerCardsIdRequestBody
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"expand" Text -> Maybe [Text] -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerCardsIdRequestBody -> Maybe [Text]
postCustomersCustomerCardsIdRequestBodyExpand PostCustomersCustomerCardsIdRequestBody
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"metadata" Text
-> Maybe PostCustomersCustomerCardsIdRequestBodyMetadata'Variants
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerCardsIdRequestBody
-> Maybe PostCustomersCustomerCardsIdRequestBodyMetadata'Variants
postCustomersCustomerCardsIdRequestBodyMetadata PostCustomersCustomerCardsIdRequestBody
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"name" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerCardsIdRequestBody -> Maybe Text
postCustomersCustomerCardsIdRequestBodyName PostCustomersCustomerCardsIdRequestBody
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"owner" Text -> Maybe PostCustomersCustomerCardsIdRequestBodyOwner' -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerCardsIdRequestBody
-> Maybe PostCustomersCustomerCardsIdRequestBodyOwner'
postCustomersCustomerCardsIdRequestBodyOwner PostCustomersCustomerCardsIdRequestBody
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: PostCustomersCustomerCardsIdRequestBody -> Encoding
toEncoding PostCustomersCustomerCardsIdRequestBody
obj = Series -> Encoding
Data.Aeson.Encoding.Internal.pairs ((Text
"account_holder_name" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerCardsIdRequestBody -> Maybe Text
postCustomersCustomerCardsIdRequestBodyAccountHolderName PostCustomersCustomerCardsIdRequestBody
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"account_holder_type" Text
-> Maybe PostCustomersCustomerCardsIdRequestBodyAccountHolderType'
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerCardsIdRequestBody
-> Maybe PostCustomersCustomerCardsIdRequestBodyAccountHolderType'
postCustomersCustomerCardsIdRequestBodyAccountHolderType PostCustomersCustomerCardsIdRequestBody
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"address_city" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerCardsIdRequestBody -> Maybe Text
postCustomersCustomerCardsIdRequestBodyAddressCity PostCustomersCustomerCardsIdRequestBody
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"address_country" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerCardsIdRequestBody -> Maybe Text
postCustomersCustomerCardsIdRequestBodyAddressCountry PostCustomersCustomerCardsIdRequestBody
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"address_line1" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerCardsIdRequestBody -> Maybe Text
postCustomersCustomerCardsIdRequestBodyAddressLine1 PostCustomersCustomerCardsIdRequestBody
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"address_line2" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerCardsIdRequestBody -> Maybe Text
postCustomersCustomerCardsIdRequestBodyAddressLine2 PostCustomersCustomerCardsIdRequestBody
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"address_state" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerCardsIdRequestBody -> Maybe Text
postCustomersCustomerCardsIdRequestBodyAddressState PostCustomersCustomerCardsIdRequestBody
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"address_zip" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerCardsIdRequestBody -> Maybe Text
postCustomersCustomerCardsIdRequestBodyAddressZip PostCustomersCustomerCardsIdRequestBody
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"exp_month" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerCardsIdRequestBody -> Maybe Text
postCustomersCustomerCardsIdRequestBodyExpMonth PostCustomersCustomerCardsIdRequestBody
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"exp_year" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerCardsIdRequestBody -> Maybe Text
postCustomersCustomerCardsIdRequestBodyExpYear PostCustomersCustomerCardsIdRequestBody
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"expand" Text -> Maybe [Text] -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerCardsIdRequestBody -> Maybe [Text]
postCustomersCustomerCardsIdRequestBodyExpand PostCustomersCustomerCardsIdRequestBody
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"metadata" Text
-> Maybe PostCustomersCustomerCardsIdRequestBodyMetadata'Variants
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerCardsIdRequestBody
-> Maybe PostCustomersCustomerCardsIdRequestBodyMetadata'Variants
postCustomersCustomerCardsIdRequestBodyMetadata PostCustomersCustomerCardsIdRequestBody
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"name" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerCardsIdRequestBody -> Maybe Text
postCustomersCustomerCardsIdRequestBodyName PostCustomersCustomerCardsIdRequestBody
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> (Text
"owner" Text
-> Maybe PostCustomersCustomerCardsIdRequestBodyOwner' -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerCardsIdRequestBody
-> Maybe PostCustomersCustomerCardsIdRequestBodyOwner'
postCustomersCustomerCardsIdRequestBodyOwner PostCustomersCustomerCardsIdRequestBody
obj))))))))))))))

instance Data.Aeson.Types.FromJSON.FromJSON PostCustomersCustomerCardsIdRequestBody where
  parseJSON :: Value -> Parser PostCustomersCustomerCardsIdRequestBody
parseJSON = String
-> (Object -> Parser PostCustomersCustomerCardsIdRequestBody)
-> Value
-> Parser PostCustomersCustomerCardsIdRequestBody
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.Aeson.Types.FromJSON.withObject String
"PostCustomersCustomerCardsIdRequestBody" (\Object
obj -> ((((((((((((((Maybe Text
 -> Maybe PostCustomersCustomerCardsIdRequestBodyAccountHolderType'
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe [Text]
 -> Maybe PostCustomersCustomerCardsIdRequestBodyMetadata'Variants
 -> Maybe Text
 -> Maybe PostCustomersCustomerCardsIdRequestBodyOwner'
 -> PostCustomersCustomerCardsIdRequestBody)
-> Parser
     (Maybe Text
      -> Maybe PostCustomersCustomerCardsIdRequestBodyAccountHolderType'
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe PostCustomersCustomerCardsIdRequestBodyMetadata'Variants
      -> Maybe Text
      -> Maybe PostCustomersCustomerCardsIdRequestBodyOwner'
      -> PostCustomersCustomerCardsIdRequestBody)
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure Maybe Text
-> Maybe PostCustomersCustomerCardsIdRequestBodyAccountHolderType'
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe [Text]
-> Maybe PostCustomersCustomerCardsIdRequestBodyMetadata'Variants
-> Maybe Text
-> Maybe PostCustomersCustomerCardsIdRequestBodyOwner'
-> PostCustomersCustomerCardsIdRequestBody
PostCustomersCustomerCardsIdRequestBody Parser
  (Maybe Text
   -> Maybe PostCustomersCustomerCardsIdRequestBodyAccountHolderType'
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe PostCustomersCustomerCardsIdRequestBodyMetadata'Variants
   -> Maybe Text
   -> Maybe PostCustomersCustomerCardsIdRequestBodyOwner'
   -> PostCustomersCustomerCardsIdRequestBody)
-> Parser (Maybe Text)
-> Parser
     (Maybe PostCustomersCustomerCardsIdRequestBodyAccountHolderType'
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe PostCustomersCustomerCardsIdRequestBodyMetadata'Variants
      -> Maybe Text
      -> Maybe PostCustomersCustomerCardsIdRequestBodyOwner'
      -> PostCustomersCustomerCardsIdRequestBody)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"account_holder_name")) Parser
  (Maybe PostCustomersCustomerCardsIdRequestBodyAccountHolderType'
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe PostCustomersCustomerCardsIdRequestBodyMetadata'Variants
   -> Maybe Text
   -> Maybe PostCustomersCustomerCardsIdRequestBodyOwner'
   -> PostCustomersCustomerCardsIdRequestBody)
-> Parser
     (Maybe PostCustomersCustomerCardsIdRequestBodyAccountHolderType')
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe PostCustomersCustomerCardsIdRequestBodyMetadata'Variants
      -> Maybe Text
      -> Maybe PostCustomersCustomerCardsIdRequestBodyOwner'
      -> PostCustomersCustomerCardsIdRequestBody)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     (Maybe PostCustomersCustomerCardsIdRequestBodyAccountHolderType')
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"account_holder_type")) Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe PostCustomersCustomerCardsIdRequestBodyMetadata'Variants
   -> Maybe Text
   -> Maybe PostCustomersCustomerCardsIdRequestBodyOwner'
   -> PostCustomersCustomerCardsIdRequestBody)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe PostCustomersCustomerCardsIdRequestBodyMetadata'Variants
      -> Maybe Text
      -> Maybe PostCustomersCustomerCardsIdRequestBodyOwner'
      -> PostCustomersCustomerCardsIdRequestBody)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"address_city")) Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe PostCustomersCustomerCardsIdRequestBodyMetadata'Variants
   -> Maybe Text
   -> Maybe PostCustomersCustomerCardsIdRequestBodyOwner'
   -> PostCustomersCustomerCardsIdRequestBody)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe PostCustomersCustomerCardsIdRequestBodyMetadata'Variants
      -> Maybe Text
      -> Maybe PostCustomersCustomerCardsIdRequestBodyOwner'
      -> PostCustomersCustomerCardsIdRequestBody)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"address_country")) Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe PostCustomersCustomerCardsIdRequestBodyMetadata'Variants
   -> Maybe Text
   -> Maybe PostCustomersCustomerCardsIdRequestBodyOwner'
   -> PostCustomersCustomerCardsIdRequestBody)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe PostCustomersCustomerCardsIdRequestBodyMetadata'Variants
      -> Maybe Text
      -> Maybe PostCustomersCustomerCardsIdRequestBodyOwner'
      -> PostCustomersCustomerCardsIdRequestBody)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"address_line1")) Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe PostCustomersCustomerCardsIdRequestBodyMetadata'Variants
   -> Maybe Text
   -> Maybe PostCustomersCustomerCardsIdRequestBodyOwner'
   -> PostCustomersCustomerCardsIdRequestBody)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe PostCustomersCustomerCardsIdRequestBodyMetadata'Variants
      -> Maybe Text
      -> Maybe PostCustomersCustomerCardsIdRequestBodyOwner'
      -> PostCustomersCustomerCardsIdRequestBody)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"address_line2")) Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe PostCustomersCustomerCardsIdRequestBodyMetadata'Variants
   -> Maybe Text
   -> Maybe PostCustomersCustomerCardsIdRequestBodyOwner'
   -> PostCustomersCustomerCardsIdRequestBody)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe PostCustomersCustomerCardsIdRequestBodyMetadata'Variants
      -> Maybe Text
      -> Maybe PostCustomersCustomerCardsIdRequestBodyOwner'
      -> PostCustomersCustomerCardsIdRequestBody)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"address_state")) Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe PostCustomersCustomerCardsIdRequestBodyMetadata'Variants
   -> Maybe Text
   -> Maybe PostCustomersCustomerCardsIdRequestBodyOwner'
   -> PostCustomersCustomerCardsIdRequestBody)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe PostCustomersCustomerCardsIdRequestBodyMetadata'Variants
      -> Maybe Text
      -> Maybe PostCustomersCustomerCardsIdRequestBodyOwner'
      -> PostCustomersCustomerCardsIdRequestBody)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"address_zip")) Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe PostCustomersCustomerCardsIdRequestBodyMetadata'Variants
   -> Maybe Text
   -> Maybe PostCustomersCustomerCardsIdRequestBodyOwner'
   -> PostCustomersCustomerCardsIdRequestBody)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe [Text]
      -> Maybe PostCustomersCustomerCardsIdRequestBodyMetadata'Variants
      -> Maybe Text
      -> Maybe PostCustomersCustomerCardsIdRequestBodyOwner'
      -> PostCustomersCustomerCardsIdRequestBody)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"exp_month")) Parser
  (Maybe Text
   -> Maybe [Text]
   -> Maybe PostCustomersCustomerCardsIdRequestBodyMetadata'Variants
   -> Maybe Text
   -> Maybe PostCustomersCustomerCardsIdRequestBodyOwner'
   -> PostCustomersCustomerCardsIdRequestBody)
-> Parser (Maybe Text)
-> Parser
     (Maybe [Text]
      -> Maybe PostCustomersCustomerCardsIdRequestBodyMetadata'Variants
      -> Maybe Text
      -> Maybe PostCustomersCustomerCardsIdRequestBodyOwner'
      -> PostCustomersCustomerCardsIdRequestBody)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"exp_year")) Parser
  (Maybe [Text]
   -> Maybe PostCustomersCustomerCardsIdRequestBodyMetadata'Variants
   -> Maybe Text
   -> Maybe PostCustomersCustomerCardsIdRequestBodyOwner'
   -> PostCustomersCustomerCardsIdRequestBody)
-> Parser (Maybe [Text])
-> Parser
     (Maybe PostCustomersCustomerCardsIdRequestBodyMetadata'Variants
      -> Maybe Text
      -> Maybe PostCustomersCustomerCardsIdRequestBodyOwner'
      -> PostCustomersCustomerCardsIdRequestBody)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe [Text])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"expand")) Parser
  (Maybe PostCustomersCustomerCardsIdRequestBodyMetadata'Variants
   -> Maybe Text
   -> Maybe PostCustomersCustomerCardsIdRequestBodyOwner'
   -> PostCustomersCustomerCardsIdRequestBody)
-> Parser
     (Maybe PostCustomersCustomerCardsIdRequestBodyMetadata'Variants)
-> Parser
     (Maybe Text
      -> Maybe PostCustomersCustomerCardsIdRequestBodyOwner'
      -> PostCustomersCustomerCardsIdRequestBody)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     (Maybe PostCustomersCustomerCardsIdRequestBodyMetadata'Variants)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"metadata")) Parser
  (Maybe Text
   -> Maybe PostCustomersCustomerCardsIdRequestBodyOwner'
   -> PostCustomersCustomerCardsIdRequestBody)
-> Parser (Maybe Text)
-> Parser
     (Maybe PostCustomersCustomerCardsIdRequestBodyOwner'
      -> PostCustomersCustomerCardsIdRequestBody)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"name")) Parser
  (Maybe PostCustomersCustomerCardsIdRequestBodyOwner'
   -> PostCustomersCustomerCardsIdRequestBody)
-> Parser (Maybe PostCustomersCustomerCardsIdRequestBodyOwner')
-> Parser PostCustomersCustomerCardsIdRequestBody
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser (Maybe PostCustomersCustomerCardsIdRequestBodyOwner')
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"owner"))

-- | Create a new 'PostCustomersCustomerCardsIdRequestBody' with all required fields.
mkPostCustomersCustomerCardsIdRequestBody :: PostCustomersCustomerCardsIdRequestBody
mkPostCustomersCustomerCardsIdRequestBody :: PostCustomersCustomerCardsIdRequestBody
mkPostCustomersCustomerCardsIdRequestBody =
  PostCustomersCustomerCardsIdRequestBody :: Maybe Text
-> Maybe PostCustomersCustomerCardsIdRequestBodyAccountHolderType'
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe [Text]
-> Maybe PostCustomersCustomerCardsIdRequestBodyMetadata'Variants
-> Maybe Text
-> Maybe PostCustomersCustomerCardsIdRequestBodyOwner'
-> PostCustomersCustomerCardsIdRequestBody
PostCustomersCustomerCardsIdRequestBody
    { postCustomersCustomerCardsIdRequestBodyAccountHolderName :: Maybe Text
postCustomersCustomerCardsIdRequestBodyAccountHolderName = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      postCustomersCustomerCardsIdRequestBodyAccountHolderType :: Maybe PostCustomersCustomerCardsIdRequestBodyAccountHolderType'
postCustomersCustomerCardsIdRequestBodyAccountHolderType = Maybe PostCustomersCustomerCardsIdRequestBodyAccountHolderType'
forall a. Maybe a
GHC.Maybe.Nothing,
      postCustomersCustomerCardsIdRequestBodyAddressCity :: Maybe Text
postCustomersCustomerCardsIdRequestBodyAddressCity = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      postCustomersCustomerCardsIdRequestBodyAddressCountry :: Maybe Text
postCustomersCustomerCardsIdRequestBodyAddressCountry = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      postCustomersCustomerCardsIdRequestBodyAddressLine1 :: Maybe Text
postCustomersCustomerCardsIdRequestBodyAddressLine1 = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      postCustomersCustomerCardsIdRequestBodyAddressLine2 :: Maybe Text
postCustomersCustomerCardsIdRequestBodyAddressLine2 = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      postCustomersCustomerCardsIdRequestBodyAddressState :: Maybe Text
postCustomersCustomerCardsIdRequestBodyAddressState = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      postCustomersCustomerCardsIdRequestBodyAddressZip :: Maybe Text
postCustomersCustomerCardsIdRequestBodyAddressZip = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      postCustomersCustomerCardsIdRequestBodyExpMonth :: Maybe Text
postCustomersCustomerCardsIdRequestBodyExpMonth = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      postCustomersCustomerCardsIdRequestBodyExpYear :: Maybe Text
postCustomersCustomerCardsIdRequestBodyExpYear = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      postCustomersCustomerCardsIdRequestBodyExpand :: Maybe [Text]
postCustomersCustomerCardsIdRequestBodyExpand = Maybe [Text]
forall a. Maybe a
GHC.Maybe.Nothing,
      postCustomersCustomerCardsIdRequestBodyMetadata :: Maybe PostCustomersCustomerCardsIdRequestBodyMetadata'Variants
postCustomersCustomerCardsIdRequestBodyMetadata = Maybe PostCustomersCustomerCardsIdRequestBodyMetadata'Variants
forall a. Maybe a
GHC.Maybe.Nothing,
      postCustomersCustomerCardsIdRequestBodyName :: Maybe Text
postCustomersCustomerCardsIdRequestBodyName = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      postCustomersCustomerCardsIdRequestBodyOwner :: Maybe PostCustomersCustomerCardsIdRequestBodyOwner'
postCustomersCustomerCardsIdRequestBodyOwner = Maybe PostCustomersCustomerCardsIdRequestBodyOwner'
forall a. Maybe a
GHC.Maybe.Nothing
    }

-- | Defines the enum schema located at @paths.\/v1\/customers\/{customer}\/cards\/{id}.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.account_holder_type@ in the specification.
--
-- The type of entity that holds the account. This can be either \`individual\` or \`company\`.
data PostCustomersCustomerCardsIdRequestBodyAccountHolderType'
  = -- | This case is used if the value encountered during decoding does not match any of the provided cases in the specification.
    PostCustomersCustomerCardsIdRequestBodyAccountHolderType'Other Data.Aeson.Types.Internal.Value
  | -- | This constructor can be used to send values to the server which are not present in the specification yet.
    PostCustomersCustomerCardsIdRequestBodyAccountHolderType'Typed Data.Text.Internal.Text
  | -- | Represents the JSON value @"company"@
    PostCustomersCustomerCardsIdRequestBodyAccountHolderType'EnumCompany
  | -- | Represents the JSON value @"individual"@
    PostCustomersCustomerCardsIdRequestBodyAccountHolderType'EnumIndividual
  deriving (Int
-> PostCustomersCustomerCardsIdRequestBodyAccountHolderType'
-> String
-> String
[PostCustomersCustomerCardsIdRequestBodyAccountHolderType']
-> String -> String
PostCustomersCustomerCardsIdRequestBodyAccountHolderType' -> String
(Int
 -> PostCustomersCustomerCardsIdRequestBodyAccountHolderType'
 -> String
 -> String)
-> (PostCustomersCustomerCardsIdRequestBodyAccountHolderType'
    -> String)
-> ([PostCustomersCustomerCardsIdRequestBodyAccountHolderType']
    -> String -> String)
-> Show PostCustomersCustomerCardsIdRequestBodyAccountHolderType'
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostCustomersCustomerCardsIdRequestBodyAccountHolderType']
-> String -> String
$cshowList :: [PostCustomersCustomerCardsIdRequestBodyAccountHolderType']
-> String -> String
show :: PostCustomersCustomerCardsIdRequestBodyAccountHolderType' -> String
$cshow :: PostCustomersCustomerCardsIdRequestBodyAccountHolderType' -> String
showsPrec :: Int
-> PostCustomersCustomerCardsIdRequestBodyAccountHolderType'
-> String
-> String
$cshowsPrec :: Int
-> PostCustomersCustomerCardsIdRequestBodyAccountHolderType'
-> String
-> String
GHC.Show.Show, PostCustomersCustomerCardsIdRequestBodyAccountHolderType'
-> PostCustomersCustomerCardsIdRequestBodyAccountHolderType'
-> Bool
(PostCustomersCustomerCardsIdRequestBodyAccountHolderType'
 -> PostCustomersCustomerCardsIdRequestBodyAccountHolderType'
 -> Bool)
-> (PostCustomersCustomerCardsIdRequestBodyAccountHolderType'
    -> PostCustomersCustomerCardsIdRequestBodyAccountHolderType'
    -> Bool)
-> Eq PostCustomersCustomerCardsIdRequestBodyAccountHolderType'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostCustomersCustomerCardsIdRequestBodyAccountHolderType'
-> PostCustomersCustomerCardsIdRequestBodyAccountHolderType'
-> Bool
$c/= :: PostCustomersCustomerCardsIdRequestBodyAccountHolderType'
-> PostCustomersCustomerCardsIdRequestBodyAccountHolderType'
-> Bool
== :: PostCustomersCustomerCardsIdRequestBodyAccountHolderType'
-> PostCustomersCustomerCardsIdRequestBodyAccountHolderType'
-> Bool
$c== :: PostCustomersCustomerCardsIdRequestBodyAccountHolderType'
-> PostCustomersCustomerCardsIdRequestBodyAccountHolderType'
-> Bool
GHC.Classes.Eq)

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

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

-- | Defines the oneOf schema located at @paths.\/v1\/customers\/{customer}\/cards\/{id}.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.metadata.anyOf@ in the specification.
--
-- Set of [key-value pairs](https:\/\/stripe.com\/docs\/api\/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to \`metadata\`.
data PostCustomersCustomerCardsIdRequestBodyMetadata'Variants
  = -- | Represents the JSON value @""@
    PostCustomersCustomerCardsIdRequestBodyMetadata'EmptyString
  | PostCustomersCustomerCardsIdRequestBodyMetadata'Object Data.Aeson.Types.Internal.Object
  deriving (Int
-> PostCustomersCustomerCardsIdRequestBodyMetadata'Variants
-> String
-> String
[PostCustomersCustomerCardsIdRequestBodyMetadata'Variants]
-> String -> String
PostCustomersCustomerCardsIdRequestBodyMetadata'Variants -> String
(Int
 -> PostCustomersCustomerCardsIdRequestBodyMetadata'Variants
 -> String
 -> String)
-> (PostCustomersCustomerCardsIdRequestBodyMetadata'Variants
    -> String)
-> ([PostCustomersCustomerCardsIdRequestBodyMetadata'Variants]
    -> String -> String)
-> Show PostCustomersCustomerCardsIdRequestBodyMetadata'Variants
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostCustomersCustomerCardsIdRequestBodyMetadata'Variants]
-> String -> String
$cshowList :: [PostCustomersCustomerCardsIdRequestBodyMetadata'Variants]
-> String -> String
show :: PostCustomersCustomerCardsIdRequestBodyMetadata'Variants -> String
$cshow :: PostCustomersCustomerCardsIdRequestBodyMetadata'Variants -> String
showsPrec :: Int
-> PostCustomersCustomerCardsIdRequestBodyMetadata'Variants
-> String
-> String
$cshowsPrec :: Int
-> PostCustomersCustomerCardsIdRequestBodyMetadata'Variants
-> String
-> String
GHC.Show.Show, PostCustomersCustomerCardsIdRequestBodyMetadata'Variants
-> PostCustomersCustomerCardsIdRequestBodyMetadata'Variants -> Bool
(PostCustomersCustomerCardsIdRequestBodyMetadata'Variants
 -> PostCustomersCustomerCardsIdRequestBodyMetadata'Variants
 -> Bool)
-> (PostCustomersCustomerCardsIdRequestBodyMetadata'Variants
    -> PostCustomersCustomerCardsIdRequestBodyMetadata'Variants
    -> Bool)
-> Eq PostCustomersCustomerCardsIdRequestBodyMetadata'Variants
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostCustomersCustomerCardsIdRequestBodyMetadata'Variants
-> PostCustomersCustomerCardsIdRequestBodyMetadata'Variants -> Bool
$c/= :: PostCustomersCustomerCardsIdRequestBodyMetadata'Variants
-> PostCustomersCustomerCardsIdRequestBodyMetadata'Variants -> Bool
== :: PostCustomersCustomerCardsIdRequestBodyMetadata'Variants
-> PostCustomersCustomerCardsIdRequestBodyMetadata'Variants -> Bool
$c== :: PostCustomersCustomerCardsIdRequestBodyMetadata'Variants
-> PostCustomersCustomerCardsIdRequestBodyMetadata'Variants -> Bool
GHC.Classes.Eq)

instance Data.Aeson.Types.ToJSON.ToJSON PostCustomersCustomerCardsIdRequestBodyMetadata'Variants where
  toJSON :: PostCustomersCustomerCardsIdRequestBodyMetadata'Variants -> Value
toJSON (PostCustomersCustomerCardsIdRequestBodyMetadata'Object Object
a) = Object -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON Object
a
  toJSON (PostCustomersCustomerCardsIdRequestBodyMetadata'Variants
PostCustomersCustomerCardsIdRequestBodyMetadata'EmptyString) = Value
""

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

-- | Defines the object schema located at @paths.\/v1\/customers\/{customer}\/cards\/{id}.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.owner@ in the specification.
data PostCustomersCustomerCardsIdRequestBodyOwner' = PostCustomersCustomerCardsIdRequestBodyOwner'
  { -- | address
    PostCustomersCustomerCardsIdRequestBodyOwner'
-> Maybe PostCustomersCustomerCardsIdRequestBodyOwner'Address'
postCustomersCustomerCardsIdRequestBodyOwner'Address :: (GHC.Maybe.Maybe PostCustomersCustomerCardsIdRequestBodyOwner'Address'),
    -- | email
    PostCustomersCustomerCardsIdRequestBodyOwner' -> Maybe Text
postCustomersCustomerCardsIdRequestBodyOwner'Email :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | name
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PostCustomersCustomerCardsIdRequestBodyOwner' -> Maybe Text
postCustomersCustomerCardsIdRequestBodyOwner'Name :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | phone
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PostCustomersCustomerCardsIdRequestBodyOwner' -> Maybe Text
postCustomersCustomerCardsIdRequestBodyOwner'Phone :: (GHC.Maybe.Maybe Data.Text.Internal.Text)
  }
  deriving
    ( Int
-> PostCustomersCustomerCardsIdRequestBodyOwner'
-> String
-> String
[PostCustomersCustomerCardsIdRequestBodyOwner'] -> String -> String
PostCustomersCustomerCardsIdRequestBodyOwner' -> String
(Int
 -> PostCustomersCustomerCardsIdRequestBodyOwner'
 -> String
 -> String)
-> (PostCustomersCustomerCardsIdRequestBodyOwner' -> String)
-> ([PostCustomersCustomerCardsIdRequestBodyOwner']
    -> String -> String)
-> Show PostCustomersCustomerCardsIdRequestBodyOwner'
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostCustomersCustomerCardsIdRequestBodyOwner'] -> String -> String
$cshowList :: [PostCustomersCustomerCardsIdRequestBodyOwner'] -> String -> String
show :: PostCustomersCustomerCardsIdRequestBodyOwner' -> String
$cshow :: PostCustomersCustomerCardsIdRequestBodyOwner' -> String
showsPrec :: Int
-> PostCustomersCustomerCardsIdRequestBodyOwner'
-> String
-> String
$cshowsPrec :: Int
-> PostCustomersCustomerCardsIdRequestBodyOwner'
-> String
-> String
GHC.Show.Show,
      PostCustomersCustomerCardsIdRequestBodyOwner'
-> PostCustomersCustomerCardsIdRequestBodyOwner' -> Bool
(PostCustomersCustomerCardsIdRequestBodyOwner'
 -> PostCustomersCustomerCardsIdRequestBodyOwner' -> Bool)
-> (PostCustomersCustomerCardsIdRequestBodyOwner'
    -> PostCustomersCustomerCardsIdRequestBodyOwner' -> Bool)
-> Eq PostCustomersCustomerCardsIdRequestBodyOwner'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostCustomersCustomerCardsIdRequestBodyOwner'
-> PostCustomersCustomerCardsIdRequestBodyOwner' -> Bool
$c/= :: PostCustomersCustomerCardsIdRequestBodyOwner'
-> PostCustomersCustomerCardsIdRequestBodyOwner' -> Bool
== :: PostCustomersCustomerCardsIdRequestBodyOwner'
-> PostCustomersCustomerCardsIdRequestBodyOwner' -> Bool
$c== :: PostCustomersCustomerCardsIdRequestBodyOwner'
-> PostCustomersCustomerCardsIdRequestBodyOwner' -> Bool
GHC.Classes.Eq
    )

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

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

-- | Create a new 'PostCustomersCustomerCardsIdRequestBodyOwner'' with all required fields.
mkPostCustomersCustomerCardsIdRequestBodyOwner' :: PostCustomersCustomerCardsIdRequestBodyOwner'
mkPostCustomersCustomerCardsIdRequestBodyOwner' :: PostCustomersCustomerCardsIdRequestBodyOwner'
mkPostCustomersCustomerCardsIdRequestBodyOwner' =
  PostCustomersCustomerCardsIdRequestBodyOwner' :: Maybe PostCustomersCustomerCardsIdRequestBodyOwner'Address'
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> PostCustomersCustomerCardsIdRequestBodyOwner'
PostCustomersCustomerCardsIdRequestBodyOwner'
    { postCustomersCustomerCardsIdRequestBodyOwner'Address :: Maybe PostCustomersCustomerCardsIdRequestBodyOwner'Address'
postCustomersCustomerCardsIdRequestBodyOwner'Address = Maybe PostCustomersCustomerCardsIdRequestBodyOwner'Address'
forall a. Maybe a
GHC.Maybe.Nothing,
      postCustomersCustomerCardsIdRequestBodyOwner'Email :: Maybe Text
postCustomersCustomerCardsIdRequestBodyOwner'Email = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      postCustomersCustomerCardsIdRequestBodyOwner'Name :: Maybe Text
postCustomersCustomerCardsIdRequestBodyOwner'Name = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      postCustomersCustomerCardsIdRequestBodyOwner'Phone :: Maybe Text
postCustomersCustomerCardsIdRequestBodyOwner'Phone = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing
    }

-- | Defines the object schema located at @paths.\/v1\/customers\/{customer}\/cards\/{id}.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.owner.properties.address@ in the specification.
data PostCustomersCustomerCardsIdRequestBodyOwner'Address' = PostCustomersCustomerCardsIdRequestBodyOwner'Address'
  { -- | city
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PostCustomersCustomerCardsIdRequestBodyOwner'Address' -> Maybe Text
postCustomersCustomerCardsIdRequestBodyOwner'Address'City :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | country
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PostCustomersCustomerCardsIdRequestBodyOwner'Address' -> Maybe Text
postCustomersCustomerCardsIdRequestBodyOwner'Address'Country :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | line1
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PostCustomersCustomerCardsIdRequestBodyOwner'Address' -> Maybe Text
postCustomersCustomerCardsIdRequestBodyOwner'Address'Line1 :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | line2
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PostCustomersCustomerCardsIdRequestBodyOwner'Address' -> Maybe Text
postCustomersCustomerCardsIdRequestBodyOwner'Address'Line2 :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | postal_code
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PostCustomersCustomerCardsIdRequestBodyOwner'Address' -> Maybe Text
postCustomersCustomerCardsIdRequestBodyOwner'Address'PostalCode :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | state
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PostCustomersCustomerCardsIdRequestBodyOwner'Address' -> Maybe Text
postCustomersCustomerCardsIdRequestBodyOwner'Address'State :: (GHC.Maybe.Maybe Data.Text.Internal.Text)
  }
  deriving
    ( Int
-> PostCustomersCustomerCardsIdRequestBodyOwner'Address'
-> String
-> String
[PostCustomersCustomerCardsIdRequestBodyOwner'Address']
-> String -> String
PostCustomersCustomerCardsIdRequestBodyOwner'Address' -> String
(Int
 -> PostCustomersCustomerCardsIdRequestBodyOwner'Address'
 -> String
 -> String)
-> (PostCustomersCustomerCardsIdRequestBodyOwner'Address'
    -> String)
-> ([PostCustomersCustomerCardsIdRequestBodyOwner'Address']
    -> String -> String)
-> Show PostCustomersCustomerCardsIdRequestBodyOwner'Address'
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostCustomersCustomerCardsIdRequestBodyOwner'Address']
-> String -> String
$cshowList :: [PostCustomersCustomerCardsIdRequestBodyOwner'Address']
-> String -> String
show :: PostCustomersCustomerCardsIdRequestBodyOwner'Address' -> String
$cshow :: PostCustomersCustomerCardsIdRequestBodyOwner'Address' -> String
showsPrec :: Int
-> PostCustomersCustomerCardsIdRequestBodyOwner'Address'
-> String
-> String
$cshowsPrec :: Int
-> PostCustomersCustomerCardsIdRequestBodyOwner'Address'
-> String
-> String
GHC.Show.Show,
      PostCustomersCustomerCardsIdRequestBodyOwner'Address'
-> PostCustomersCustomerCardsIdRequestBodyOwner'Address' -> Bool
(PostCustomersCustomerCardsIdRequestBodyOwner'Address'
 -> PostCustomersCustomerCardsIdRequestBodyOwner'Address' -> Bool)
-> (PostCustomersCustomerCardsIdRequestBodyOwner'Address'
    -> PostCustomersCustomerCardsIdRequestBodyOwner'Address' -> Bool)
-> Eq PostCustomersCustomerCardsIdRequestBodyOwner'Address'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostCustomersCustomerCardsIdRequestBodyOwner'Address'
-> PostCustomersCustomerCardsIdRequestBodyOwner'Address' -> Bool
$c/= :: PostCustomersCustomerCardsIdRequestBodyOwner'Address'
-> PostCustomersCustomerCardsIdRequestBodyOwner'Address' -> Bool
== :: PostCustomersCustomerCardsIdRequestBodyOwner'Address'
-> PostCustomersCustomerCardsIdRequestBodyOwner'Address' -> Bool
$c== :: PostCustomersCustomerCardsIdRequestBodyOwner'Address'
-> PostCustomersCustomerCardsIdRequestBodyOwner'Address' -> Bool
GHC.Classes.Eq
    )

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

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

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

-- | Represents a response of the operation 'postCustomersCustomerCardsId'.
--
-- The response constructor is chosen by the status code of the response. If no case matches (no specific case for the response code, no range case, no default case), 'PostCustomersCustomerCardsIdResponseError' is used.
data PostCustomersCustomerCardsIdResponse
  = -- | Means either no matching case available or a parse error
    PostCustomersCustomerCardsIdResponseError GHC.Base.String
  | -- | Successful response.
    PostCustomersCustomerCardsIdResponse200 PostCustomersCustomerCardsIdResponseBody200
  | -- | Error response.
    PostCustomersCustomerCardsIdResponseDefault Error
  deriving (Int -> PostCustomersCustomerCardsIdResponse -> String -> String
[PostCustomersCustomerCardsIdResponse] -> String -> String
PostCustomersCustomerCardsIdResponse -> String
(Int -> PostCustomersCustomerCardsIdResponse -> String -> String)
-> (PostCustomersCustomerCardsIdResponse -> String)
-> ([PostCustomersCustomerCardsIdResponse] -> String -> String)
-> Show PostCustomersCustomerCardsIdResponse
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostCustomersCustomerCardsIdResponse] -> String -> String
$cshowList :: [PostCustomersCustomerCardsIdResponse] -> String -> String
show :: PostCustomersCustomerCardsIdResponse -> String
$cshow :: PostCustomersCustomerCardsIdResponse -> String
showsPrec :: Int -> PostCustomersCustomerCardsIdResponse -> String -> String
$cshowsPrec :: Int -> PostCustomersCustomerCardsIdResponse -> String -> String
GHC.Show.Show, PostCustomersCustomerCardsIdResponse
-> PostCustomersCustomerCardsIdResponse -> Bool
(PostCustomersCustomerCardsIdResponse
 -> PostCustomersCustomerCardsIdResponse -> Bool)
-> (PostCustomersCustomerCardsIdResponse
    -> PostCustomersCustomerCardsIdResponse -> Bool)
-> Eq PostCustomersCustomerCardsIdResponse
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostCustomersCustomerCardsIdResponse
-> PostCustomersCustomerCardsIdResponse -> Bool
$c/= :: PostCustomersCustomerCardsIdResponse
-> PostCustomersCustomerCardsIdResponse -> Bool
== :: PostCustomersCustomerCardsIdResponse
-> PostCustomersCustomerCardsIdResponse -> Bool
$c== :: PostCustomersCustomerCardsIdResponse
-> PostCustomersCustomerCardsIdResponse -> Bool
GHC.Classes.Eq)

-- | Defines the object schema located at @paths.\/v1\/customers\/{customer}\/cards\/{id}.POST.responses.200.content.application\/json.schema.anyOf@ in the specification.
data PostCustomersCustomerCardsIdResponseBody200 = PostCustomersCustomerCardsIdResponseBody200
  { -- | account: The account this card belongs to. This attribute will not be in the card object if the card belongs to a customer or recipient instead.
    PostCustomersCustomerCardsIdResponseBody200
-> Maybe
     PostCustomersCustomerCardsIdResponseBody200Account'Variants
postCustomersCustomerCardsIdResponseBody200Account :: (GHC.Maybe.Maybe PostCustomersCustomerCardsIdResponseBody200Account'Variants),
    -- | account_holder_name: The name of the person or business that owns the bank account.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PostCustomersCustomerCardsIdResponseBody200 -> Maybe Text
postCustomersCustomerCardsIdResponseBody200AccountHolderName :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | account_holder_type: The type of entity that holds the account. This can be either \`individual\` or \`company\`.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PostCustomersCustomerCardsIdResponseBody200 -> Maybe Text
postCustomersCustomerCardsIdResponseBody200AccountHolderType :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | ach_credit_transfer
    PostCustomersCustomerCardsIdResponseBody200
-> Maybe SourceTypeAchCreditTransfer
postCustomersCustomerCardsIdResponseBody200AchCreditTransfer :: (GHC.Maybe.Maybe SourceTypeAchCreditTransfer),
    -- | ach_debit
    PostCustomersCustomerCardsIdResponseBody200
-> Maybe SourceTypeAchDebit
postCustomersCustomerCardsIdResponseBody200AchDebit :: (GHC.Maybe.Maybe SourceTypeAchDebit),
    -- | acss_debit
    PostCustomersCustomerCardsIdResponseBody200
-> Maybe SourceTypeAcssDebit
postCustomersCustomerCardsIdResponseBody200AcssDebit :: (GHC.Maybe.Maybe SourceTypeAcssDebit),
    -- | address_city: City\/District\/Suburb\/Town\/Village.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PostCustomersCustomerCardsIdResponseBody200 -> Maybe Text
postCustomersCustomerCardsIdResponseBody200AddressCity :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | address_country: Billing address country, if provided when creating card.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PostCustomersCustomerCardsIdResponseBody200 -> Maybe Text
postCustomersCustomerCardsIdResponseBody200AddressCountry :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | address_line1: Address line 1 (Street address\/PO Box\/Company name).
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PostCustomersCustomerCardsIdResponseBody200 -> Maybe Text
postCustomersCustomerCardsIdResponseBody200AddressLine1 :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | address_line1_check: If \`address_line1\` was provided, results of the check: \`pass\`, \`fail\`, \`unavailable\`, or \`unchecked\`.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PostCustomersCustomerCardsIdResponseBody200 -> Maybe Text
postCustomersCustomerCardsIdResponseBody200AddressLine1Check :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | address_line2: Address line 2 (Apartment\/Suite\/Unit\/Building).
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PostCustomersCustomerCardsIdResponseBody200 -> Maybe Text
postCustomersCustomerCardsIdResponseBody200AddressLine2 :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | address_state: State\/County\/Province\/Region.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PostCustomersCustomerCardsIdResponseBody200 -> Maybe Text
postCustomersCustomerCardsIdResponseBody200AddressState :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | address_zip: ZIP or postal code.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PostCustomersCustomerCardsIdResponseBody200 -> Maybe Text
postCustomersCustomerCardsIdResponseBody200AddressZip :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | address_zip_check: If \`address_zip\` was provided, results of the check: \`pass\`, \`fail\`, \`unavailable\`, or \`unchecked\`.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PostCustomersCustomerCardsIdResponseBody200 -> Maybe Text
postCustomersCustomerCardsIdResponseBody200AddressZipCheck :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | alipay
    PostCustomersCustomerCardsIdResponseBody200
-> Maybe SourceTypeAlipay
postCustomersCustomerCardsIdResponseBody200Alipay :: (GHC.Maybe.Maybe SourceTypeAlipay),
    -- | amount: A positive integer in the smallest currency unit (that is, 100 cents for \$1.00, or 1 for ¥1, Japanese Yen being a zero-decimal currency) representing the total amount associated with the source. This is the amount for which the source will be chargeable once ready. Required for \`single_use\` sources.
    PostCustomersCustomerCardsIdResponseBody200 -> Maybe Int
postCustomersCustomerCardsIdResponseBody200Amount :: (GHC.Maybe.Maybe GHC.Types.Int),
    -- | au_becs_debit
    PostCustomersCustomerCardsIdResponseBody200
-> Maybe SourceTypeAuBecsDebit
postCustomersCustomerCardsIdResponseBody200AuBecsDebit :: (GHC.Maybe.Maybe SourceTypeAuBecsDebit),
    -- | available_payout_methods: A set of available payout methods for this card. Only values from this set should be passed as the \`method\` when creating a payout.
    PostCustomersCustomerCardsIdResponseBody200
-> Maybe
     [PostCustomersCustomerCardsIdResponseBody200AvailablePayoutMethods']
postCustomersCustomerCardsIdResponseBody200AvailablePayoutMethods :: (GHC.Maybe.Maybe ([PostCustomersCustomerCardsIdResponseBody200AvailablePayoutMethods'])),
    -- | bancontact
    PostCustomersCustomerCardsIdResponseBody200
-> Maybe SourceTypeBancontact
postCustomersCustomerCardsIdResponseBody200Bancontact :: (GHC.Maybe.Maybe SourceTypeBancontact),
    -- | bank_name: Name of the bank associated with the routing number (e.g., \`WELLS FARGO\`).
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PostCustomersCustomerCardsIdResponseBody200 -> Maybe Text
postCustomersCustomerCardsIdResponseBody200BankName :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | brand: Card brand. Can be \`American Express\`, \`Diners Club\`, \`Discover\`, \`JCB\`, \`MasterCard\`, \`UnionPay\`, \`Visa\`, or \`Unknown\`.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PostCustomersCustomerCardsIdResponseBody200 -> Maybe Text
postCustomersCustomerCardsIdResponseBody200Brand :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | card
    PostCustomersCustomerCardsIdResponseBody200 -> Maybe SourceTypeCard
postCustomersCustomerCardsIdResponseBody200Card :: (GHC.Maybe.Maybe SourceTypeCard),
    -- | card_present
    PostCustomersCustomerCardsIdResponseBody200
-> Maybe SourceTypeCardPresent
postCustomersCustomerCardsIdResponseBody200CardPresent :: (GHC.Maybe.Maybe SourceTypeCardPresent),
    -- | client_secret: The client secret of the source. Used for client-side retrieval using a publishable key.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PostCustomersCustomerCardsIdResponseBody200 -> Maybe Text
postCustomersCustomerCardsIdResponseBody200ClientSecret :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | code_verification:
    PostCustomersCustomerCardsIdResponseBody200
-> Maybe SourceCodeVerificationFlow
postCustomersCustomerCardsIdResponseBody200CodeVerification :: (GHC.Maybe.Maybe SourceCodeVerificationFlow),
    -- | country: Two-letter ISO code representing the country of the card. You could use this attribute to get a sense of the international breakdown of cards you\'ve collected.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PostCustomersCustomerCardsIdResponseBody200 -> Maybe Text
postCustomersCustomerCardsIdResponseBody200Country :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | created: Time at which the object was created. Measured in seconds since the Unix epoch.
    PostCustomersCustomerCardsIdResponseBody200 -> Maybe Int
postCustomersCustomerCardsIdResponseBody200Created :: (GHC.Maybe.Maybe GHC.Types.Int),
    -- | currency: Three-letter [ISO code for currency](https:\/\/stripe.com\/docs\/payouts). Only applicable on accounts (not customers or recipients). The card can be used as a transfer destination for funds in this currency.
    PostCustomersCustomerCardsIdResponseBody200 -> Maybe Text
postCustomersCustomerCardsIdResponseBody200Currency :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | customer: The customer that this card belongs to. This attribute will not be in the card object if the card belongs to an account or recipient instead.
    PostCustomersCustomerCardsIdResponseBody200
-> Maybe
     PostCustomersCustomerCardsIdResponseBody200Customer'Variants
postCustomersCustomerCardsIdResponseBody200Customer :: (GHC.Maybe.Maybe PostCustomersCustomerCardsIdResponseBody200Customer'Variants),
    -- | cvc_check: If a CVC was provided, results of the check: \`pass\`, \`fail\`, \`unavailable\`, or \`unchecked\`. A result of unchecked indicates that CVC was provided but hasn\'t been checked yet. Checks are typically performed when attaching a card to a Customer object, or when creating a charge. For more details, see [Check if a card is valid without a charge](https:\/\/support.stripe.com\/questions\/check-if-a-card-is-valid-without-a-charge).
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PostCustomersCustomerCardsIdResponseBody200 -> Maybe Text
postCustomersCustomerCardsIdResponseBody200CvcCheck :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | default_for_currency: Whether this card is the default external account for its currency.
    PostCustomersCustomerCardsIdResponseBody200 -> Maybe Bool
postCustomersCustomerCardsIdResponseBody200DefaultForCurrency :: (GHC.Maybe.Maybe GHC.Types.Bool),
    -- | dynamic_last4: (For tokenized numbers only.) The last four digits of the device account number.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PostCustomersCustomerCardsIdResponseBody200 -> Maybe Text
postCustomersCustomerCardsIdResponseBody200DynamicLast4 :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | eps
    PostCustomersCustomerCardsIdResponseBody200 -> Maybe SourceTypeEps
postCustomersCustomerCardsIdResponseBody200Eps :: (GHC.Maybe.Maybe SourceTypeEps),
    -- | exp_month: Two-digit number representing the card\'s expiration month.
    PostCustomersCustomerCardsIdResponseBody200 -> Maybe Int
postCustomersCustomerCardsIdResponseBody200ExpMonth :: (GHC.Maybe.Maybe GHC.Types.Int),
    -- | exp_year: Four-digit number representing the card\'s expiration year.
    PostCustomersCustomerCardsIdResponseBody200 -> Maybe Int
postCustomersCustomerCardsIdResponseBody200ExpYear :: (GHC.Maybe.Maybe GHC.Types.Int),
    -- | fingerprint: Uniquely identifies this particular card number. You can use this attribute to check whether two customers who’ve signed up with you are using the same card number, for example. For payment methods that tokenize card information (Apple Pay, Google Pay), the tokenized number might be provided instead of the underlying card number.
    --
    -- *Starting May 1, 2021, card fingerprint in India for Connect will change to allow two fingerprints for the same card --- one for India and one for the rest of the world.*
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PostCustomersCustomerCardsIdResponseBody200 -> Maybe Text
postCustomersCustomerCardsIdResponseBody200Fingerprint :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | flow: The authentication \`flow\` of the source. \`flow\` is one of \`redirect\`, \`receiver\`, \`code_verification\`, \`none\`.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PostCustomersCustomerCardsIdResponseBody200 -> Maybe Text
postCustomersCustomerCardsIdResponseBody200Flow :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | funding: Card funding type. Can be \`credit\`, \`debit\`, \`prepaid\`, or \`unknown\`.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PostCustomersCustomerCardsIdResponseBody200 -> Maybe Text
postCustomersCustomerCardsIdResponseBody200Funding :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | giropay
    PostCustomersCustomerCardsIdResponseBody200
-> Maybe SourceTypeGiropay
postCustomersCustomerCardsIdResponseBody200Giropay :: (GHC.Maybe.Maybe SourceTypeGiropay),
    -- | id: Unique identifier for the object.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PostCustomersCustomerCardsIdResponseBody200 -> Maybe Text
postCustomersCustomerCardsIdResponseBody200Id :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | ideal
    PostCustomersCustomerCardsIdResponseBody200
-> Maybe SourceTypeIdeal
postCustomersCustomerCardsIdResponseBody200Ideal :: (GHC.Maybe.Maybe SourceTypeIdeal),
    -- | klarna
    PostCustomersCustomerCardsIdResponseBody200
-> Maybe SourceTypeKlarna
postCustomersCustomerCardsIdResponseBody200Klarna :: (GHC.Maybe.Maybe SourceTypeKlarna),
    -- | last4: The last four digits of the card.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PostCustomersCustomerCardsIdResponseBody200 -> Maybe Text
postCustomersCustomerCardsIdResponseBody200Last4 :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | livemode: Has the value \`true\` if the object exists in live mode or the value \`false\` if the object exists in test mode.
    PostCustomersCustomerCardsIdResponseBody200 -> Maybe Bool
postCustomersCustomerCardsIdResponseBody200Livemode :: (GHC.Maybe.Maybe GHC.Types.Bool),
    -- | metadata: Set of [key-value pairs](https:\/\/stripe.com\/docs\/api\/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
    PostCustomersCustomerCardsIdResponseBody200 -> Maybe Object
postCustomersCustomerCardsIdResponseBody200Metadata :: (GHC.Maybe.Maybe Data.Aeson.Types.Internal.Object),
    -- | multibanco
    PostCustomersCustomerCardsIdResponseBody200
-> Maybe SourceTypeMultibanco
postCustomersCustomerCardsIdResponseBody200Multibanco :: (GHC.Maybe.Maybe SourceTypeMultibanco),
    -- | name: Cardholder name.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PostCustomersCustomerCardsIdResponseBody200 -> Maybe Text
postCustomersCustomerCardsIdResponseBody200Name :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | object: String representing the object\'s type. Objects of the same type share the same value.
    PostCustomersCustomerCardsIdResponseBody200
-> Maybe PostCustomersCustomerCardsIdResponseBody200Object'
postCustomersCustomerCardsIdResponseBody200Object :: (GHC.Maybe.Maybe PostCustomersCustomerCardsIdResponseBody200Object'),
    -- | owner: Information about the owner of the payment instrument that may be used or required by particular source types.
    PostCustomersCustomerCardsIdResponseBody200
-> Maybe PostCustomersCustomerCardsIdResponseBody200Owner'
postCustomersCustomerCardsIdResponseBody200Owner :: (GHC.Maybe.Maybe PostCustomersCustomerCardsIdResponseBody200Owner'),
    -- | p24
    PostCustomersCustomerCardsIdResponseBody200 -> Maybe SourceTypeP24
postCustomersCustomerCardsIdResponseBody200P24 :: (GHC.Maybe.Maybe SourceTypeP24),
    -- | receiver:
    PostCustomersCustomerCardsIdResponseBody200
-> Maybe SourceReceiverFlow
postCustomersCustomerCardsIdResponseBody200Receiver :: (GHC.Maybe.Maybe SourceReceiverFlow),
    -- | recipient: The recipient that this card belongs to. This attribute will not be in the card object if the card belongs to a customer or account instead.
    PostCustomersCustomerCardsIdResponseBody200
-> Maybe
     PostCustomersCustomerCardsIdResponseBody200Recipient'Variants
postCustomersCustomerCardsIdResponseBody200Recipient :: (GHC.Maybe.Maybe PostCustomersCustomerCardsIdResponseBody200Recipient'Variants),
    -- | redirect:
    PostCustomersCustomerCardsIdResponseBody200
-> Maybe SourceRedirectFlow
postCustomersCustomerCardsIdResponseBody200Redirect :: (GHC.Maybe.Maybe SourceRedirectFlow),
    -- | routing_number: The routing transit number for the bank account.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PostCustomersCustomerCardsIdResponseBody200 -> Maybe Text
postCustomersCustomerCardsIdResponseBody200RoutingNumber :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | sepa_debit
    PostCustomersCustomerCardsIdResponseBody200
-> Maybe SourceTypeSepaDebit
postCustomersCustomerCardsIdResponseBody200SepaDebit :: (GHC.Maybe.Maybe SourceTypeSepaDebit),
    -- | sofort
    PostCustomersCustomerCardsIdResponseBody200
-> Maybe SourceTypeSofort
postCustomersCustomerCardsIdResponseBody200Sofort :: (GHC.Maybe.Maybe SourceTypeSofort),
    -- | source_order:
    PostCustomersCustomerCardsIdResponseBody200 -> Maybe SourceOrder
postCustomersCustomerCardsIdResponseBody200SourceOrder :: (GHC.Maybe.Maybe SourceOrder),
    -- | statement_descriptor: Extra information about a source. This will appear on your customer\'s statement every time you charge the source.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PostCustomersCustomerCardsIdResponseBody200 -> Maybe Text
postCustomersCustomerCardsIdResponseBody200StatementDescriptor :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | status: For bank accounts, possible values are \`new\`, \`validated\`, \`verified\`, \`verification_failed\`, or \`errored\`. A bank account that hasn\'t had any activity or validation performed is \`new\`. If Stripe can determine that the bank account exists, its status will be \`validated\`. Note that there often isn’t enough information to know (e.g., for smaller credit unions), and the validation is not always run. If customer bank account verification has succeeded, the bank account status will be \`verified\`. If the verification failed for any reason, such as microdeposit failure, the status will be \`verification_failed\`. If a transfer sent to this bank account fails, we\'ll set the status to \`errored\` and will not continue to send transfers until the bank details are updated.
    --
    -- For external accounts, possible values are \`new\` and \`errored\`. Validations aren\'t run against external accounts because they\'re only used for payouts. This means the other statuses don\'t apply. If a transfer fails, the status is set to \`errored\` and transfers are stopped until account details are updated.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PostCustomersCustomerCardsIdResponseBody200 -> Maybe Text
postCustomersCustomerCardsIdResponseBody200Status :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | three_d_secure
    PostCustomersCustomerCardsIdResponseBody200
-> Maybe SourceTypeThreeDSecure
postCustomersCustomerCardsIdResponseBody200ThreeDSecure :: (GHC.Maybe.Maybe SourceTypeThreeDSecure),
    -- | tokenization_method: If the card number is tokenized, this is the method that was used. Can be \`android_pay\` (includes Google Pay), \`apple_pay\`, \`masterpass\`, \`visa_checkout\`, or null.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PostCustomersCustomerCardsIdResponseBody200 -> Maybe Text
postCustomersCustomerCardsIdResponseBody200TokenizationMethod :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | type: The \`type\` of the source. The \`type\` is a payment method, one of \`ach_credit_transfer\`, \`ach_debit\`, \`alipay\`, \`bancontact\`, \`card\`, \`card_present\`, \`eps\`, \`giropay\`, \`ideal\`, \`multibanco\`, \`klarna\`, \`p24\`, \`sepa_debit\`, \`sofort\`, \`three_d_secure\`, or \`wechat\`. An additional hash is included on the source with a name matching this value. It contains additional information specific to the [payment method](https:\/\/stripe.com\/docs\/sources) used.
    PostCustomersCustomerCardsIdResponseBody200
-> Maybe PostCustomersCustomerCardsIdResponseBody200Type'
postCustomersCustomerCardsIdResponseBody200Type :: (GHC.Maybe.Maybe PostCustomersCustomerCardsIdResponseBody200Type'),
    -- | usage: Either \`reusable\` or \`single_use\`. Whether this source should be reusable or not. Some source types may or may not be reusable by construction, while others may leave the option at creation. If an incompatible value is passed, an error will be returned.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PostCustomersCustomerCardsIdResponseBody200 -> Maybe Text
postCustomersCustomerCardsIdResponseBody200Usage :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | wechat
    PostCustomersCustomerCardsIdResponseBody200
-> Maybe SourceTypeWechat
postCustomersCustomerCardsIdResponseBody200Wechat :: (GHC.Maybe.Maybe SourceTypeWechat)
  }
  deriving
    ( Int
-> PostCustomersCustomerCardsIdResponseBody200 -> String -> String
[PostCustomersCustomerCardsIdResponseBody200] -> String -> String
PostCustomersCustomerCardsIdResponseBody200 -> String
(Int
 -> PostCustomersCustomerCardsIdResponseBody200 -> String -> String)
-> (PostCustomersCustomerCardsIdResponseBody200 -> String)
-> ([PostCustomersCustomerCardsIdResponseBody200]
    -> String -> String)
-> Show PostCustomersCustomerCardsIdResponseBody200
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostCustomersCustomerCardsIdResponseBody200] -> String -> String
$cshowList :: [PostCustomersCustomerCardsIdResponseBody200] -> String -> String
show :: PostCustomersCustomerCardsIdResponseBody200 -> String
$cshow :: PostCustomersCustomerCardsIdResponseBody200 -> String
showsPrec :: Int
-> PostCustomersCustomerCardsIdResponseBody200 -> String -> String
$cshowsPrec :: Int
-> PostCustomersCustomerCardsIdResponseBody200 -> String -> String
GHC.Show.Show,
      PostCustomersCustomerCardsIdResponseBody200
-> PostCustomersCustomerCardsIdResponseBody200 -> Bool
(PostCustomersCustomerCardsIdResponseBody200
 -> PostCustomersCustomerCardsIdResponseBody200 -> Bool)
-> (PostCustomersCustomerCardsIdResponseBody200
    -> PostCustomersCustomerCardsIdResponseBody200 -> Bool)
-> Eq PostCustomersCustomerCardsIdResponseBody200
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostCustomersCustomerCardsIdResponseBody200
-> PostCustomersCustomerCardsIdResponseBody200 -> Bool
$c/= :: PostCustomersCustomerCardsIdResponseBody200
-> PostCustomersCustomerCardsIdResponseBody200 -> Bool
== :: PostCustomersCustomerCardsIdResponseBody200
-> PostCustomersCustomerCardsIdResponseBody200 -> Bool
$c== :: PostCustomersCustomerCardsIdResponseBody200
-> PostCustomersCustomerCardsIdResponseBody200 -> Bool
GHC.Classes.Eq
    )

instance Data.Aeson.Types.ToJSON.ToJSON PostCustomersCustomerCardsIdResponseBody200 where
  toJSON :: PostCustomersCustomerCardsIdResponseBody200 -> Value
toJSON PostCustomersCustomerCardsIdResponseBody200
obj = [Pair] -> Value
Data.Aeson.Types.Internal.object (Text
"account" Text
-> Maybe
     PostCustomersCustomerCardsIdResponseBody200Account'Variants
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerCardsIdResponseBody200
-> Maybe
     PostCustomersCustomerCardsIdResponseBody200Account'Variants
postCustomersCustomerCardsIdResponseBody200Account PostCustomersCustomerCardsIdResponseBody200
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"account_holder_name" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerCardsIdResponseBody200 -> Maybe Text
postCustomersCustomerCardsIdResponseBody200AccountHolderName PostCustomersCustomerCardsIdResponseBody200
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"account_holder_type" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerCardsIdResponseBody200 -> Maybe Text
postCustomersCustomerCardsIdResponseBody200AccountHolderType PostCustomersCustomerCardsIdResponseBody200
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"ach_credit_transfer" Text -> Maybe SourceTypeAchCreditTransfer -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerCardsIdResponseBody200
-> Maybe SourceTypeAchCreditTransfer
postCustomersCustomerCardsIdResponseBody200AchCreditTransfer PostCustomersCustomerCardsIdResponseBody200
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"ach_debit" Text -> Maybe SourceTypeAchDebit -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerCardsIdResponseBody200
-> Maybe SourceTypeAchDebit
postCustomersCustomerCardsIdResponseBody200AchDebit PostCustomersCustomerCardsIdResponseBody200
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"acss_debit" Text -> Maybe SourceTypeAcssDebit -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerCardsIdResponseBody200
-> Maybe SourceTypeAcssDebit
postCustomersCustomerCardsIdResponseBody200AcssDebit PostCustomersCustomerCardsIdResponseBody200
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"address_city" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerCardsIdResponseBody200 -> Maybe Text
postCustomersCustomerCardsIdResponseBody200AddressCity PostCustomersCustomerCardsIdResponseBody200
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"address_country" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerCardsIdResponseBody200 -> Maybe Text
postCustomersCustomerCardsIdResponseBody200AddressCountry PostCustomersCustomerCardsIdResponseBody200
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"address_line1" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerCardsIdResponseBody200 -> Maybe Text
postCustomersCustomerCardsIdResponseBody200AddressLine1 PostCustomersCustomerCardsIdResponseBody200
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"address_line1_check" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerCardsIdResponseBody200 -> Maybe Text
postCustomersCustomerCardsIdResponseBody200AddressLine1Check PostCustomersCustomerCardsIdResponseBody200
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"address_line2" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerCardsIdResponseBody200 -> Maybe Text
postCustomersCustomerCardsIdResponseBody200AddressLine2 PostCustomersCustomerCardsIdResponseBody200
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"address_state" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerCardsIdResponseBody200 -> Maybe Text
postCustomersCustomerCardsIdResponseBody200AddressState PostCustomersCustomerCardsIdResponseBody200
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"address_zip" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerCardsIdResponseBody200 -> Maybe Text
postCustomersCustomerCardsIdResponseBody200AddressZip PostCustomersCustomerCardsIdResponseBody200
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"address_zip_check" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerCardsIdResponseBody200 -> Maybe Text
postCustomersCustomerCardsIdResponseBody200AddressZipCheck PostCustomersCustomerCardsIdResponseBody200
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"alipay" Text -> Maybe SourceTypeAlipay -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerCardsIdResponseBody200
-> Maybe SourceTypeAlipay
postCustomersCustomerCardsIdResponseBody200Alipay PostCustomersCustomerCardsIdResponseBody200
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"amount" Text -> Maybe Int -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerCardsIdResponseBody200 -> Maybe Int
postCustomersCustomerCardsIdResponseBody200Amount PostCustomersCustomerCardsIdResponseBody200
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"au_becs_debit" Text -> Maybe SourceTypeAuBecsDebit -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerCardsIdResponseBody200
-> Maybe SourceTypeAuBecsDebit
postCustomersCustomerCardsIdResponseBody200AuBecsDebit PostCustomersCustomerCardsIdResponseBody200
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"available_payout_methods" Text
-> Maybe
     [PostCustomersCustomerCardsIdResponseBody200AvailablePayoutMethods']
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerCardsIdResponseBody200
-> Maybe
     [PostCustomersCustomerCardsIdResponseBody200AvailablePayoutMethods']
postCustomersCustomerCardsIdResponseBody200AvailablePayoutMethods PostCustomersCustomerCardsIdResponseBody200
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"bancontact" Text -> Maybe SourceTypeBancontact -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerCardsIdResponseBody200
-> Maybe SourceTypeBancontact
postCustomersCustomerCardsIdResponseBody200Bancontact PostCustomersCustomerCardsIdResponseBody200
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"bank_name" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerCardsIdResponseBody200 -> Maybe Text
postCustomersCustomerCardsIdResponseBody200BankName PostCustomersCustomerCardsIdResponseBody200
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"brand" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerCardsIdResponseBody200 -> Maybe Text
postCustomersCustomerCardsIdResponseBody200Brand PostCustomersCustomerCardsIdResponseBody200
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"card" Text -> Maybe SourceTypeCard -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerCardsIdResponseBody200 -> Maybe SourceTypeCard
postCustomersCustomerCardsIdResponseBody200Card PostCustomersCustomerCardsIdResponseBody200
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"card_present" Text -> Maybe SourceTypeCardPresent -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerCardsIdResponseBody200
-> Maybe SourceTypeCardPresent
postCustomersCustomerCardsIdResponseBody200CardPresent PostCustomersCustomerCardsIdResponseBody200
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"client_secret" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerCardsIdResponseBody200 -> Maybe Text
postCustomersCustomerCardsIdResponseBody200ClientSecret PostCustomersCustomerCardsIdResponseBody200
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"code_verification" Text -> Maybe SourceCodeVerificationFlow -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerCardsIdResponseBody200
-> Maybe SourceCodeVerificationFlow
postCustomersCustomerCardsIdResponseBody200CodeVerification PostCustomersCustomerCardsIdResponseBody200
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"country" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerCardsIdResponseBody200 -> Maybe Text
postCustomersCustomerCardsIdResponseBody200Country PostCustomersCustomerCardsIdResponseBody200
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"created" Text -> Maybe Int -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerCardsIdResponseBody200 -> Maybe Int
postCustomersCustomerCardsIdResponseBody200Created PostCustomersCustomerCardsIdResponseBody200
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"currency" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerCardsIdResponseBody200 -> Maybe Text
postCustomersCustomerCardsIdResponseBody200Currency PostCustomersCustomerCardsIdResponseBody200
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"customer" Text
-> Maybe
     PostCustomersCustomerCardsIdResponseBody200Customer'Variants
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerCardsIdResponseBody200
-> Maybe
     PostCustomersCustomerCardsIdResponseBody200Customer'Variants
postCustomersCustomerCardsIdResponseBody200Customer PostCustomersCustomerCardsIdResponseBody200
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"cvc_check" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerCardsIdResponseBody200 -> Maybe Text
postCustomersCustomerCardsIdResponseBody200CvcCheck PostCustomersCustomerCardsIdResponseBody200
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"default_for_currency" Text -> Maybe Bool -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerCardsIdResponseBody200 -> Maybe Bool
postCustomersCustomerCardsIdResponseBody200DefaultForCurrency PostCustomersCustomerCardsIdResponseBody200
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"dynamic_last4" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerCardsIdResponseBody200 -> Maybe Text
postCustomersCustomerCardsIdResponseBody200DynamicLast4 PostCustomersCustomerCardsIdResponseBody200
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"eps" Text -> Maybe SourceTypeEps -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerCardsIdResponseBody200 -> Maybe SourceTypeEps
postCustomersCustomerCardsIdResponseBody200Eps PostCustomersCustomerCardsIdResponseBody200
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"exp_month" Text -> Maybe Int -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerCardsIdResponseBody200 -> Maybe Int
postCustomersCustomerCardsIdResponseBody200ExpMonth PostCustomersCustomerCardsIdResponseBody200
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"exp_year" Text -> Maybe Int -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerCardsIdResponseBody200 -> Maybe Int
postCustomersCustomerCardsIdResponseBody200ExpYear PostCustomersCustomerCardsIdResponseBody200
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"fingerprint" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerCardsIdResponseBody200 -> Maybe Text
postCustomersCustomerCardsIdResponseBody200Fingerprint PostCustomersCustomerCardsIdResponseBody200
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"flow" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerCardsIdResponseBody200 -> Maybe Text
postCustomersCustomerCardsIdResponseBody200Flow PostCustomersCustomerCardsIdResponseBody200
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"funding" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerCardsIdResponseBody200 -> Maybe Text
postCustomersCustomerCardsIdResponseBody200Funding PostCustomersCustomerCardsIdResponseBody200
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"giropay" Text -> Maybe SourceTypeGiropay -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerCardsIdResponseBody200
-> Maybe SourceTypeGiropay
postCustomersCustomerCardsIdResponseBody200Giropay PostCustomersCustomerCardsIdResponseBody200
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"id" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerCardsIdResponseBody200 -> Maybe Text
postCustomersCustomerCardsIdResponseBody200Id PostCustomersCustomerCardsIdResponseBody200
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"ideal" Text -> Maybe SourceTypeIdeal -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerCardsIdResponseBody200
-> Maybe SourceTypeIdeal
postCustomersCustomerCardsIdResponseBody200Ideal PostCustomersCustomerCardsIdResponseBody200
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"klarna" Text -> Maybe SourceTypeKlarna -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerCardsIdResponseBody200
-> Maybe SourceTypeKlarna
postCustomersCustomerCardsIdResponseBody200Klarna PostCustomersCustomerCardsIdResponseBody200
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"last4" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerCardsIdResponseBody200 -> Maybe Text
postCustomersCustomerCardsIdResponseBody200Last4 PostCustomersCustomerCardsIdResponseBody200
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"livemode" Text -> Maybe Bool -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerCardsIdResponseBody200 -> Maybe Bool
postCustomersCustomerCardsIdResponseBody200Livemode PostCustomersCustomerCardsIdResponseBody200
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"metadata" Text -> Maybe Object -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerCardsIdResponseBody200 -> Maybe Object
postCustomersCustomerCardsIdResponseBody200Metadata PostCustomersCustomerCardsIdResponseBody200
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"multibanco" Text -> Maybe SourceTypeMultibanco -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerCardsIdResponseBody200
-> Maybe SourceTypeMultibanco
postCustomersCustomerCardsIdResponseBody200Multibanco PostCustomersCustomerCardsIdResponseBody200
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"name" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerCardsIdResponseBody200 -> Maybe Text
postCustomersCustomerCardsIdResponseBody200Name PostCustomersCustomerCardsIdResponseBody200
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"object" Text
-> Maybe PostCustomersCustomerCardsIdResponseBody200Object' -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerCardsIdResponseBody200
-> Maybe PostCustomersCustomerCardsIdResponseBody200Object'
postCustomersCustomerCardsIdResponseBody200Object PostCustomersCustomerCardsIdResponseBody200
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"owner" Text
-> Maybe PostCustomersCustomerCardsIdResponseBody200Owner' -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerCardsIdResponseBody200
-> Maybe PostCustomersCustomerCardsIdResponseBody200Owner'
postCustomersCustomerCardsIdResponseBody200Owner PostCustomersCustomerCardsIdResponseBody200
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"p24" Text -> Maybe SourceTypeP24 -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerCardsIdResponseBody200 -> Maybe SourceTypeP24
postCustomersCustomerCardsIdResponseBody200P24 PostCustomersCustomerCardsIdResponseBody200
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"receiver" Text -> Maybe SourceReceiverFlow -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerCardsIdResponseBody200
-> Maybe SourceReceiverFlow
postCustomersCustomerCardsIdResponseBody200Receiver PostCustomersCustomerCardsIdResponseBody200
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"recipient" Text
-> Maybe
     PostCustomersCustomerCardsIdResponseBody200Recipient'Variants
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerCardsIdResponseBody200
-> Maybe
     PostCustomersCustomerCardsIdResponseBody200Recipient'Variants
postCustomersCustomerCardsIdResponseBody200Recipient PostCustomersCustomerCardsIdResponseBody200
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"redirect" Text -> Maybe SourceRedirectFlow -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerCardsIdResponseBody200
-> Maybe SourceRedirectFlow
postCustomersCustomerCardsIdResponseBody200Redirect PostCustomersCustomerCardsIdResponseBody200
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"routing_number" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerCardsIdResponseBody200 -> Maybe Text
postCustomersCustomerCardsIdResponseBody200RoutingNumber PostCustomersCustomerCardsIdResponseBody200
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"sepa_debit" Text -> Maybe SourceTypeSepaDebit -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerCardsIdResponseBody200
-> Maybe SourceTypeSepaDebit
postCustomersCustomerCardsIdResponseBody200SepaDebit PostCustomersCustomerCardsIdResponseBody200
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"sofort" Text -> Maybe SourceTypeSofort -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerCardsIdResponseBody200
-> Maybe SourceTypeSofort
postCustomersCustomerCardsIdResponseBody200Sofort PostCustomersCustomerCardsIdResponseBody200
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"source_order" Text -> Maybe SourceOrder -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerCardsIdResponseBody200 -> Maybe SourceOrder
postCustomersCustomerCardsIdResponseBody200SourceOrder PostCustomersCustomerCardsIdResponseBody200
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"statement_descriptor" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerCardsIdResponseBody200 -> Maybe Text
postCustomersCustomerCardsIdResponseBody200StatementDescriptor PostCustomersCustomerCardsIdResponseBody200
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"status" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerCardsIdResponseBody200 -> Maybe Text
postCustomersCustomerCardsIdResponseBody200Status PostCustomersCustomerCardsIdResponseBody200
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"three_d_secure" Text -> Maybe SourceTypeThreeDSecure -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerCardsIdResponseBody200
-> Maybe SourceTypeThreeDSecure
postCustomersCustomerCardsIdResponseBody200ThreeDSecure PostCustomersCustomerCardsIdResponseBody200
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"tokenization_method" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerCardsIdResponseBody200 -> Maybe Text
postCustomersCustomerCardsIdResponseBody200TokenizationMethod PostCustomersCustomerCardsIdResponseBody200
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"type" Text
-> Maybe PostCustomersCustomerCardsIdResponseBody200Type' -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerCardsIdResponseBody200
-> Maybe PostCustomersCustomerCardsIdResponseBody200Type'
postCustomersCustomerCardsIdResponseBody200Type PostCustomersCustomerCardsIdResponseBody200
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"usage" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerCardsIdResponseBody200 -> Maybe Text
postCustomersCustomerCardsIdResponseBody200Usage PostCustomersCustomerCardsIdResponseBody200
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"wechat" Text -> Maybe SourceTypeWechat -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerCardsIdResponseBody200
-> Maybe SourceTypeWechat
postCustomersCustomerCardsIdResponseBody200Wechat PostCustomersCustomerCardsIdResponseBody200
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: PostCustomersCustomerCardsIdResponseBody200 -> Encoding
toEncoding PostCustomersCustomerCardsIdResponseBody200
obj = Series -> Encoding
Data.Aeson.Encoding.Internal.pairs ((Text
"account" Text
-> Maybe
     PostCustomersCustomerCardsIdResponseBody200Account'Variants
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerCardsIdResponseBody200
-> Maybe
     PostCustomersCustomerCardsIdResponseBody200Account'Variants
postCustomersCustomerCardsIdResponseBody200Account PostCustomersCustomerCardsIdResponseBody200
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"account_holder_name" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerCardsIdResponseBody200 -> Maybe Text
postCustomersCustomerCardsIdResponseBody200AccountHolderName PostCustomersCustomerCardsIdResponseBody200
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"account_holder_type" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerCardsIdResponseBody200 -> Maybe Text
postCustomersCustomerCardsIdResponseBody200AccountHolderType PostCustomersCustomerCardsIdResponseBody200
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"ach_credit_transfer" Text -> Maybe SourceTypeAchCreditTransfer -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerCardsIdResponseBody200
-> Maybe SourceTypeAchCreditTransfer
postCustomersCustomerCardsIdResponseBody200AchCreditTransfer PostCustomersCustomerCardsIdResponseBody200
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"ach_debit" Text -> Maybe SourceTypeAchDebit -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerCardsIdResponseBody200
-> Maybe SourceTypeAchDebit
postCustomersCustomerCardsIdResponseBody200AchDebit PostCustomersCustomerCardsIdResponseBody200
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"acss_debit" Text -> Maybe SourceTypeAcssDebit -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerCardsIdResponseBody200
-> Maybe SourceTypeAcssDebit
postCustomersCustomerCardsIdResponseBody200AcssDebit PostCustomersCustomerCardsIdResponseBody200
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"address_city" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerCardsIdResponseBody200 -> Maybe Text
postCustomersCustomerCardsIdResponseBody200AddressCity PostCustomersCustomerCardsIdResponseBody200
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"address_country" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerCardsIdResponseBody200 -> Maybe Text
postCustomersCustomerCardsIdResponseBody200AddressCountry PostCustomersCustomerCardsIdResponseBody200
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"address_line1" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerCardsIdResponseBody200 -> Maybe Text
postCustomersCustomerCardsIdResponseBody200AddressLine1 PostCustomersCustomerCardsIdResponseBody200
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"address_line1_check" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerCardsIdResponseBody200 -> Maybe Text
postCustomersCustomerCardsIdResponseBody200AddressLine1Check PostCustomersCustomerCardsIdResponseBody200
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"address_line2" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerCardsIdResponseBody200 -> Maybe Text
postCustomersCustomerCardsIdResponseBody200AddressLine2 PostCustomersCustomerCardsIdResponseBody200
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"address_state" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerCardsIdResponseBody200 -> Maybe Text
postCustomersCustomerCardsIdResponseBody200AddressState PostCustomersCustomerCardsIdResponseBody200
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"address_zip" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerCardsIdResponseBody200 -> Maybe Text
postCustomersCustomerCardsIdResponseBody200AddressZip PostCustomersCustomerCardsIdResponseBody200
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"address_zip_check" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerCardsIdResponseBody200 -> Maybe Text
postCustomersCustomerCardsIdResponseBody200AddressZipCheck PostCustomersCustomerCardsIdResponseBody200
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"alipay" Text -> Maybe SourceTypeAlipay -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerCardsIdResponseBody200
-> Maybe SourceTypeAlipay
postCustomersCustomerCardsIdResponseBody200Alipay PostCustomersCustomerCardsIdResponseBody200
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"amount" Text -> Maybe Int -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerCardsIdResponseBody200 -> Maybe Int
postCustomersCustomerCardsIdResponseBody200Amount PostCustomersCustomerCardsIdResponseBody200
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"au_becs_debit" Text -> Maybe SourceTypeAuBecsDebit -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerCardsIdResponseBody200
-> Maybe SourceTypeAuBecsDebit
postCustomersCustomerCardsIdResponseBody200AuBecsDebit PostCustomersCustomerCardsIdResponseBody200
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"available_payout_methods" Text
-> Maybe
     [PostCustomersCustomerCardsIdResponseBody200AvailablePayoutMethods']
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerCardsIdResponseBody200
-> Maybe
     [PostCustomersCustomerCardsIdResponseBody200AvailablePayoutMethods']
postCustomersCustomerCardsIdResponseBody200AvailablePayoutMethods PostCustomersCustomerCardsIdResponseBody200
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"bancontact" Text -> Maybe SourceTypeBancontact -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerCardsIdResponseBody200
-> Maybe SourceTypeBancontact
postCustomersCustomerCardsIdResponseBody200Bancontact PostCustomersCustomerCardsIdResponseBody200
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"bank_name" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerCardsIdResponseBody200 -> Maybe Text
postCustomersCustomerCardsIdResponseBody200BankName PostCustomersCustomerCardsIdResponseBody200
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"brand" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerCardsIdResponseBody200 -> Maybe Text
postCustomersCustomerCardsIdResponseBody200Brand PostCustomersCustomerCardsIdResponseBody200
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"card" Text -> Maybe SourceTypeCard -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerCardsIdResponseBody200 -> Maybe SourceTypeCard
postCustomersCustomerCardsIdResponseBody200Card PostCustomersCustomerCardsIdResponseBody200
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"card_present" Text -> Maybe SourceTypeCardPresent -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerCardsIdResponseBody200
-> Maybe SourceTypeCardPresent
postCustomersCustomerCardsIdResponseBody200CardPresent PostCustomersCustomerCardsIdResponseBody200
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"client_secret" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerCardsIdResponseBody200 -> Maybe Text
postCustomersCustomerCardsIdResponseBody200ClientSecret PostCustomersCustomerCardsIdResponseBody200
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"code_verification" Text -> Maybe SourceCodeVerificationFlow -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerCardsIdResponseBody200
-> Maybe SourceCodeVerificationFlow
postCustomersCustomerCardsIdResponseBody200CodeVerification PostCustomersCustomerCardsIdResponseBody200
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"country" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerCardsIdResponseBody200 -> Maybe Text
postCustomersCustomerCardsIdResponseBody200Country PostCustomersCustomerCardsIdResponseBody200
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"created" Text -> Maybe Int -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerCardsIdResponseBody200 -> Maybe Int
postCustomersCustomerCardsIdResponseBody200Created PostCustomersCustomerCardsIdResponseBody200
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"currency" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerCardsIdResponseBody200 -> Maybe Text
postCustomersCustomerCardsIdResponseBody200Currency PostCustomersCustomerCardsIdResponseBody200
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"customer" Text
-> Maybe
     PostCustomersCustomerCardsIdResponseBody200Customer'Variants
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerCardsIdResponseBody200
-> Maybe
     PostCustomersCustomerCardsIdResponseBody200Customer'Variants
postCustomersCustomerCardsIdResponseBody200Customer PostCustomersCustomerCardsIdResponseBody200
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"cvc_check" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerCardsIdResponseBody200 -> Maybe Text
postCustomersCustomerCardsIdResponseBody200CvcCheck PostCustomersCustomerCardsIdResponseBody200
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"default_for_currency" Text -> Maybe Bool -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerCardsIdResponseBody200 -> Maybe Bool
postCustomersCustomerCardsIdResponseBody200DefaultForCurrency PostCustomersCustomerCardsIdResponseBody200
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"dynamic_last4" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerCardsIdResponseBody200 -> Maybe Text
postCustomersCustomerCardsIdResponseBody200DynamicLast4 PostCustomersCustomerCardsIdResponseBody200
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"eps" Text -> Maybe SourceTypeEps -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerCardsIdResponseBody200 -> Maybe SourceTypeEps
postCustomersCustomerCardsIdResponseBody200Eps PostCustomersCustomerCardsIdResponseBody200
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"exp_month" Text -> Maybe Int -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerCardsIdResponseBody200 -> Maybe Int
postCustomersCustomerCardsIdResponseBody200ExpMonth PostCustomersCustomerCardsIdResponseBody200
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"exp_year" Text -> Maybe Int -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerCardsIdResponseBody200 -> Maybe Int
postCustomersCustomerCardsIdResponseBody200ExpYear PostCustomersCustomerCardsIdResponseBody200
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"fingerprint" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerCardsIdResponseBody200 -> Maybe Text
postCustomersCustomerCardsIdResponseBody200Fingerprint PostCustomersCustomerCardsIdResponseBody200
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"flow" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerCardsIdResponseBody200 -> Maybe Text
postCustomersCustomerCardsIdResponseBody200Flow PostCustomersCustomerCardsIdResponseBody200
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"funding" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerCardsIdResponseBody200 -> Maybe Text
postCustomersCustomerCardsIdResponseBody200Funding PostCustomersCustomerCardsIdResponseBody200
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"giropay" Text -> Maybe SourceTypeGiropay -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerCardsIdResponseBody200
-> Maybe SourceTypeGiropay
postCustomersCustomerCardsIdResponseBody200Giropay PostCustomersCustomerCardsIdResponseBody200
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"id" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerCardsIdResponseBody200 -> Maybe Text
postCustomersCustomerCardsIdResponseBody200Id PostCustomersCustomerCardsIdResponseBody200
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"ideal" Text -> Maybe SourceTypeIdeal -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerCardsIdResponseBody200
-> Maybe SourceTypeIdeal
postCustomersCustomerCardsIdResponseBody200Ideal PostCustomersCustomerCardsIdResponseBody200
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"klarna" Text -> Maybe SourceTypeKlarna -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerCardsIdResponseBody200
-> Maybe SourceTypeKlarna
postCustomersCustomerCardsIdResponseBody200Klarna PostCustomersCustomerCardsIdResponseBody200
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"last4" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerCardsIdResponseBody200 -> Maybe Text
postCustomersCustomerCardsIdResponseBody200Last4 PostCustomersCustomerCardsIdResponseBody200
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"livemode" Text -> Maybe Bool -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerCardsIdResponseBody200 -> Maybe Bool
postCustomersCustomerCardsIdResponseBody200Livemode PostCustomersCustomerCardsIdResponseBody200
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"metadata" Text -> Maybe Object -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerCardsIdResponseBody200 -> Maybe Object
postCustomersCustomerCardsIdResponseBody200Metadata PostCustomersCustomerCardsIdResponseBody200
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"multibanco" Text -> Maybe SourceTypeMultibanco -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerCardsIdResponseBody200
-> Maybe SourceTypeMultibanco
postCustomersCustomerCardsIdResponseBody200Multibanco PostCustomersCustomerCardsIdResponseBody200
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"name" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerCardsIdResponseBody200 -> Maybe Text
postCustomersCustomerCardsIdResponseBody200Name PostCustomersCustomerCardsIdResponseBody200
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"object" Text
-> Maybe PostCustomersCustomerCardsIdResponseBody200Object'
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerCardsIdResponseBody200
-> Maybe PostCustomersCustomerCardsIdResponseBody200Object'
postCustomersCustomerCardsIdResponseBody200Object PostCustomersCustomerCardsIdResponseBody200
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"owner" Text
-> Maybe PostCustomersCustomerCardsIdResponseBody200Owner'
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerCardsIdResponseBody200
-> Maybe PostCustomersCustomerCardsIdResponseBody200Owner'
postCustomersCustomerCardsIdResponseBody200Owner PostCustomersCustomerCardsIdResponseBody200
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"p24" Text -> Maybe SourceTypeP24 -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerCardsIdResponseBody200 -> Maybe SourceTypeP24
postCustomersCustomerCardsIdResponseBody200P24 PostCustomersCustomerCardsIdResponseBody200
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"receiver" Text -> Maybe SourceReceiverFlow -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerCardsIdResponseBody200
-> Maybe SourceReceiverFlow
postCustomersCustomerCardsIdResponseBody200Receiver PostCustomersCustomerCardsIdResponseBody200
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"recipient" Text
-> Maybe
     PostCustomersCustomerCardsIdResponseBody200Recipient'Variants
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerCardsIdResponseBody200
-> Maybe
     PostCustomersCustomerCardsIdResponseBody200Recipient'Variants
postCustomersCustomerCardsIdResponseBody200Recipient PostCustomersCustomerCardsIdResponseBody200
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"redirect" Text -> Maybe SourceRedirectFlow -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerCardsIdResponseBody200
-> Maybe SourceRedirectFlow
postCustomersCustomerCardsIdResponseBody200Redirect PostCustomersCustomerCardsIdResponseBody200
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"routing_number" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerCardsIdResponseBody200 -> Maybe Text
postCustomersCustomerCardsIdResponseBody200RoutingNumber PostCustomersCustomerCardsIdResponseBody200
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"sepa_debit" Text -> Maybe SourceTypeSepaDebit -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerCardsIdResponseBody200
-> Maybe SourceTypeSepaDebit
postCustomersCustomerCardsIdResponseBody200SepaDebit PostCustomersCustomerCardsIdResponseBody200
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"sofort" Text -> Maybe SourceTypeSofort -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerCardsIdResponseBody200
-> Maybe SourceTypeSofort
postCustomersCustomerCardsIdResponseBody200Sofort PostCustomersCustomerCardsIdResponseBody200
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"source_order" Text -> Maybe SourceOrder -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerCardsIdResponseBody200 -> Maybe SourceOrder
postCustomersCustomerCardsIdResponseBody200SourceOrder PostCustomersCustomerCardsIdResponseBody200
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"statement_descriptor" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerCardsIdResponseBody200 -> Maybe Text
postCustomersCustomerCardsIdResponseBody200StatementDescriptor PostCustomersCustomerCardsIdResponseBody200
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"status" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerCardsIdResponseBody200 -> Maybe Text
postCustomersCustomerCardsIdResponseBody200Status PostCustomersCustomerCardsIdResponseBody200
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"three_d_secure" Text -> Maybe SourceTypeThreeDSecure -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerCardsIdResponseBody200
-> Maybe SourceTypeThreeDSecure
postCustomersCustomerCardsIdResponseBody200ThreeDSecure PostCustomersCustomerCardsIdResponseBody200
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"tokenization_method" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerCardsIdResponseBody200 -> Maybe Text
postCustomersCustomerCardsIdResponseBody200TokenizationMethod PostCustomersCustomerCardsIdResponseBody200
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"type" Text
-> Maybe PostCustomersCustomerCardsIdResponseBody200Type' -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerCardsIdResponseBody200
-> Maybe PostCustomersCustomerCardsIdResponseBody200Type'
postCustomersCustomerCardsIdResponseBody200Type PostCustomersCustomerCardsIdResponseBody200
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"usage" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerCardsIdResponseBody200 -> Maybe Text
postCustomersCustomerCardsIdResponseBody200Usage PostCustomersCustomerCardsIdResponseBody200
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> (Text
"wechat" Text -> Maybe SourceTypeWechat -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostCustomersCustomerCardsIdResponseBody200
-> Maybe SourceTypeWechat
postCustomersCustomerCardsIdResponseBody200Wechat PostCustomersCustomerCardsIdResponseBody200
obj))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))

instance Data.Aeson.Types.FromJSON.FromJSON PostCustomersCustomerCardsIdResponseBody200 where
  parseJSON :: Value -> Parser PostCustomersCustomerCardsIdResponseBody200
parseJSON = String
-> (Object -> Parser PostCustomersCustomerCardsIdResponseBody200)
-> Value
-> Parser PostCustomersCustomerCardsIdResponseBody200
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.Aeson.Types.FromJSON.withObject String
"PostCustomersCustomerCardsIdResponseBody200" (\Object
obj -> ((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((Maybe PostCustomersCustomerCardsIdResponseBody200Account'Variants
 -> Maybe Text
 -> Maybe Text
 -> Maybe SourceTypeAchCreditTransfer
 -> Maybe SourceTypeAchDebit
 -> Maybe SourceTypeAcssDebit
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe SourceTypeAlipay
 -> Maybe Int
 -> Maybe SourceTypeAuBecsDebit
 -> Maybe
      [PostCustomersCustomerCardsIdResponseBody200AvailablePayoutMethods']
 -> Maybe SourceTypeBancontact
 -> Maybe Text
 -> Maybe Text
 -> Maybe SourceTypeCard
 -> Maybe SourceTypeCardPresent
 -> Maybe Text
 -> Maybe SourceCodeVerificationFlow
 -> Maybe Text
 -> Maybe Int
 -> Maybe Text
 -> Maybe
      PostCustomersCustomerCardsIdResponseBody200Customer'Variants
 -> Maybe Text
 -> Maybe Bool
 -> Maybe Text
 -> Maybe SourceTypeEps
 -> Maybe Int
 -> Maybe Int
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe SourceTypeGiropay
 -> Maybe Text
 -> Maybe SourceTypeIdeal
 -> Maybe SourceTypeKlarna
 -> Maybe Text
 -> Maybe Bool
 -> Maybe Object
 -> Maybe SourceTypeMultibanco
 -> Maybe Text
 -> Maybe PostCustomersCustomerCardsIdResponseBody200Object'
 -> Maybe PostCustomersCustomerCardsIdResponseBody200Owner'
 -> Maybe SourceTypeP24
 -> Maybe SourceReceiverFlow
 -> Maybe
      PostCustomersCustomerCardsIdResponseBody200Recipient'Variants
 -> Maybe SourceRedirectFlow
 -> Maybe Text
 -> Maybe SourceTypeSepaDebit
 -> Maybe SourceTypeSofort
 -> Maybe SourceOrder
 -> Maybe Text
 -> Maybe Text
 -> Maybe SourceTypeThreeDSecure
 -> Maybe Text
 -> Maybe PostCustomersCustomerCardsIdResponseBody200Type'
 -> Maybe Text
 -> Maybe SourceTypeWechat
 -> PostCustomersCustomerCardsIdResponseBody200)
-> Parser
     (Maybe PostCustomersCustomerCardsIdResponseBody200Account'Variants
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeAchCreditTransfer
      -> Maybe SourceTypeAchDebit
      -> Maybe SourceTypeAcssDebit
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeAlipay
      -> Maybe Int
      -> Maybe SourceTypeAuBecsDebit
      -> Maybe
           [PostCustomersCustomerCardsIdResponseBody200AvailablePayoutMethods']
      -> Maybe SourceTypeBancontact
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeCard
      -> Maybe SourceTypeCardPresent
      -> Maybe Text
      -> Maybe SourceCodeVerificationFlow
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe
           PostCustomersCustomerCardsIdResponseBody200Customer'Variants
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeEps
      -> Maybe Int
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeGiropay
      -> Maybe Text
      -> Maybe SourceTypeIdeal
      -> Maybe SourceTypeKlarna
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Object
      -> Maybe SourceTypeMultibanco
      -> Maybe Text
      -> Maybe PostCustomersCustomerCardsIdResponseBody200Object'
      -> Maybe PostCustomersCustomerCardsIdResponseBody200Owner'
      -> Maybe SourceTypeP24
      -> Maybe SourceReceiverFlow
      -> Maybe
           PostCustomersCustomerCardsIdResponseBody200Recipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe PostCustomersCustomerCardsIdResponseBody200Type'
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> PostCustomersCustomerCardsIdResponseBody200)
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure Maybe PostCustomersCustomerCardsIdResponseBody200Account'Variants
-> Maybe Text
-> Maybe Text
-> Maybe SourceTypeAchCreditTransfer
-> Maybe SourceTypeAchDebit
-> Maybe SourceTypeAcssDebit
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe SourceTypeAlipay
-> Maybe Int
-> Maybe SourceTypeAuBecsDebit
-> Maybe
     [PostCustomersCustomerCardsIdResponseBody200AvailablePayoutMethods']
-> Maybe SourceTypeBancontact
-> Maybe Text
-> Maybe Text
-> Maybe SourceTypeCard
-> Maybe SourceTypeCardPresent
-> Maybe Text
-> Maybe SourceCodeVerificationFlow
-> Maybe Text
-> Maybe Int
-> Maybe Text
-> Maybe
     PostCustomersCustomerCardsIdResponseBody200Customer'Variants
-> Maybe Text
-> Maybe Bool
-> Maybe Text
-> Maybe SourceTypeEps
-> Maybe Int
-> Maybe Int
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe SourceTypeGiropay
-> Maybe Text
-> Maybe SourceTypeIdeal
-> Maybe SourceTypeKlarna
-> Maybe Text
-> Maybe Bool
-> Maybe Object
-> Maybe SourceTypeMultibanco
-> Maybe Text
-> Maybe PostCustomersCustomerCardsIdResponseBody200Object'
-> Maybe PostCustomersCustomerCardsIdResponseBody200Owner'
-> Maybe SourceTypeP24
-> Maybe SourceReceiverFlow
-> Maybe
     PostCustomersCustomerCardsIdResponseBody200Recipient'Variants
-> Maybe SourceRedirectFlow
-> Maybe Text
-> Maybe SourceTypeSepaDebit
-> Maybe SourceTypeSofort
-> Maybe SourceOrder
-> Maybe Text
-> Maybe Text
-> Maybe SourceTypeThreeDSecure
-> Maybe Text
-> Maybe PostCustomersCustomerCardsIdResponseBody200Type'
-> Maybe Text
-> Maybe SourceTypeWechat
-> PostCustomersCustomerCardsIdResponseBody200
PostCustomersCustomerCardsIdResponseBody200 Parser
  (Maybe PostCustomersCustomerCardsIdResponseBody200Account'Variants
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeAchCreditTransfer
   -> Maybe SourceTypeAchDebit
   -> Maybe SourceTypeAcssDebit
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeAlipay
   -> Maybe Int
   -> Maybe SourceTypeAuBecsDebit
   -> Maybe
        [PostCustomersCustomerCardsIdResponseBody200AvailablePayoutMethods']
   -> Maybe SourceTypeBancontact
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeCard
   -> Maybe SourceTypeCardPresent
   -> Maybe Text
   -> Maybe SourceCodeVerificationFlow
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe
        PostCustomersCustomerCardsIdResponseBody200Customer'Variants
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeEps
   -> Maybe Int
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeGiropay
   -> Maybe Text
   -> Maybe SourceTypeIdeal
   -> Maybe SourceTypeKlarna
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Object
   -> Maybe SourceTypeMultibanco
   -> Maybe Text
   -> Maybe PostCustomersCustomerCardsIdResponseBody200Object'
   -> Maybe PostCustomersCustomerCardsIdResponseBody200Owner'
   -> Maybe SourceTypeP24
   -> Maybe SourceReceiverFlow
   -> Maybe
        PostCustomersCustomerCardsIdResponseBody200Recipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe PostCustomersCustomerCardsIdResponseBody200Type'
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> PostCustomersCustomerCardsIdResponseBody200)
-> Parser
     (Maybe PostCustomersCustomerCardsIdResponseBody200Account'Variants)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeAchCreditTransfer
      -> Maybe SourceTypeAchDebit
      -> Maybe SourceTypeAcssDebit
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeAlipay
      -> Maybe Int
      -> Maybe SourceTypeAuBecsDebit
      -> Maybe
           [PostCustomersCustomerCardsIdResponseBody200AvailablePayoutMethods']
      -> Maybe SourceTypeBancontact
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeCard
      -> Maybe SourceTypeCardPresent
      -> Maybe Text
      -> Maybe SourceCodeVerificationFlow
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe
           PostCustomersCustomerCardsIdResponseBody200Customer'Variants
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeEps
      -> Maybe Int
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeGiropay
      -> Maybe Text
      -> Maybe SourceTypeIdeal
      -> Maybe SourceTypeKlarna
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Object
      -> Maybe SourceTypeMultibanco
      -> Maybe Text
      -> Maybe PostCustomersCustomerCardsIdResponseBody200Object'
      -> Maybe PostCustomersCustomerCardsIdResponseBody200Owner'
      -> Maybe SourceTypeP24
      -> Maybe SourceReceiverFlow
      -> Maybe
           PostCustomersCustomerCardsIdResponseBody200Recipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe PostCustomersCustomerCardsIdResponseBody200Type'
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> PostCustomersCustomerCardsIdResponseBody200)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     (Maybe PostCustomersCustomerCardsIdResponseBody200Account'Variants)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"account")) Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeAchCreditTransfer
   -> Maybe SourceTypeAchDebit
   -> Maybe SourceTypeAcssDebit
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeAlipay
   -> Maybe Int
   -> Maybe SourceTypeAuBecsDebit
   -> Maybe
        [PostCustomersCustomerCardsIdResponseBody200AvailablePayoutMethods']
   -> Maybe SourceTypeBancontact
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeCard
   -> Maybe SourceTypeCardPresent
   -> Maybe Text
   -> Maybe SourceCodeVerificationFlow
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe
        PostCustomersCustomerCardsIdResponseBody200Customer'Variants
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeEps
   -> Maybe Int
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeGiropay
   -> Maybe Text
   -> Maybe SourceTypeIdeal
   -> Maybe SourceTypeKlarna
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Object
   -> Maybe SourceTypeMultibanco
   -> Maybe Text
   -> Maybe PostCustomersCustomerCardsIdResponseBody200Object'
   -> Maybe PostCustomersCustomerCardsIdResponseBody200Owner'
   -> Maybe SourceTypeP24
   -> Maybe SourceReceiverFlow
   -> Maybe
        PostCustomersCustomerCardsIdResponseBody200Recipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe PostCustomersCustomerCardsIdResponseBody200Type'
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> PostCustomersCustomerCardsIdResponseBody200)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe SourceTypeAchCreditTransfer
      -> Maybe SourceTypeAchDebit
      -> Maybe SourceTypeAcssDebit
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeAlipay
      -> Maybe Int
      -> Maybe SourceTypeAuBecsDebit
      -> Maybe
           [PostCustomersCustomerCardsIdResponseBody200AvailablePayoutMethods']
      -> Maybe SourceTypeBancontact
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeCard
      -> Maybe SourceTypeCardPresent
      -> Maybe Text
      -> Maybe SourceCodeVerificationFlow
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe
           PostCustomersCustomerCardsIdResponseBody200Customer'Variants
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeEps
      -> Maybe Int
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeGiropay
      -> Maybe Text
      -> Maybe SourceTypeIdeal
      -> Maybe SourceTypeKlarna
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Object
      -> Maybe SourceTypeMultibanco
      -> Maybe Text
      -> Maybe PostCustomersCustomerCardsIdResponseBody200Object'
      -> Maybe PostCustomersCustomerCardsIdResponseBody200Owner'
      -> Maybe SourceTypeP24
      -> Maybe SourceReceiverFlow
      -> Maybe
           PostCustomersCustomerCardsIdResponseBody200Recipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe PostCustomersCustomerCardsIdResponseBody200Type'
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> PostCustomersCustomerCardsIdResponseBody200)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"account_holder_name")) Parser
  (Maybe Text
   -> Maybe SourceTypeAchCreditTransfer
   -> Maybe SourceTypeAchDebit
   -> Maybe SourceTypeAcssDebit
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeAlipay
   -> Maybe Int
   -> Maybe SourceTypeAuBecsDebit
   -> Maybe
        [PostCustomersCustomerCardsIdResponseBody200AvailablePayoutMethods']
   -> Maybe SourceTypeBancontact
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeCard
   -> Maybe SourceTypeCardPresent
   -> Maybe Text
   -> Maybe SourceCodeVerificationFlow
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe
        PostCustomersCustomerCardsIdResponseBody200Customer'Variants
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeEps
   -> Maybe Int
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeGiropay
   -> Maybe Text
   -> Maybe SourceTypeIdeal
   -> Maybe SourceTypeKlarna
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Object
   -> Maybe SourceTypeMultibanco
   -> Maybe Text
   -> Maybe PostCustomersCustomerCardsIdResponseBody200Object'
   -> Maybe PostCustomersCustomerCardsIdResponseBody200Owner'
   -> Maybe SourceTypeP24
   -> Maybe SourceReceiverFlow
   -> Maybe
        PostCustomersCustomerCardsIdResponseBody200Recipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe PostCustomersCustomerCardsIdResponseBody200Type'
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> PostCustomersCustomerCardsIdResponseBody200)
-> Parser (Maybe Text)
-> Parser
     (Maybe SourceTypeAchCreditTransfer
      -> Maybe SourceTypeAchDebit
      -> Maybe SourceTypeAcssDebit
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeAlipay
      -> Maybe Int
      -> Maybe SourceTypeAuBecsDebit
      -> Maybe
           [PostCustomersCustomerCardsIdResponseBody200AvailablePayoutMethods']
      -> Maybe SourceTypeBancontact
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeCard
      -> Maybe SourceTypeCardPresent
      -> Maybe Text
      -> Maybe SourceCodeVerificationFlow
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe
           PostCustomersCustomerCardsIdResponseBody200Customer'Variants
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeEps
      -> Maybe Int
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeGiropay
      -> Maybe Text
      -> Maybe SourceTypeIdeal
      -> Maybe SourceTypeKlarna
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Object
      -> Maybe SourceTypeMultibanco
      -> Maybe Text
      -> Maybe PostCustomersCustomerCardsIdResponseBody200Object'
      -> Maybe PostCustomersCustomerCardsIdResponseBody200Owner'
      -> Maybe SourceTypeP24
      -> Maybe SourceReceiverFlow
      -> Maybe
           PostCustomersCustomerCardsIdResponseBody200Recipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe PostCustomersCustomerCardsIdResponseBody200Type'
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> PostCustomersCustomerCardsIdResponseBody200)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"account_holder_type")) Parser
  (Maybe SourceTypeAchCreditTransfer
   -> Maybe SourceTypeAchDebit
   -> Maybe SourceTypeAcssDebit
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeAlipay
   -> Maybe Int
   -> Maybe SourceTypeAuBecsDebit
   -> Maybe
        [PostCustomersCustomerCardsIdResponseBody200AvailablePayoutMethods']
   -> Maybe SourceTypeBancontact
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeCard
   -> Maybe SourceTypeCardPresent
   -> Maybe Text
   -> Maybe SourceCodeVerificationFlow
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe
        PostCustomersCustomerCardsIdResponseBody200Customer'Variants
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeEps
   -> Maybe Int
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeGiropay
   -> Maybe Text
   -> Maybe SourceTypeIdeal
   -> Maybe SourceTypeKlarna
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Object
   -> Maybe SourceTypeMultibanco
   -> Maybe Text
   -> Maybe PostCustomersCustomerCardsIdResponseBody200Object'
   -> Maybe PostCustomersCustomerCardsIdResponseBody200Owner'
   -> Maybe SourceTypeP24
   -> Maybe SourceReceiverFlow
   -> Maybe
        PostCustomersCustomerCardsIdResponseBody200Recipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe PostCustomersCustomerCardsIdResponseBody200Type'
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> PostCustomersCustomerCardsIdResponseBody200)
-> Parser (Maybe SourceTypeAchCreditTransfer)
-> Parser
     (Maybe SourceTypeAchDebit
      -> Maybe SourceTypeAcssDebit
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeAlipay
      -> Maybe Int
      -> Maybe SourceTypeAuBecsDebit
      -> Maybe
           [PostCustomersCustomerCardsIdResponseBody200AvailablePayoutMethods']
      -> Maybe SourceTypeBancontact
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeCard
      -> Maybe SourceTypeCardPresent
      -> Maybe Text
      -> Maybe SourceCodeVerificationFlow
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe
           PostCustomersCustomerCardsIdResponseBody200Customer'Variants
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeEps
      -> Maybe Int
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeGiropay
      -> Maybe Text
      -> Maybe SourceTypeIdeal
      -> Maybe SourceTypeKlarna
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Object
      -> Maybe SourceTypeMultibanco
      -> Maybe Text
      -> Maybe PostCustomersCustomerCardsIdResponseBody200Object'
      -> Maybe PostCustomersCustomerCardsIdResponseBody200Owner'
      -> Maybe SourceTypeP24
      -> Maybe SourceReceiverFlow
      -> Maybe
           PostCustomersCustomerCardsIdResponseBody200Recipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe PostCustomersCustomerCardsIdResponseBody200Type'
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> PostCustomersCustomerCardsIdResponseBody200)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe SourceTypeAchCreditTransfer)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"ach_credit_transfer")) Parser
  (Maybe SourceTypeAchDebit
   -> Maybe SourceTypeAcssDebit
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeAlipay
   -> Maybe Int
   -> Maybe SourceTypeAuBecsDebit
   -> Maybe
        [PostCustomersCustomerCardsIdResponseBody200AvailablePayoutMethods']
   -> Maybe SourceTypeBancontact
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeCard
   -> Maybe SourceTypeCardPresent
   -> Maybe Text
   -> Maybe SourceCodeVerificationFlow
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe
        PostCustomersCustomerCardsIdResponseBody200Customer'Variants
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeEps
   -> Maybe Int
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeGiropay
   -> Maybe Text
   -> Maybe SourceTypeIdeal
   -> Maybe SourceTypeKlarna
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Object
   -> Maybe SourceTypeMultibanco
   -> Maybe Text
   -> Maybe PostCustomersCustomerCardsIdResponseBody200Object'
   -> Maybe PostCustomersCustomerCardsIdResponseBody200Owner'
   -> Maybe SourceTypeP24
   -> Maybe SourceReceiverFlow
   -> Maybe
        PostCustomersCustomerCardsIdResponseBody200Recipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe PostCustomersCustomerCardsIdResponseBody200Type'
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> PostCustomersCustomerCardsIdResponseBody200)
-> Parser (Maybe SourceTypeAchDebit)
-> Parser
     (Maybe SourceTypeAcssDebit
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeAlipay
      -> Maybe Int
      -> Maybe SourceTypeAuBecsDebit
      -> Maybe
           [PostCustomersCustomerCardsIdResponseBody200AvailablePayoutMethods']
      -> Maybe SourceTypeBancontact
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeCard
      -> Maybe SourceTypeCardPresent
      -> Maybe Text
      -> Maybe SourceCodeVerificationFlow
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe
           PostCustomersCustomerCardsIdResponseBody200Customer'Variants
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeEps
      -> Maybe Int
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeGiropay
      -> Maybe Text
      -> Maybe SourceTypeIdeal
      -> Maybe SourceTypeKlarna
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Object
      -> Maybe SourceTypeMultibanco
      -> Maybe Text
      -> Maybe PostCustomersCustomerCardsIdResponseBody200Object'
      -> Maybe PostCustomersCustomerCardsIdResponseBody200Owner'
      -> Maybe SourceTypeP24
      -> Maybe SourceReceiverFlow
      -> Maybe
           PostCustomersCustomerCardsIdResponseBody200Recipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe PostCustomersCustomerCardsIdResponseBody200Type'
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> PostCustomersCustomerCardsIdResponseBody200)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe SourceTypeAchDebit)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"ach_debit")) Parser
  (Maybe SourceTypeAcssDebit
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeAlipay
   -> Maybe Int
   -> Maybe SourceTypeAuBecsDebit
   -> Maybe
        [PostCustomersCustomerCardsIdResponseBody200AvailablePayoutMethods']
   -> Maybe SourceTypeBancontact
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeCard
   -> Maybe SourceTypeCardPresent
   -> Maybe Text
   -> Maybe SourceCodeVerificationFlow
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe
        PostCustomersCustomerCardsIdResponseBody200Customer'Variants
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeEps
   -> Maybe Int
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeGiropay
   -> Maybe Text
   -> Maybe SourceTypeIdeal
   -> Maybe SourceTypeKlarna
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Object
   -> Maybe SourceTypeMultibanco
   -> Maybe Text
   -> Maybe PostCustomersCustomerCardsIdResponseBody200Object'
   -> Maybe PostCustomersCustomerCardsIdResponseBody200Owner'
   -> Maybe SourceTypeP24
   -> Maybe SourceReceiverFlow
   -> Maybe
        PostCustomersCustomerCardsIdResponseBody200Recipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe PostCustomersCustomerCardsIdResponseBody200Type'
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> PostCustomersCustomerCardsIdResponseBody200)
-> Parser (Maybe SourceTypeAcssDebit)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeAlipay
      -> Maybe Int
      -> Maybe SourceTypeAuBecsDebit
      -> Maybe
           [PostCustomersCustomerCardsIdResponseBody200AvailablePayoutMethods']
      -> Maybe SourceTypeBancontact
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeCard
      -> Maybe SourceTypeCardPresent
      -> Maybe Text
      -> Maybe SourceCodeVerificationFlow
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe
           PostCustomersCustomerCardsIdResponseBody200Customer'Variants
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeEps
      -> Maybe Int
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeGiropay
      -> Maybe Text
      -> Maybe SourceTypeIdeal
      -> Maybe SourceTypeKlarna
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Object
      -> Maybe SourceTypeMultibanco
      -> Maybe Text
      -> Maybe PostCustomersCustomerCardsIdResponseBody200Object'
      -> Maybe PostCustomersCustomerCardsIdResponseBody200Owner'
      -> Maybe SourceTypeP24
      -> Maybe SourceReceiverFlow
      -> Maybe
           PostCustomersCustomerCardsIdResponseBody200Recipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe PostCustomersCustomerCardsIdResponseBody200Type'
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> PostCustomersCustomerCardsIdResponseBody200)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe SourceTypeAcssDebit)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"acss_debit")) Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeAlipay
   -> Maybe Int
   -> Maybe SourceTypeAuBecsDebit
   -> Maybe
        [PostCustomersCustomerCardsIdResponseBody200AvailablePayoutMethods']
   -> Maybe SourceTypeBancontact
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeCard
   -> Maybe SourceTypeCardPresent
   -> Maybe Text
   -> Maybe SourceCodeVerificationFlow
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe
        PostCustomersCustomerCardsIdResponseBody200Customer'Variants
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeEps
   -> Maybe Int
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeGiropay
   -> Maybe Text
   -> Maybe SourceTypeIdeal
   -> Maybe SourceTypeKlarna
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Object
   -> Maybe SourceTypeMultibanco
   -> Maybe Text
   -> Maybe PostCustomersCustomerCardsIdResponseBody200Object'
   -> Maybe PostCustomersCustomerCardsIdResponseBody200Owner'
   -> Maybe SourceTypeP24
   -> Maybe SourceReceiverFlow
   -> Maybe
        PostCustomersCustomerCardsIdResponseBody200Recipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe PostCustomersCustomerCardsIdResponseBody200Type'
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> PostCustomersCustomerCardsIdResponseBody200)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeAlipay
      -> Maybe Int
      -> Maybe SourceTypeAuBecsDebit
      -> Maybe
           [PostCustomersCustomerCardsIdResponseBody200AvailablePayoutMethods']
      -> Maybe SourceTypeBancontact
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeCard
      -> Maybe SourceTypeCardPresent
      -> Maybe Text
      -> Maybe SourceCodeVerificationFlow
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe
           PostCustomersCustomerCardsIdResponseBody200Customer'Variants
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeEps
      -> Maybe Int
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeGiropay
      -> Maybe Text
      -> Maybe SourceTypeIdeal
      -> Maybe SourceTypeKlarna
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Object
      -> Maybe SourceTypeMultibanco
      -> Maybe Text
      -> Maybe PostCustomersCustomerCardsIdResponseBody200Object'
      -> Maybe PostCustomersCustomerCardsIdResponseBody200Owner'
      -> Maybe SourceTypeP24
      -> Maybe SourceReceiverFlow
      -> Maybe
           PostCustomersCustomerCardsIdResponseBody200Recipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe PostCustomersCustomerCardsIdResponseBody200Type'
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> PostCustomersCustomerCardsIdResponseBody200)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"address_city")) Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeAlipay
   -> Maybe Int
   -> Maybe SourceTypeAuBecsDebit
   -> Maybe
        [PostCustomersCustomerCardsIdResponseBody200AvailablePayoutMethods']
   -> Maybe SourceTypeBancontact
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeCard
   -> Maybe SourceTypeCardPresent
   -> Maybe Text
   -> Maybe SourceCodeVerificationFlow
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe
        PostCustomersCustomerCardsIdResponseBody200Customer'Variants
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeEps
   -> Maybe Int
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeGiropay
   -> Maybe Text
   -> Maybe SourceTypeIdeal
   -> Maybe SourceTypeKlarna
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Object
   -> Maybe SourceTypeMultibanco
   -> Maybe Text
   -> Maybe PostCustomersCustomerCardsIdResponseBody200Object'
   -> Maybe PostCustomersCustomerCardsIdResponseBody200Owner'
   -> Maybe SourceTypeP24
   -> Maybe SourceReceiverFlow
   -> Maybe
        PostCustomersCustomerCardsIdResponseBody200Recipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe PostCustomersCustomerCardsIdResponseBody200Type'
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> PostCustomersCustomerCardsIdResponseBody200)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeAlipay
      -> Maybe Int
      -> Maybe SourceTypeAuBecsDebit
      -> Maybe
           [PostCustomersCustomerCardsIdResponseBody200AvailablePayoutMethods']
      -> Maybe SourceTypeBancontact
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeCard
      -> Maybe SourceTypeCardPresent
      -> Maybe Text
      -> Maybe SourceCodeVerificationFlow
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe
           PostCustomersCustomerCardsIdResponseBody200Customer'Variants
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeEps
      -> Maybe Int
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeGiropay
      -> Maybe Text
      -> Maybe SourceTypeIdeal
      -> Maybe SourceTypeKlarna
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Object
      -> Maybe SourceTypeMultibanco
      -> Maybe Text
      -> Maybe PostCustomersCustomerCardsIdResponseBody200Object'
      -> Maybe PostCustomersCustomerCardsIdResponseBody200Owner'
      -> Maybe SourceTypeP24
      -> Maybe SourceReceiverFlow
      -> Maybe
           PostCustomersCustomerCardsIdResponseBody200Recipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe PostCustomersCustomerCardsIdResponseBody200Type'
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> PostCustomersCustomerCardsIdResponseBody200)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"address_country")) Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeAlipay
   -> Maybe Int
   -> Maybe SourceTypeAuBecsDebit
   -> Maybe
        [PostCustomersCustomerCardsIdResponseBody200AvailablePayoutMethods']
   -> Maybe SourceTypeBancontact
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeCard
   -> Maybe SourceTypeCardPresent
   -> Maybe Text
   -> Maybe SourceCodeVerificationFlow
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe
        PostCustomersCustomerCardsIdResponseBody200Customer'Variants
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeEps
   -> Maybe Int
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeGiropay
   -> Maybe Text
   -> Maybe SourceTypeIdeal
   -> Maybe SourceTypeKlarna
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Object
   -> Maybe SourceTypeMultibanco
   -> Maybe Text
   -> Maybe PostCustomersCustomerCardsIdResponseBody200Object'
   -> Maybe PostCustomersCustomerCardsIdResponseBody200Owner'
   -> Maybe SourceTypeP24
   -> Maybe SourceReceiverFlow
   -> Maybe
        PostCustomersCustomerCardsIdResponseBody200Recipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe PostCustomersCustomerCardsIdResponseBody200Type'
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> PostCustomersCustomerCardsIdResponseBody200)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeAlipay
      -> Maybe Int
      -> Maybe SourceTypeAuBecsDebit
      -> Maybe
           [PostCustomersCustomerCardsIdResponseBody200AvailablePayoutMethods']
      -> Maybe SourceTypeBancontact
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeCard
      -> Maybe SourceTypeCardPresent
      -> Maybe Text
      -> Maybe SourceCodeVerificationFlow
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe
           PostCustomersCustomerCardsIdResponseBody200Customer'Variants
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeEps
      -> Maybe Int
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeGiropay
      -> Maybe Text
      -> Maybe SourceTypeIdeal
      -> Maybe SourceTypeKlarna
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Object
      -> Maybe SourceTypeMultibanco
      -> Maybe Text
      -> Maybe PostCustomersCustomerCardsIdResponseBody200Object'
      -> Maybe PostCustomersCustomerCardsIdResponseBody200Owner'
      -> Maybe SourceTypeP24
      -> Maybe SourceReceiverFlow
      -> Maybe
           PostCustomersCustomerCardsIdResponseBody200Recipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe PostCustomersCustomerCardsIdResponseBody200Type'
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> PostCustomersCustomerCardsIdResponseBody200)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"address_line1")) Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeAlipay
   -> Maybe Int
   -> Maybe SourceTypeAuBecsDebit
   -> Maybe
        [PostCustomersCustomerCardsIdResponseBody200AvailablePayoutMethods']
   -> Maybe SourceTypeBancontact
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeCard
   -> Maybe SourceTypeCardPresent
   -> Maybe Text
   -> Maybe SourceCodeVerificationFlow
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe
        PostCustomersCustomerCardsIdResponseBody200Customer'Variants
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeEps
   -> Maybe Int
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeGiropay
   -> Maybe Text
   -> Maybe SourceTypeIdeal
   -> Maybe SourceTypeKlarna
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Object
   -> Maybe SourceTypeMultibanco
   -> Maybe Text
   -> Maybe PostCustomersCustomerCardsIdResponseBody200Object'
   -> Maybe PostCustomersCustomerCardsIdResponseBody200Owner'
   -> Maybe SourceTypeP24
   -> Maybe SourceReceiverFlow
   -> Maybe
        PostCustomersCustomerCardsIdResponseBody200Recipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe PostCustomersCustomerCardsIdResponseBody200Type'
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> PostCustomersCustomerCardsIdResponseBody200)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeAlipay
      -> Maybe Int
      -> Maybe SourceTypeAuBecsDebit
      -> Maybe
           [PostCustomersCustomerCardsIdResponseBody200AvailablePayoutMethods']
      -> Maybe SourceTypeBancontact
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeCard
      -> Maybe SourceTypeCardPresent
      -> Maybe Text
      -> Maybe SourceCodeVerificationFlow
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe
           PostCustomersCustomerCardsIdResponseBody200Customer'Variants
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeEps
      -> Maybe Int
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeGiropay
      -> Maybe Text
      -> Maybe SourceTypeIdeal
      -> Maybe SourceTypeKlarna
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Object
      -> Maybe SourceTypeMultibanco
      -> Maybe Text
      -> Maybe PostCustomersCustomerCardsIdResponseBody200Object'
      -> Maybe PostCustomersCustomerCardsIdResponseBody200Owner'
      -> Maybe SourceTypeP24
      -> Maybe SourceReceiverFlow
      -> Maybe
           PostCustomersCustomerCardsIdResponseBody200Recipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe PostCustomersCustomerCardsIdResponseBody200Type'
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> PostCustomersCustomerCardsIdResponseBody200)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"address_line1_check")) Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeAlipay
   -> Maybe Int
   -> Maybe SourceTypeAuBecsDebit
   -> Maybe
        [PostCustomersCustomerCardsIdResponseBody200AvailablePayoutMethods']
   -> Maybe SourceTypeBancontact
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeCard
   -> Maybe SourceTypeCardPresent
   -> Maybe Text
   -> Maybe SourceCodeVerificationFlow
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe
        PostCustomersCustomerCardsIdResponseBody200Customer'Variants
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeEps
   -> Maybe Int
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeGiropay
   -> Maybe Text
   -> Maybe SourceTypeIdeal
   -> Maybe SourceTypeKlarna
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Object
   -> Maybe SourceTypeMultibanco
   -> Maybe Text
   -> Maybe PostCustomersCustomerCardsIdResponseBody200Object'
   -> Maybe PostCustomersCustomerCardsIdResponseBody200Owner'
   -> Maybe SourceTypeP24
   -> Maybe SourceReceiverFlow
   -> Maybe
        PostCustomersCustomerCardsIdResponseBody200Recipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe PostCustomersCustomerCardsIdResponseBody200Type'
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> PostCustomersCustomerCardsIdResponseBody200)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeAlipay
      -> Maybe Int
      -> Maybe SourceTypeAuBecsDebit
      -> Maybe
           [PostCustomersCustomerCardsIdResponseBody200AvailablePayoutMethods']
      -> Maybe SourceTypeBancontact
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeCard
      -> Maybe SourceTypeCardPresent
      -> Maybe Text
      -> Maybe SourceCodeVerificationFlow
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe
           PostCustomersCustomerCardsIdResponseBody200Customer'Variants
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeEps
      -> Maybe Int
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeGiropay
      -> Maybe Text
      -> Maybe SourceTypeIdeal
      -> Maybe SourceTypeKlarna
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Object
      -> Maybe SourceTypeMultibanco
      -> Maybe Text
      -> Maybe PostCustomersCustomerCardsIdResponseBody200Object'
      -> Maybe PostCustomersCustomerCardsIdResponseBody200Owner'
      -> Maybe SourceTypeP24
      -> Maybe SourceReceiverFlow
      -> Maybe
           PostCustomersCustomerCardsIdResponseBody200Recipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe PostCustomersCustomerCardsIdResponseBody200Type'
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> PostCustomersCustomerCardsIdResponseBody200)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"address_line2")) Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeAlipay
   -> Maybe Int
   -> Maybe SourceTypeAuBecsDebit
   -> Maybe
        [PostCustomersCustomerCardsIdResponseBody200AvailablePayoutMethods']
   -> Maybe SourceTypeBancontact
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeCard
   -> Maybe SourceTypeCardPresent
   -> Maybe Text
   -> Maybe SourceCodeVerificationFlow
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe
        PostCustomersCustomerCardsIdResponseBody200Customer'Variants
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeEps
   -> Maybe Int
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeGiropay
   -> Maybe Text
   -> Maybe SourceTypeIdeal
   -> Maybe SourceTypeKlarna
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Object
   -> Maybe SourceTypeMultibanco
   -> Maybe Text
   -> Maybe PostCustomersCustomerCardsIdResponseBody200Object'
   -> Maybe PostCustomersCustomerCardsIdResponseBody200Owner'
   -> Maybe SourceTypeP24
   -> Maybe SourceReceiverFlow
   -> Maybe
        PostCustomersCustomerCardsIdResponseBody200Recipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe PostCustomersCustomerCardsIdResponseBody200Type'
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> PostCustomersCustomerCardsIdResponseBody200)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeAlipay
      -> Maybe Int
      -> Maybe SourceTypeAuBecsDebit
      -> Maybe
           [PostCustomersCustomerCardsIdResponseBody200AvailablePayoutMethods']
      -> Maybe SourceTypeBancontact
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeCard
      -> Maybe SourceTypeCardPresent
      -> Maybe Text
      -> Maybe SourceCodeVerificationFlow
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe
           PostCustomersCustomerCardsIdResponseBody200Customer'Variants
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeEps
      -> Maybe Int
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeGiropay
      -> Maybe Text
      -> Maybe SourceTypeIdeal
      -> Maybe SourceTypeKlarna
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Object
      -> Maybe SourceTypeMultibanco
      -> Maybe Text
      -> Maybe PostCustomersCustomerCardsIdResponseBody200Object'
      -> Maybe PostCustomersCustomerCardsIdResponseBody200Owner'
      -> Maybe SourceTypeP24
      -> Maybe SourceReceiverFlow
      -> Maybe
           PostCustomersCustomerCardsIdResponseBody200Recipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe PostCustomersCustomerCardsIdResponseBody200Type'
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> PostCustomersCustomerCardsIdResponseBody200)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"address_state")) Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeAlipay
   -> Maybe Int
   -> Maybe SourceTypeAuBecsDebit
   -> Maybe
        [PostCustomersCustomerCardsIdResponseBody200AvailablePayoutMethods']
   -> Maybe SourceTypeBancontact
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeCard
   -> Maybe SourceTypeCardPresent
   -> Maybe Text
   -> Maybe SourceCodeVerificationFlow
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe
        PostCustomersCustomerCardsIdResponseBody200Customer'Variants
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeEps
   -> Maybe Int
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeGiropay
   -> Maybe Text
   -> Maybe SourceTypeIdeal
   -> Maybe SourceTypeKlarna
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Object
   -> Maybe SourceTypeMultibanco
   -> Maybe Text
   -> Maybe PostCustomersCustomerCardsIdResponseBody200Object'
   -> Maybe PostCustomersCustomerCardsIdResponseBody200Owner'
   -> Maybe SourceTypeP24
   -> Maybe SourceReceiverFlow
   -> Maybe
        PostCustomersCustomerCardsIdResponseBody200Recipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe PostCustomersCustomerCardsIdResponseBody200Type'
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> PostCustomersCustomerCardsIdResponseBody200)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe SourceTypeAlipay
      -> Maybe Int
      -> Maybe SourceTypeAuBecsDebit
      -> Maybe
           [PostCustomersCustomerCardsIdResponseBody200AvailablePayoutMethods']
      -> Maybe SourceTypeBancontact
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeCard
      -> Maybe SourceTypeCardPresent
      -> Maybe Text
      -> Maybe SourceCodeVerificationFlow
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe
           PostCustomersCustomerCardsIdResponseBody200Customer'Variants
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeEps
      -> Maybe Int
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeGiropay
      -> Maybe Text
      -> Maybe SourceTypeIdeal
      -> Maybe SourceTypeKlarna
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Object
      -> Maybe SourceTypeMultibanco
      -> Maybe Text
      -> Maybe PostCustomersCustomerCardsIdResponseBody200Object'
      -> Maybe PostCustomersCustomerCardsIdResponseBody200Owner'
      -> Maybe SourceTypeP24
      -> Maybe SourceReceiverFlow
      -> Maybe
           PostCustomersCustomerCardsIdResponseBody200Recipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe PostCustomersCustomerCardsIdResponseBody200Type'
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> PostCustomersCustomerCardsIdResponseBody200)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"address_zip")) Parser
  (Maybe Text
   -> Maybe SourceTypeAlipay
   -> Maybe Int
   -> Maybe SourceTypeAuBecsDebit
   -> Maybe
        [PostCustomersCustomerCardsIdResponseBody200AvailablePayoutMethods']
   -> Maybe SourceTypeBancontact
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeCard
   -> Maybe SourceTypeCardPresent
   -> Maybe Text
   -> Maybe SourceCodeVerificationFlow
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe
        PostCustomersCustomerCardsIdResponseBody200Customer'Variants
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeEps
   -> Maybe Int
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeGiropay
   -> Maybe Text
   -> Maybe SourceTypeIdeal
   -> Maybe SourceTypeKlarna
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Object
   -> Maybe SourceTypeMultibanco
   -> Maybe Text
   -> Maybe PostCustomersCustomerCardsIdResponseBody200Object'
   -> Maybe PostCustomersCustomerCardsIdResponseBody200Owner'
   -> Maybe SourceTypeP24
   -> Maybe SourceReceiverFlow
   -> Maybe
        PostCustomersCustomerCardsIdResponseBody200Recipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe PostCustomersCustomerCardsIdResponseBody200Type'
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> PostCustomersCustomerCardsIdResponseBody200)
-> Parser (Maybe Text)
-> Parser
     (Maybe SourceTypeAlipay
      -> Maybe Int
      -> Maybe SourceTypeAuBecsDebit
      -> Maybe
           [PostCustomersCustomerCardsIdResponseBody200AvailablePayoutMethods']
      -> Maybe SourceTypeBancontact
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeCard
      -> Maybe SourceTypeCardPresent
      -> Maybe Text
      -> Maybe SourceCodeVerificationFlow
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe
           PostCustomersCustomerCardsIdResponseBody200Customer'Variants
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeEps
      -> Maybe Int
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeGiropay
      -> Maybe Text
      -> Maybe SourceTypeIdeal
      -> Maybe SourceTypeKlarna
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Object
      -> Maybe SourceTypeMultibanco
      -> Maybe Text
      -> Maybe PostCustomersCustomerCardsIdResponseBody200Object'
      -> Maybe PostCustomersCustomerCardsIdResponseBody200Owner'
      -> Maybe SourceTypeP24
      -> Maybe SourceReceiverFlow
      -> Maybe
           PostCustomersCustomerCardsIdResponseBody200Recipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe PostCustomersCustomerCardsIdResponseBody200Type'
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> PostCustomersCustomerCardsIdResponseBody200)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"address_zip_check")) Parser
  (Maybe SourceTypeAlipay
   -> Maybe Int
   -> Maybe SourceTypeAuBecsDebit
   -> Maybe
        [PostCustomersCustomerCardsIdResponseBody200AvailablePayoutMethods']
   -> Maybe SourceTypeBancontact
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeCard
   -> Maybe SourceTypeCardPresent
   -> Maybe Text
   -> Maybe SourceCodeVerificationFlow
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe
        PostCustomersCustomerCardsIdResponseBody200Customer'Variants
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeEps
   -> Maybe Int
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeGiropay
   -> Maybe Text
   -> Maybe SourceTypeIdeal
   -> Maybe SourceTypeKlarna
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Object
   -> Maybe SourceTypeMultibanco
   -> Maybe Text
   -> Maybe PostCustomersCustomerCardsIdResponseBody200Object'
   -> Maybe PostCustomersCustomerCardsIdResponseBody200Owner'
   -> Maybe SourceTypeP24
   -> Maybe SourceReceiverFlow
   -> Maybe
        PostCustomersCustomerCardsIdResponseBody200Recipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe PostCustomersCustomerCardsIdResponseBody200Type'
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> PostCustomersCustomerCardsIdResponseBody200)
-> Parser (Maybe SourceTypeAlipay)
-> Parser
     (Maybe Int
      -> Maybe SourceTypeAuBecsDebit
      -> Maybe
           [PostCustomersCustomerCardsIdResponseBody200AvailablePayoutMethods']
      -> Maybe SourceTypeBancontact
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeCard
      -> Maybe SourceTypeCardPresent
      -> Maybe Text
      -> Maybe SourceCodeVerificationFlow
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe
           PostCustomersCustomerCardsIdResponseBody200Customer'Variants
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeEps
      -> Maybe Int
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeGiropay
      -> Maybe Text
      -> Maybe SourceTypeIdeal
      -> Maybe SourceTypeKlarna
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Object
      -> Maybe SourceTypeMultibanco
      -> Maybe Text
      -> Maybe PostCustomersCustomerCardsIdResponseBody200Object'
      -> Maybe PostCustomersCustomerCardsIdResponseBody200Owner'
      -> Maybe SourceTypeP24
      -> Maybe SourceReceiverFlow
      -> Maybe
           PostCustomersCustomerCardsIdResponseBody200Recipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe PostCustomersCustomerCardsIdResponseBody200Type'
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> PostCustomersCustomerCardsIdResponseBody200)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe SourceTypeAlipay)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"alipay")) Parser
  (Maybe Int
   -> Maybe SourceTypeAuBecsDebit
   -> Maybe
        [PostCustomersCustomerCardsIdResponseBody200AvailablePayoutMethods']
   -> Maybe SourceTypeBancontact
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeCard
   -> Maybe SourceTypeCardPresent
   -> Maybe Text
   -> Maybe SourceCodeVerificationFlow
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe
        PostCustomersCustomerCardsIdResponseBody200Customer'Variants
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeEps
   -> Maybe Int
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeGiropay
   -> Maybe Text
   -> Maybe SourceTypeIdeal
   -> Maybe SourceTypeKlarna
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Object
   -> Maybe SourceTypeMultibanco
   -> Maybe Text
   -> Maybe PostCustomersCustomerCardsIdResponseBody200Object'
   -> Maybe PostCustomersCustomerCardsIdResponseBody200Owner'
   -> Maybe SourceTypeP24
   -> Maybe SourceReceiverFlow
   -> Maybe
        PostCustomersCustomerCardsIdResponseBody200Recipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe PostCustomersCustomerCardsIdResponseBody200Type'
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> PostCustomersCustomerCardsIdResponseBody200)
-> Parser (Maybe Int)
-> Parser
     (Maybe SourceTypeAuBecsDebit
      -> Maybe
           [PostCustomersCustomerCardsIdResponseBody200AvailablePayoutMethods']
      -> Maybe SourceTypeBancontact
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeCard
      -> Maybe SourceTypeCardPresent
      -> Maybe Text
      -> Maybe SourceCodeVerificationFlow
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe
           PostCustomersCustomerCardsIdResponseBody200Customer'Variants
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeEps
      -> Maybe Int
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeGiropay
      -> Maybe Text
      -> Maybe SourceTypeIdeal
      -> Maybe SourceTypeKlarna
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Object
      -> Maybe SourceTypeMultibanco
      -> Maybe Text
      -> Maybe PostCustomersCustomerCardsIdResponseBody200Object'
      -> Maybe PostCustomersCustomerCardsIdResponseBody200Owner'
      -> Maybe SourceTypeP24
      -> Maybe SourceReceiverFlow
      -> Maybe
           PostCustomersCustomerCardsIdResponseBody200Recipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe PostCustomersCustomerCardsIdResponseBody200Type'
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> PostCustomersCustomerCardsIdResponseBody200)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"amount")) Parser
  (Maybe SourceTypeAuBecsDebit
   -> Maybe
        [PostCustomersCustomerCardsIdResponseBody200AvailablePayoutMethods']
   -> Maybe SourceTypeBancontact
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeCard
   -> Maybe SourceTypeCardPresent
   -> Maybe Text
   -> Maybe SourceCodeVerificationFlow
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe
        PostCustomersCustomerCardsIdResponseBody200Customer'Variants
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeEps
   -> Maybe Int
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeGiropay
   -> Maybe Text
   -> Maybe SourceTypeIdeal
   -> Maybe SourceTypeKlarna
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Object
   -> Maybe SourceTypeMultibanco
   -> Maybe Text
   -> Maybe PostCustomersCustomerCardsIdResponseBody200Object'
   -> Maybe PostCustomersCustomerCardsIdResponseBody200Owner'
   -> Maybe SourceTypeP24
   -> Maybe SourceReceiverFlow
   -> Maybe
        PostCustomersCustomerCardsIdResponseBody200Recipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe PostCustomersCustomerCardsIdResponseBody200Type'
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> PostCustomersCustomerCardsIdResponseBody200)
-> Parser (Maybe SourceTypeAuBecsDebit)
-> Parser
     (Maybe
        [PostCustomersCustomerCardsIdResponseBody200AvailablePayoutMethods']
      -> Maybe SourceTypeBancontact
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeCard
      -> Maybe SourceTypeCardPresent
      -> Maybe Text
      -> Maybe SourceCodeVerificationFlow
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe
           PostCustomersCustomerCardsIdResponseBody200Customer'Variants
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeEps
      -> Maybe Int
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeGiropay
      -> Maybe Text
      -> Maybe SourceTypeIdeal
      -> Maybe SourceTypeKlarna
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Object
      -> Maybe SourceTypeMultibanco
      -> Maybe Text
      -> Maybe PostCustomersCustomerCardsIdResponseBody200Object'
      -> Maybe PostCustomersCustomerCardsIdResponseBody200Owner'
      -> Maybe SourceTypeP24
      -> Maybe SourceReceiverFlow
      -> Maybe
           PostCustomersCustomerCardsIdResponseBody200Recipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe PostCustomersCustomerCardsIdResponseBody200Type'
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> PostCustomersCustomerCardsIdResponseBody200)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe SourceTypeAuBecsDebit)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"au_becs_debit")) Parser
  (Maybe
     [PostCustomersCustomerCardsIdResponseBody200AvailablePayoutMethods']
   -> Maybe SourceTypeBancontact
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeCard
   -> Maybe SourceTypeCardPresent
   -> Maybe Text
   -> Maybe SourceCodeVerificationFlow
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe
        PostCustomersCustomerCardsIdResponseBody200Customer'Variants
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeEps
   -> Maybe Int
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeGiropay
   -> Maybe Text
   -> Maybe SourceTypeIdeal
   -> Maybe SourceTypeKlarna
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Object
   -> Maybe SourceTypeMultibanco
   -> Maybe Text
   -> Maybe PostCustomersCustomerCardsIdResponseBody200Object'
   -> Maybe PostCustomersCustomerCardsIdResponseBody200Owner'
   -> Maybe SourceTypeP24
   -> Maybe SourceReceiverFlow
   -> Maybe
        PostCustomersCustomerCardsIdResponseBody200Recipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe PostCustomersCustomerCardsIdResponseBody200Type'
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> PostCustomersCustomerCardsIdResponseBody200)
-> Parser
     (Maybe
        [PostCustomersCustomerCardsIdResponseBody200AvailablePayoutMethods'])
-> Parser
     (Maybe SourceTypeBancontact
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeCard
      -> Maybe SourceTypeCardPresent
      -> Maybe Text
      -> Maybe SourceCodeVerificationFlow
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe
           PostCustomersCustomerCardsIdResponseBody200Customer'Variants
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeEps
      -> Maybe Int
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeGiropay
      -> Maybe Text
      -> Maybe SourceTypeIdeal
      -> Maybe SourceTypeKlarna
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Object
      -> Maybe SourceTypeMultibanco
      -> Maybe Text
      -> Maybe PostCustomersCustomerCardsIdResponseBody200Object'
      -> Maybe PostCustomersCustomerCardsIdResponseBody200Owner'
      -> Maybe SourceTypeP24
      -> Maybe SourceReceiverFlow
      -> Maybe
           PostCustomersCustomerCardsIdResponseBody200Recipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe PostCustomersCustomerCardsIdResponseBody200Type'
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> PostCustomersCustomerCardsIdResponseBody200)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     (Maybe
        [PostCustomersCustomerCardsIdResponseBody200AvailablePayoutMethods'])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"available_payout_methods")) Parser
  (Maybe SourceTypeBancontact
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeCard
   -> Maybe SourceTypeCardPresent
   -> Maybe Text
   -> Maybe SourceCodeVerificationFlow
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe
        PostCustomersCustomerCardsIdResponseBody200Customer'Variants
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeEps
   -> Maybe Int
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeGiropay
   -> Maybe Text
   -> Maybe SourceTypeIdeal
   -> Maybe SourceTypeKlarna
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Object
   -> Maybe SourceTypeMultibanco
   -> Maybe Text
   -> Maybe PostCustomersCustomerCardsIdResponseBody200Object'
   -> Maybe PostCustomersCustomerCardsIdResponseBody200Owner'
   -> Maybe SourceTypeP24
   -> Maybe SourceReceiverFlow
   -> Maybe
        PostCustomersCustomerCardsIdResponseBody200Recipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe PostCustomersCustomerCardsIdResponseBody200Type'
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> PostCustomersCustomerCardsIdResponseBody200)
-> Parser (Maybe SourceTypeBancontact)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeCard
      -> Maybe SourceTypeCardPresent
      -> Maybe Text
      -> Maybe SourceCodeVerificationFlow
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe
           PostCustomersCustomerCardsIdResponseBody200Customer'Variants
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeEps
      -> Maybe Int
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeGiropay
      -> Maybe Text
      -> Maybe SourceTypeIdeal
      -> Maybe SourceTypeKlarna
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Object
      -> Maybe SourceTypeMultibanco
      -> Maybe Text
      -> Maybe PostCustomersCustomerCardsIdResponseBody200Object'
      -> Maybe PostCustomersCustomerCardsIdResponseBody200Owner'
      -> Maybe SourceTypeP24
      -> Maybe SourceReceiverFlow
      -> Maybe
           PostCustomersCustomerCardsIdResponseBody200Recipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe PostCustomersCustomerCardsIdResponseBody200Type'
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> PostCustomersCustomerCardsIdResponseBody200)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe SourceTypeBancontact)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"bancontact")) Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeCard
   -> Maybe SourceTypeCardPresent
   -> Maybe Text
   -> Maybe SourceCodeVerificationFlow
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe
        PostCustomersCustomerCardsIdResponseBody200Customer'Variants
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeEps
   -> Maybe Int
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeGiropay
   -> Maybe Text
   -> Maybe SourceTypeIdeal
   -> Maybe SourceTypeKlarna
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Object
   -> Maybe SourceTypeMultibanco
   -> Maybe Text
   -> Maybe PostCustomersCustomerCardsIdResponseBody200Object'
   -> Maybe PostCustomersCustomerCardsIdResponseBody200Owner'
   -> Maybe SourceTypeP24
   -> Maybe SourceReceiverFlow
   -> Maybe
        PostCustomersCustomerCardsIdResponseBody200Recipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe PostCustomersCustomerCardsIdResponseBody200Type'
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> PostCustomersCustomerCardsIdResponseBody200)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe SourceTypeCard
      -> Maybe SourceTypeCardPresent
      -> Maybe Text
      -> Maybe SourceCodeVerificationFlow
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe
           PostCustomersCustomerCardsIdResponseBody200Customer'Variants
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeEps
      -> Maybe Int
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeGiropay
      -> Maybe Text
      -> Maybe SourceTypeIdeal
      -> Maybe SourceTypeKlarna
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Object
      -> Maybe SourceTypeMultibanco
      -> Maybe Text
      -> Maybe PostCustomersCustomerCardsIdResponseBody200Object'
      -> Maybe PostCustomersCustomerCardsIdResponseBody200Owner'
      -> Maybe SourceTypeP24
      -> Maybe SourceReceiverFlow
      -> Maybe
           PostCustomersCustomerCardsIdResponseBody200Recipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe PostCustomersCustomerCardsIdResponseBody200Type'
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> PostCustomersCustomerCardsIdResponseBody200)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"bank_name")) Parser
  (Maybe Text
   -> Maybe SourceTypeCard
   -> Maybe SourceTypeCardPresent
   -> Maybe Text
   -> Maybe SourceCodeVerificationFlow
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe
        PostCustomersCustomerCardsIdResponseBody200Customer'Variants
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeEps
   -> Maybe Int
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeGiropay
   -> Maybe Text
   -> Maybe SourceTypeIdeal
   -> Maybe SourceTypeKlarna
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Object
   -> Maybe SourceTypeMultibanco
   -> Maybe Text
   -> Maybe PostCustomersCustomerCardsIdResponseBody200Object'
   -> Maybe PostCustomersCustomerCardsIdResponseBody200Owner'
   -> Maybe SourceTypeP24
   -> Maybe SourceReceiverFlow
   -> Maybe
        PostCustomersCustomerCardsIdResponseBody200Recipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe PostCustomersCustomerCardsIdResponseBody200Type'
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> PostCustomersCustomerCardsIdResponseBody200)
-> Parser (Maybe Text)
-> Parser
     (Maybe SourceTypeCard
      -> Maybe SourceTypeCardPresent
      -> Maybe Text
      -> Maybe SourceCodeVerificationFlow
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe
           PostCustomersCustomerCardsIdResponseBody200Customer'Variants
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeEps
      -> Maybe Int
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeGiropay
      -> Maybe Text
      -> Maybe SourceTypeIdeal
      -> Maybe SourceTypeKlarna
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Object
      -> Maybe SourceTypeMultibanco
      -> Maybe Text
      -> Maybe PostCustomersCustomerCardsIdResponseBody200Object'
      -> Maybe PostCustomersCustomerCardsIdResponseBody200Owner'
      -> Maybe SourceTypeP24
      -> Maybe SourceReceiverFlow
      -> Maybe
           PostCustomersCustomerCardsIdResponseBody200Recipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe PostCustomersCustomerCardsIdResponseBody200Type'
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> PostCustomersCustomerCardsIdResponseBody200)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"brand")) Parser
  (Maybe SourceTypeCard
   -> Maybe SourceTypeCardPresent
   -> Maybe Text
   -> Maybe SourceCodeVerificationFlow
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe
        PostCustomersCustomerCardsIdResponseBody200Customer'Variants
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeEps
   -> Maybe Int
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeGiropay
   -> Maybe Text
   -> Maybe SourceTypeIdeal
   -> Maybe SourceTypeKlarna
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Object
   -> Maybe SourceTypeMultibanco
   -> Maybe Text
   -> Maybe PostCustomersCustomerCardsIdResponseBody200Object'
   -> Maybe PostCustomersCustomerCardsIdResponseBody200Owner'
   -> Maybe SourceTypeP24
   -> Maybe SourceReceiverFlow
   -> Maybe
        PostCustomersCustomerCardsIdResponseBody200Recipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe PostCustomersCustomerCardsIdResponseBody200Type'
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> PostCustomersCustomerCardsIdResponseBody200)
-> Parser (Maybe SourceTypeCard)
-> Parser
     (Maybe SourceTypeCardPresent
      -> Maybe Text
      -> Maybe SourceCodeVerificationFlow
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe
           PostCustomersCustomerCardsIdResponseBody200Customer'Variants
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeEps
      -> Maybe Int
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeGiropay
      -> Maybe Text
      -> Maybe SourceTypeIdeal
      -> Maybe SourceTypeKlarna
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Object
      -> Maybe SourceTypeMultibanco
      -> Maybe Text
      -> Maybe PostCustomersCustomerCardsIdResponseBody200Object'
      -> Maybe PostCustomersCustomerCardsIdResponseBody200Owner'
      -> Maybe SourceTypeP24
      -> Maybe SourceReceiverFlow
      -> Maybe
           PostCustomersCustomerCardsIdResponseBody200Recipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe PostCustomersCustomerCardsIdResponseBody200Type'
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> PostCustomersCustomerCardsIdResponseBody200)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe SourceTypeCard)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"card")) Parser
  (Maybe SourceTypeCardPresent
   -> Maybe Text
   -> Maybe SourceCodeVerificationFlow
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe
        PostCustomersCustomerCardsIdResponseBody200Customer'Variants
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeEps
   -> Maybe Int
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeGiropay
   -> Maybe Text
   -> Maybe SourceTypeIdeal
   -> Maybe SourceTypeKlarna
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Object
   -> Maybe SourceTypeMultibanco
   -> Maybe Text
   -> Maybe PostCustomersCustomerCardsIdResponseBody200Object'
   -> Maybe PostCustomersCustomerCardsIdResponseBody200Owner'
   -> Maybe SourceTypeP24
   -> Maybe SourceReceiverFlow
   -> Maybe
        PostCustomersCustomerCardsIdResponseBody200Recipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe PostCustomersCustomerCardsIdResponseBody200Type'
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> PostCustomersCustomerCardsIdResponseBody200)
-> Parser (Maybe SourceTypeCardPresent)
-> Parser
     (Maybe Text
      -> Maybe SourceCodeVerificationFlow
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe
           PostCustomersCustomerCardsIdResponseBody200Customer'Variants
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeEps
      -> Maybe Int
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeGiropay
      -> Maybe Text
      -> Maybe SourceTypeIdeal
      -> Maybe SourceTypeKlarna
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Object
      -> Maybe SourceTypeMultibanco
      -> Maybe Text
      -> Maybe PostCustomersCustomerCardsIdResponseBody200Object'
      -> Maybe PostCustomersCustomerCardsIdResponseBody200Owner'
      -> Maybe SourceTypeP24
      -> Maybe SourceReceiverFlow
      -> Maybe
           PostCustomersCustomerCardsIdResponseBody200Recipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe PostCustomersCustomerCardsIdResponseBody200Type'
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> PostCustomersCustomerCardsIdResponseBody200)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe SourceTypeCardPresent)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"card_present")) Parser
  (Maybe Text
   -> Maybe SourceCodeVerificationFlow
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe
        PostCustomersCustomerCardsIdResponseBody200Customer'Variants
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeEps
   -> Maybe Int
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeGiropay
   -> Maybe Text
   -> Maybe SourceTypeIdeal
   -> Maybe SourceTypeKlarna
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Object
   -> Maybe SourceTypeMultibanco
   -> Maybe Text
   -> Maybe PostCustomersCustomerCardsIdResponseBody200Object'
   -> Maybe PostCustomersCustomerCardsIdResponseBody200Owner'
   -> Maybe SourceTypeP24
   -> Maybe SourceReceiverFlow
   -> Maybe
        PostCustomersCustomerCardsIdResponseBody200Recipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe PostCustomersCustomerCardsIdResponseBody200Type'
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> PostCustomersCustomerCardsIdResponseBody200)
-> Parser (Maybe Text)
-> Parser
     (Maybe SourceCodeVerificationFlow
      -> Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe
           PostCustomersCustomerCardsIdResponseBody200Customer'Variants
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeEps
      -> Maybe Int
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeGiropay
      -> Maybe Text
      -> Maybe SourceTypeIdeal
      -> Maybe SourceTypeKlarna
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Object
      -> Maybe SourceTypeMultibanco
      -> Maybe Text
      -> Maybe PostCustomersCustomerCardsIdResponseBody200Object'
      -> Maybe PostCustomersCustomerCardsIdResponseBody200Owner'
      -> Maybe SourceTypeP24
      -> Maybe SourceReceiverFlow
      -> Maybe
           PostCustomersCustomerCardsIdResponseBody200Recipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe PostCustomersCustomerCardsIdResponseBody200Type'
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> PostCustomersCustomerCardsIdResponseBody200)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"client_secret")) Parser
  (Maybe SourceCodeVerificationFlow
   -> Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe
        PostCustomersCustomerCardsIdResponseBody200Customer'Variants
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeEps
   -> Maybe Int
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeGiropay
   -> Maybe Text
   -> Maybe SourceTypeIdeal
   -> Maybe SourceTypeKlarna
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Object
   -> Maybe SourceTypeMultibanco
   -> Maybe Text
   -> Maybe PostCustomersCustomerCardsIdResponseBody200Object'
   -> Maybe PostCustomersCustomerCardsIdResponseBody200Owner'
   -> Maybe SourceTypeP24
   -> Maybe SourceReceiverFlow
   -> Maybe
        PostCustomersCustomerCardsIdResponseBody200Recipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe PostCustomersCustomerCardsIdResponseBody200Type'
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> PostCustomersCustomerCardsIdResponseBody200)
-> Parser (Maybe SourceCodeVerificationFlow)
-> Parser
     (Maybe Text
      -> Maybe Int
      -> Maybe Text
      -> Maybe
           PostCustomersCustomerCardsIdResponseBody200Customer'Variants
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeEps
      -> Maybe Int
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeGiropay
      -> Maybe Text
      -> Maybe SourceTypeIdeal
      -> Maybe SourceTypeKlarna
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Object
      -> Maybe SourceTypeMultibanco
      -> Maybe Text
      -> Maybe PostCustomersCustomerCardsIdResponseBody200Object'
      -> Maybe PostCustomersCustomerCardsIdResponseBody200Owner'
      -> Maybe SourceTypeP24
      -> Maybe SourceReceiverFlow
      -> Maybe
           PostCustomersCustomerCardsIdResponseBody200Recipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe PostCustomersCustomerCardsIdResponseBody200Type'
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> PostCustomersCustomerCardsIdResponseBody200)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe SourceCodeVerificationFlow)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"code_verification")) Parser
  (Maybe Text
   -> Maybe Int
   -> Maybe Text
   -> Maybe
        PostCustomersCustomerCardsIdResponseBody200Customer'Variants
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeEps
   -> Maybe Int
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeGiropay
   -> Maybe Text
   -> Maybe SourceTypeIdeal
   -> Maybe SourceTypeKlarna
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Object
   -> Maybe SourceTypeMultibanco
   -> Maybe Text
   -> Maybe PostCustomersCustomerCardsIdResponseBody200Object'
   -> Maybe PostCustomersCustomerCardsIdResponseBody200Owner'
   -> Maybe SourceTypeP24
   -> Maybe SourceReceiverFlow
   -> Maybe
        PostCustomersCustomerCardsIdResponseBody200Recipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe PostCustomersCustomerCardsIdResponseBody200Type'
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> PostCustomersCustomerCardsIdResponseBody200)
-> Parser (Maybe Text)
-> Parser
     (Maybe Int
      -> Maybe Text
      -> Maybe
           PostCustomersCustomerCardsIdResponseBody200Customer'Variants
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeEps
      -> Maybe Int
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeGiropay
      -> Maybe Text
      -> Maybe SourceTypeIdeal
      -> Maybe SourceTypeKlarna
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Object
      -> Maybe SourceTypeMultibanco
      -> Maybe Text
      -> Maybe PostCustomersCustomerCardsIdResponseBody200Object'
      -> Maybe PostCustomersCustomerCardsIdResponseBody200Owner'
      -> Maybe SourceTypeP24
      -> Maybe SourceReceiverFlow
      -> Maybe
           PostCustomersCustomerCardsIdResponseBody200Recipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe PostCustomersCustomerCardsIdResponseBody200Type'
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> PostCustomersCustomerCardsIdResponseBody200)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"country")) Parser
  (Maybe Int
   -> Maybe Text
   -> Maybe
        PostCustomersCustomerCardsIdResponseBody200Customer'Variants
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeEps
   -> Maybe Int
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeGiropay
   -> Maybe Text
   -> Maybe SourceTypeIdeal
   -> Maybe SourceTypeKlarna
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Object
   -> Maybe SourceTypeMultibanco
   -> Maybe Text
   -> Maybe PostCustomersCustomerCardsIdResponseBody200Object'
   -> Maybe PostCustomersCustomerCardsIdResponseBody200Owner'
   -> Maybe SourceTypeP24
   -> Maybe SourceReceiverFlow
   -> Maybe
        PostCustomersCustomerCardsIdResponseBody200Recipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe PostCustomersCustomerCardsIdResponseBody200Type'
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> PostCustomersCustomerCardsIdResponseBody200)
-> Parser (Maybe Int)
-> Parser
     (Maybe Text
      -> Maybe
           PostCustomersCustomerCardsIdResponseBody200Customer'Variants
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeEps
      -> Maybe Int
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeGiropay
      -> Maybe Text
      -> Maybe SourceTypeIdeal
      -> Maybe SourceTypeKlarna
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Object
      -> Maybe SourceTypeMultibanco
      -> Maybe Text
      -> Maybe PostCustomersCustomerCardsIdResponseBody200Object'
      -> Maybe PostCustomersCustomerCardsIdResponseBody200Owner'
      -> Maybe SourceTypeP24
      -> Maybe SourceReceiverFlow
      -> Maybe
           PostCustomersCustomerCardsIdResponseBody200Recipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe PostCustomersCustomerCardsIdResponseBody200Type'
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> PostCustomersCustomerCardsIdResponseBody200)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"created")) Parser
  (Maybe Text
   -> Maybe
        PostCustomersCustomerCardsIdResponseBody200Customer'Variants
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeEps
   -> Maybe Int
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeGiropay
   -> Maybe Text
   -> Maybe SourceTypeIdeal
   -> Maybe SourceTypeKlarna
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Object
   -> Maybe SourceTypeMultibanco
   -> Maybe Text
   -> Maybe PostCustomersCustomerCardsIdResponseBody200Object'
   -> Maybe PostCustomersCustomerCardsIdResponseBody200Owner'
   -> Maybe SourceTypeP24
   -> Maybe SourceReceiverFlow
   -> Maybe
        PostCustomersCustomerCardsIdResponseBody200Recipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe PostCustomersCustomerCardsIdResponseBody200Type'
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> PostCustomersCustomerCardsIdResponseBody200)
-> Parser (Maybe Text)
-> Parser
     (Maybe PostCustomersCustomerCardsIdResponseBody200Customer'Variants
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeEps
      -> Maybe Int
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeGiropay
      -> Maybe Text
      -> Maybe SourceTypeIdeal
      -> Maybe SourceTypeKlarna
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Object
      -> Maybe SourceTypeMultibanco
      -> Maybe Text
      -> Maybe PostCustomersCustomerCardsIdResponseBody200Object'
      -> Maybe PostCustomersCustomerCardsIdResponseBody200Owner'
      -> Maybe SourceTypeP24
      -> Maybe SourceReceiverFlow
      -> Maybe
           PostCustomersCustomerCardsIdResponseBody200Recipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe PostCustomersCustomerCardsIdResponseBody200Type'
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> PostCustomersCustomerCardsIdResponseBody200)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"currency")) Parser
  (Maybe PostCustomersCustomerCardsIdResponseBody200Customer'Variants
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeEps
   -> Maybe Int
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeGiropay
   -> Maybe Text
   -> Maybe SourceTypeIdeal
   -> Maybe SourceTypeKlarna
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Object
   -> Maybe SourceTypeMultibanco
   -> Maybe Text
   -> Maybe PostCustomersCustomerCardsIdResponseBody200Object'
   -> Maybe PostCustomersCustomerCardsIdResponseBody200Owner'
   -> Maybe SourceTypeP24
   -> Maybe SourceReceiverFlow
   -> Maybe
        PostCustomersCustomerCardsIdResponseBody200Recipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe PostCustomersCustomerCardsIdResponseBody200Type'
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> PostCustomersCustomerCardsIdResponseBody200)
-> Parser
     (Maybe
        PostCustomersCustomerCardsIdResponseBody200Customer'Variants)
-> Parser
     (Maybe Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeEps
      -> Maybe Int
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeGiropay
      -> Maybe Text
      -> Maybe SourceTypeIdeal
      -> Maybe SourceTypeKlarna
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Object
      -> Maybe SourceTypeMultibanco
      -> Maybe Text
      -> Maybe PostCustomersCustomerCardsIdResponseBody200Object'
      -> Maybe PostCustomersCustomerCardsIdResponseBody200Owner'
      -> Maybe SourceTypeP24
      -> Maybe SourceReceiverFlow
      -> Maybe
           PostCustomersCustomerCardsIdResponseBody200Recipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe PostCustomersCustomerCardsIdResponseBody200Type'
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> PostCustomersCustomerCardsIdResponseBody200)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     (Maybe
        PostCustomersCustomerCardsIdResponseBody200Customer'Variants)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"customer")) Parser
  (Maybe Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeEps
   -> Maybe Int
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeGiropay
   -> Maybe Text
   -> Maybe SourceTypeIdeal
   -> Maybe SourceTypeKlarna
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Object
   -> Maybe SourceTypeMultibanco
   -> Maybe Text
   -> Maybe PostCustomersCustomerCardsIdResponseBody200Object'
   -> Maybe PostCustomersCustomerCardsIdResponseBody200Owner'
   -> Maybe SourceTypeP24
   -> Maybe SourceReceiverFlow
   -> Maybe
        PostCustomersCustomerCardsIdResponseBody200Recipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe PostCustomersCustomerCardsIdResponseBody200Type'
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> PostCustomersCustomerCardsIdResponseBody200)
-> Parser (Maybe Text)
-> Parser
     (Maybe Bool
      -> Maybe Text
      -> Maybe SourceTypeEps
      -> Maybe Int
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeGiropay
      -> Maybe Text
      -> Maybe SourceTypeIdeal
      -> Maybe SourceTypeKlarna
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Object
      -> Maybe SourceTypeMultibanco
      -> Maybe Text
      -> Maybe PostCustomersCustomerCardsIdResponseBody200Object'
      -> Maybe PostCustomersCustomerCardsIdResponseBody200Owner'
      -> Maybe SourceTypeP24
      -> Maybe SourceReceiverFlow
      -> Maybe
           PostCustomersCustomerCardsIdResponseBody200Recipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe PostCustomersCustomerCardsIdResponseBody200Type'
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> PostCustomersCustomerCardsIdResponseBody200)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"cvc_check")) Parser
  (Maybe Bool
   -> Maybe Text
   -> Maybe SourceTypeEps
   -> Maybe Int
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeGiropay
   -> Maybe Text
   -> Maybe SourceTypeIdeal
   -> Maybe SourceTypeKlarna
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Object
   -> Maybe SourceTypeMultibanco
   -> Maybe Text
   -> Maybe PostCustomersCustomerCardsIdResponseBody200Object'
   -> Maybe PostCustomersCustomerCardsIdResponseBody200Owner'
   -> Maybe SourceTypeP24
   -> Maybe SourceReceiverFlow
   -> Maybe
        PostCustomersCustomerCardsIdResponseBody200Recipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe PostCustomersCustomerCardsIdResponseBody200Type'
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> PostCustomersCustomerCardsIdResponseBody200)
-> Parser (Maybe Bool)
-> Parser
     (Maybe Text
      -> Maybe SourceTypeEps
      -> Maybe Int
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeGiropay
      -> Maybe Text
      -> Maybe SourceTypeIdeal
      -> Maybe SourceTypeKlarna
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Object
      -> Maybe SourceTypeMultibanco
      -> Maybe Text
      -> Maybe PostCustomersCustomerCardsIdResponseBody200Object'
      -> Maybe PostCustomersCustomerCardsIdResponseBody200Owner'
      -> Maybe SourceTypeP24
      -> Maybe SourceReceiverFlow
      -> Maybe
           PostCustomersCustomerCardsIdResponseBody200Recipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe PostCustomersCustomerCardsIdResponseBody200Type'
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> PostCustomersCustomerCardsIdResponseBody200)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"default_for_currency")) Parser
  (Maybe Text
   -> Maybe SourceTypeEps
   -> Maybe Int
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeGiropay
   -> Maybe Text
   -> Maybe SourceTypeIdeal
   -> Maybe SourceTypeKlarna
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Object
   -> Maybe SourceTypeMultibanco
   -> Maybe Text
   -> Maybe PostCustomersCustomerCardsIdResponseBody200Object'
   -> Maybe PostCustomersCustomerCardsIdResponseBody200Owner'
   -> Maybe SourceTypeP24
   -> Maybe SourceReceiverFlow
   -> Maybe
        PostCustomersCustomerCardsIdResponseBody200Recipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe PostCustomersCustomerCardsIdResponseBody200Type'
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> PostCustomersCustomerCardsIdResponseBody200)
-> Parser (Maybe Text)
-> Parser
     (Maybe SourceTypeEps
      -> Maybe Int
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeGiropay
      -> Maybe Text
      -> Maybe SourceTypeIdeal
      -> Maybe SourceTypeKlarna
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Object
      -> Maybe SourceTypeMultibanco
      -> Maybe Text
      -> Maybe PostCustomersCustomerCardsIdResponseBody200Object'
      -> Maybe PostCustomersCustomerCardsIdResponseBody200Owner'
      -> Maybe SourceTypeP24
      -> Maybe SourceReceiverFlow
      -> Maybe
           PostCustomersCustomerCardsIdResponseBody200Recipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe PostCustomersCustomerCardsIdResponseBody200Type'
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> PostCustomersCustomerCardsIdResponseBody200)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"dynamic_last4")) Parser
  (Maybe SourceTypeEps
   -> Maybe Int
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeGiropay
   -> Maybe Text
   -> Maybe SourceTypeIdeal
   -> Maybe SourceTypeKlarna
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Object
   -> Maybe SourceTypeMultibanco
   -> Maybe Text
   -> Maybe PostCustomersCustomerCardsIdResponseBody200Object'
   -> Maybe PostCustomersCustomerCardsIdResponseBody200Owner'
   -> Maybe SourceTypeP24
   -> Maybe SourceReceiverFlow
   -> Maybe
        PostCustomersCustomerCardsIdResponseBody200Recipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe PostCustomersCustomerCardsIdResponseBody200Type'
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> PostCustomersCustomerCardsIdResponseBody200)
-> Parser (Maybe SourceTypeEps)
-> Parser
     (Maybe Int
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeGiropay
      -> Maybe Text
      -> Maybe SourceTypeIdeal
      -> Maybe SourceTypeKlarna
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Object
      -> Maybe SourceTypeMultibanco
      -> Maybe Text
      -> Maybe PostCustomersCustomerCardsIdResponseBody200Object'
      -> Maybe PostCustomersCustomerCardsIdResponseBody200Owner'
      -> Maybe SourceTypeP24
      -> Maybe SourceReceiverFlow
      -> Maybe
           PostCustomersCustomerCardsIdResponseBody200Recipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe PostCustomersCustomerCardsIdResponseBody200Type'
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> PostCustomersCustomerCardsIdResponseBody200)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe SourceTypeEps)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"eps")) Parser
  (Maybe Int
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeGiropay
   -> Maybe Text
   -> Maybe SourceTypeIdeal
   -> Maybe SourceTypeKlarna
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Object
   -> Maybe SourceTypeMultibanco
   -> Maybe Text
   -> Maybe PostCustomersCustomerCardsIdResponseBody200Object'
   -> Maybe PostCustomersCustomerCardsIdResponseBody200Owner'
   -> Maybe SourceTypeP24
   -> Maybe SourceReceiverFlow
   -> Maybe
        PostCustomersCustomerCardsIdResponseBody200Recipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe PostCustomersCustomerCardsIdResponseBody200Type'
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> PostCustomersCustomerCardsIdResponseBody200)
-> Parser (Maybe Int)
-> Parser
     (Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeGiropay
      -> Maybe Text
      -> Maybe SourceTypeIdeal
      -> Maybe SourceTypeKlarna
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Object
      -> Maybe SourceTypeMultibanco
      -> Maybe Text
      -> Maybe PostCustomersCustomerCardsIdResponseBody200Object'
      -> Maybe PostCustomersCustomerCardsIdResponseBody200Owner'
      -> Maybe SourceTypeP24
      -> Maybe SourceReceiverFlow
      -> Maybe
           PostCustomersCustomerCardsIdResponseBody200Recipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe PostCustomersCustomerCardsIdResponseBody200Type'
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> PostCustomersCustomerCardsIdResponseBody200)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"exp_month")) Parser
  (Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeGiropay
   -> Maybe Text
   -> Maybe SourceTypeIdeal
   -> Maybe SourceTypeKlarna
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Object
   -> Maybe SourceTypeMultibanco
   -> Maybe Text
   -> Maybe PostCustomersCustomerCardsIdResponseBody200Object'
   -> Maybe PostCustomersCustomerCardsIdResponseBody200Owner'
   -> Maybe SourceTypeP24
   -> Maybe SourceReceiverFlow
   -> Maybe
        PostCustomersCustomerCardsIdResponseBody200Recipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe PostCustomersCustomerCardsIdResponseBody200Type'
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> PostCustomersCustomerCardsIdResponseBody200)
-> Parser (Maybe Int)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeGiropay
      -> Maybe Text
      -> Maybe SourceTypeIdeal
      -> Maybe SourceTypeKlarna
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Object
      -> Maybe SourceTypeMultibanco
      -> Maybe Text
      -> Maybe PostCustomersCustomerCardsIdResponseBody200Object'
      -> Maybe PostCustomersCustomerCardsIdResponseBody200Owner'
      -> Maybe SourceTypeP24
      -> Maybe SourceReceiverFlow
      -> Maybe
           PostCustomersCustomerCardsIdResponseBody200Recipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe PostCustomersCustomerCardsIdResponseBody200Type'
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> PostCustomersCustomerCardsIdResponseBody200)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"exp_year")) Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeGiropay
   -> Maybe Text
   -> Maybe SourceTypeIdeal
   -> Maybe SourceTypeKlarna
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Object
   -> Maybe SourceTypeMultibanco
   -> Maybe Text
   -> Maybe PostCustomersCustomerCardsIdResponseBody200Object'
   -> Maybe PostCustomersCustomerCardsIdResponseBody200Owner'
   -> Maybe SourceTypeP24
   -> Maybe SourceReceiverFlow
   -> Maybe
        PostCustomersCustomerCardsIdResponseBody200Recipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe PostCustomersCustomerCardsIdResponseBody200Type'
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> PostCustomersCustomerCardsIdResponseBody200)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeGiropay
      -> Maybe Text
      -> Maybe SourceTypeIdeal
      -> Maybe SourceTypeKlarna
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Object
      -> Maybe SourceTypeMultibanco
      -> Maybe Text
      -> Maybe PostCustomersCustomerCardsIdResponseBody200Object'
      -> Maybe PostCustomersCustomerCardsIdResponseBody200Owner'
      -> Maybe SourceTypeP24
      -> Maybe SourceReceiverFlow
      -> Maybe
           PostCustomersCustomerCardsIdResponseBody200Recipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe PostCustomersCustomerCardsIdResponseBody200Type'
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> PostCustomersCustomerCardsIdResponseBody200)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"fingerprint")) Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeGiropay
   -> Maybe Text
   -> Maybe SourceTypeIdeal
   -> Maybe SourceTypeKlarna
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Object
   -> Maybe SourceTypeMultibanco
   -> Maybe Text
   -> Maybe PostCustomersCustomerCardsIdResponseBody200Object'
   -> Maybe PostCustomersCustomerCardsIdResponseBody200Owner'
   -> Maybe SourceTypeP24
   -> Maybe SourceReceiverFlow
   -> Maybe
        PostCustomersCustomerCardsIdResponseBody200Recipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe PostCustomersCustomerCardsIdResponseBody200Type'
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> PostCustomersCustomerCardsIdResponseBody200)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe SourceTypeGiropay
      -> Maybe Text
      -> Maybe SourceTypeIdeal
      -> Maybe SourceTypeKlarna
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Object
      -> Maybe SourceTypeMultibanco
      -> Maybe Text
      -> Maybe PostCustomersCustomerCardsIdResponseBody200Object'
      -> Maybe PostCustomersCustomerCardsIdResponseBody200Owner'
      -> Maybe SourceTypeP24
      -> Maybe SourceReceiverFlow
      -> Maybe
           PostCustomersCustomerCardsIdResponseBody200Recipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe PostCustomersCustomerCardsIdResponseBody200Type'
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> PostCustomersCustomerCardsIdResponseBody200)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"flow")) Parser
  (Maybe Text
   -> Maybe SourceTypeGiropay
   -> Maybe Text
   -> Maybe SourceTypeIdeal
   -> Maybe SourceTypeKlarna
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Object
   -> Maybe SourceTypeMultibanco
   -> Maybe Text
   -> Maybe PostCustomersCustomerCardsIdResponseBody200Object'
   -> Maybe PostCustomersCustomerCardsIdResponseBody200Owner'
   -> Maybe SourceTypeP24
   -> Maybe SourceReceiverFlow
   -> Maybe
        PostCustomersCustomerCardsIdResponseBody200Recipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe PostCustomersCustomerCardsIdResponseBody200Type'
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> PostCustomersCustomerCardsIdResponseBody200)
-> Parser (Maybe Text)
-> Parser
     (Maybe SourceTypeGiropay
      -> Maybe Text
      -> Maybe SourceTypeIdeal
      -> Maybe SourceTypeKlarna
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Object
      -> Maybe SourceTypeMultibanco
      -> Maybe Text
      -> Maybe PostCustomersCustomerCardsIdResponseBody200Object'
      -> Maybe PostCustomersCustomerCardsIdResponseBody200Owner'
      -> Maybe SourceTypeP24
      -> Maybe SourceReceiverFlow
      -> Maybe
           PostCustomersCustomerCardsIdResponseBody200Recipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe PostCustomersCustomerCardsIdResponseBody200Type'
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> PostCustomersCustomerCardsIdResponseBody200)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"funding")) Parser
  (Maybe SourceTypeGiropay
   -> Maybe Text
   -> Maybe SourceTypeIdeal
   -> Maybe SourceTypeKlarna
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Object
   -> Maybe SourceTypeMultibanco
   -> Maybe Text
   -> Maybe PostCustomersCustomerCardsIdResponseBody200Object'
   -> Maybe PostCustomersCustomerCardsIdResponseBody200Owner'
   -> Maybe SourceTypeP24
   -> Maybe SourceReceiverFlow
   -> Maybe
        PostCustomersCustomerCardsIdResponseBody200Recipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe PostCustomersCustomerCardsIdResponseBody200Type'
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> PostCustomersCustomerCardsIdResponseBody200)
-> Parser (Maybe SourceTypeGiropay)
-> Parser
     (Maybe Text
      -> Maybe SourceTypeIdeal
      -> Maybe SourceTypeKlarna
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Object
      -> Maybe SourceTypeMultibanco
      -> Maybe Text
      -> Maybe PostCustomersCustomerCardsIdResponseBody200Object'
      -> Maybe PostCustomersCustomerCardsIdResponseBody200Owner'
      -> Maybe SourceTypeP24
      -> Maybe SourceReceiverFlow
      -> Maybe
           PostCustomersCustomerCardsIdResponseBody200Recipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe PostCustomersCustomerCardsIdResponseBody200Type'
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> PostCustomersCustomerCardsIdResponseBody200)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe SourceTypeGiropay)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"giropay")) Parser
  (Maybe Text
   -> Maybe SourceTypeIdeal
   -> Maybe SourceTypeKlarna
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Object
   -> Maybe SourceTypeMultibanco
   -> Maybe Text
   -> Maybe PostCustomersCustomerCardsIdResponseBody200Object'
   -> Maybe PostCustomersCustomerCardsIdResponseBody200Owner'
   -> Maybe SourceTypeP24
   -> Maybe SourceReceiverFlow
   -> Maybe
        PostCustomersCustomerCardsIdResponseBody200Recipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe PostCustomersCustomerCardsIdResponseBody200Type'
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> PostCustomersCustomerCardsIdResponseBody200)
-> Parser (Maybe Text)
-> Parser
     (Maybe SourceTypeIdeal
      -> Maybe SourceTypeKlarna
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Object
      -> Maybe SourceTypeMultibanco
      -> Maybe Text
      -> Maybe PostCustomersCustomerCardsIdResponseBody200Object'
      -> Maybe PostCustomersCustomerCardsIdResponseBody200Owner'
      -> Maybe SourceTypeP24
      -> Maybe SourceReceiverFlow
      -> Maybe
           PostCustomersCustomerCardsIdResponseBody200Recipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe PostCustomersCustomerCardsIdResponseBody200Type'
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> PostCustomersCustomerCardsIdResponseBody200)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"id")) Parser
  (Maybe SourceTypeIdeal
   -> Maybe SourceTypeKlarna
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Object
   -> Maybe SourceTypeMultibanco
   -> Maybe Text
   -> Maybe PostCustomersCustomerCardsIdResponseBody200Object'
   -> Maybe PostCustomersCustomerCardsIdResponseBody200Owner'
   -> Maybe SourceTypeP24
   -> Maybe SourceReceiverFlow
   -> Maybe
        PostCustomersCustomerCardsIdResponseBody200Recipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe PostCustomersCustomerCardsIdResponseBody200Type'
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> PostCustomersCustomerCardsIdResponseBody200)
-> Parser (Maybe SourceTypeIdeal)
-> Parser
     (Maybe SourceTypeKlarna
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Object
      -> Maybe SourceTypeMultibanco
      -> Maybe Text
      -> Maybe PostCustomersCustomerCardsIdResponseBody200Object'
      -> Maybe PostCustomersCustomerCardsIdResponseBody200Owner'
      -> Maybe SourceTypeP24
      -> Maybe SourceReceiverFlow
      -> Maybe
           PostCustomersCustomerCardsIdResponseBody200Recipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe PostCustomersCustomerCardsIdResponseBody200Type'
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> PostCustomersCustomerCardsIdResponseBody200)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe SourceTypeIdeal)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"ideal")) Parser
  (Maybe SourceTypeKlarna
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Object
   -> Maybe SourceTypeMultibanco
   -> Maybe Text
   -> Maybe PostCustomersCustomerCardsIdResponseBody200Object'
   -> Maybe PostCustomersCustomerCardsIdResponseBody200Owner'
   -> Maybe SourceTypeP24
   -> Maybe SourceReceiverFlow
   -> Maybe
        PostCustomersCustomerCardsIdResponseBody200Recipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe PostCustomersCustomerCardsIdResponseBody200Type'
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> PostCustomersCustomerCardsIdResponseBody200)
-> Parser (Maybe SourceTypeKlarna)
-> Parser
     (Maybe Text
      -> Maybe Bool
      -> Maybe Object
      -> Maybe SourceTypeMultibanco
      -> Maybe Text
      -> Maybe PostCustomersCustomerCardsIdResponseBody200Object'
      -> Maybe PostCustomersCustomerCardsIdResponseBody200Owner'
      -> Maybe SourceTypeP24
      -> Maybe SourceReceiverFlow
      -> Maybe
           PostCustomersCustomerCardsIdResponseBody200Recipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe PostCustomersCustomerCardsIdResponseBody200Type'
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> PostCustomersCustomerCardsIdResponseBody200)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe SourceTypeKlarna)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"klarna")) Parser
  (Maybe Text
   -> Maybe Bool
   -> Maybe Object
   -> Maybe SourceTypeMultibanco
   -> Maybe Text
   -> Maybe PostCustomersCustomerCardsIdResponseBody200Object'
   -> Maybe PostCustomersCustomerCardsIdResponseBody200Owner'
   -> Maybe SourceTypeP24
   -> Maybe SourceReceiverFlow
   -> Maybe
        PostCustomersCustomerCardsIdResponseBody200Recipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe PostCustomersCustomerCardsIdResponseBody200Type'
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> PostCustomersCustomerCardsIdResponseBody200)
-> Parser (Maybe Text)
-> Parser
     (Maybe Bool
      -> Maybe Object
      -> Maybe SourceTypeMultibanco
      -> Maybe Text
      -> Maybe PostCustomersCustomerCardsIdResponseBody200Object'
      -> Maybe PostCustomersCustomerCardsIdResponseBody200Owner'
      -> Maybe SourceTypeP24
      -> Maybe SourceReceiverFlow
      -> Maybe
           PostCustomersCustomerCardsIdResponseBody200Recipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe PostCustomersCustomerCardsIdResponseBody200Type'
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> PostCustomersCustomerCardsIdResponseBody200)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"last4")) Parser
  (Maybe Bool
   -> Maybe Object
   -> Maybe SourceTypeMultibanco
   -> Maybe Text
   -> Maybe PostCustomersCustomerCardsIdResponseBody200Object'
   -> Maybe PostCustomersCustomerCardsIdResponseBody200Owner'
   -> Maybe SourceTypeP24
   -> Maybe SourceReceiverFlow
   -> Maybe
        PostCustomersCustomerCardsIdResponseBody200Recipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe PostCustomersCustomerCardsIdResponseBody200Type'
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> PostCustomersCustomerCardsIdResponseBody200)
-> Parser (Maybe Bool)
-> Parser
     (Maybe Object
      -> Maybe SourceTypeMultibanco
      -> Maybe Text
      -> Maybe PostCustomersCustomerCardsIdResponseBody200Object'
      -> Maybe PostCustomersCustomerCardsIdResponseBody200Owner'
      -> Maybe SourceTypeP24
      -> Maybe SourceReceiverFlow
      -> Maybe
           PostCustomersCustomerCardsIdResponseBody200Recipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe PostCustomersCustomerCardsIdResponseBody200Type'
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> PostCustomersCustomerCardsIdResponseBody200)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"livemode")) Parser
  (Maybe Object
   -> Maybe SourceTypeMultibanco
   -> Maybe Text
   -> Maybe PostCustomersCustomerCardsIdResponseBody200Object'
   -> Maybe PostCustomersCustomerCardsIdResponseBody200Owner'
   -> Maybe SourceTypeP24
   -> Maybe SourceReceiverFlow
   -> Maybe
        PostCustomersCustomerCardsIdResponseBody200Recipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe PostCustomersCustomerCardsIdResponseBody200Type'
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> PostCustomersCustomerCardsIdResponseBody200)
-> Parser (Maybe Object)
-> Parser
     (Maybe SourceTypeMultibanco
      -> Maybe Text
      -> Maybe PostCustomersCustomerCardsIdResponseBody200Object'
      -> Maybe PostCustomersCustomerCardsIdResponseBody200Owner'
      -> Maybe SourceTypeP24
      -> Maybe SourceReceiverFlow
      -> Maybe
           PostCustomersCustomerCardsIdResponseBody200Recipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe PostCustomersCustomerCardsIdResponseBody200Type'
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> PostCustomersCustomerCardsIdResponseBody200)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Object)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"metadata")) Parser
  (Maybe SourceTypeMultibanco
   -> Maybe Text
   -> Maybe PostCustomersCustomerCardsIdResponseBody200Object'
   -> Maybe PostCustomersCustomerCardsIdResponseBody200Owner'
   -> Maybe SourceTypeP24
   -> Maybe SourceReceiverFlow
   -> Maybe
        PostCustomersCustomerCardsIdResponseBody200Recipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe PostCustomersCustomerCardsIdResponseBody200Type'
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> PostCustomersCustomerCardsIdResponseBody200)
-> Parser (Maybe SourceTypeMultibanco)
-> Parser
     (Maybe Text
      -> Maybe PostCustomersCustomerCardsIdResponseBody200Object'
      -> Maybe PostCustomersCustomerCardsIdResponseBody200Owner'
      -> Maybe SourceTypeP24
      -> Maybe SourceReceiverFlow
      -> Maybe
           PostCustomersCustomerCardsIdResponseBody200Recipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe PostCustomersCustomerCardsIdResponseBody200Type'
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> PostCustomersCustomerCardsIdResponseBody200)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe SourceTypeMultibanco)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"multibanco")) Parser
  (Maybe Text
   -> Maybe PostCustomersCustomerCardsIdResponseBody200Object'
   -> Maybe PostCustomersCustomerCardsIdResponseBody200Owner'
   -> Maybe SourceTypeP24
   -> Maybe SourceReceiverFlow
   -> Maybe
        PostCustomersCustomerCardsIdResponseBody200Recipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe PostCustomersCustomerCardsIdResponseBody200Type'
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> PostCustomersCustomerCardsIdResponseBody200)
-> Parser (Maybe Text)
-> Parser
     (Maybe PostCustomersCustomerCardsIdResponseBody200Object'
      -> Maybe PostCustomersCustomerCardsIdResponseBody200Owner'
      -> Maybe SourceTypeP24
      -> Maybe SourceReceiverFlow
      -> Maybe
           PostCustomersCustomerCardsIdResponseBody200Recipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe PostCustomersCustomerCardsIdResponseBody200Type'
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> PostCustomersCustomerCardsIdResponseBody200)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"name")) Parser
  (Maybe PostCustomersCustomerCardsIdResponseBody200Object'
   -> Maybe PostCustomersCustomerCardsIdResponseBody200Owner'
   -> Maybe SourceTypeP24
   -> Maybe SourceReceiverFlow
   -> Maybe
        PostCustomersCustomerCardsIdResponseBody200Recipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe PostCustomersCustomerCardsIdResponseBody200Type'
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> PostCustomersCustomerCardsIdResponseBody200)
-> Parser
     (Maybe PostCustomersCustomerCardsIdResponseBody200Object')
-> Parser
     (Maybe PostCustomersCustomerCardsIdResponseBody200Owner'
      -> Maybe SourceTypeP24
      -> Maybe SourceReceiverFlow
      -> Maybe
           PostCustomersCustomerCardsIdResponseBody200Recipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe PostCustomersCustomerCardsIdResponseBody200Type'
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> PostCustomersCustomerCardsIdResponseBody200)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     (Maybe PostCustomersCustomerCardsIdResponseBody200Object')
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"object")) Parser
  (Maybe PostCustomersCustomerCardsIdResponseBody200Owner'
   -> Maybe SourceTypeP24
   -> Maybe SourceReceiverFlow
   -> Maybe
        PostCustomersCustomerCardsIdResponseBody200Recipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe PostCustomersCustomerCardsIdResponseBody200Type'
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> PostCustomersCustomerCardsIdResponseBody200)
-> Parser (Maybe PostCustomersCustomerCardsIdResponseBody200Owner')
-> Parser
     (Maybe SourceTypeP24
      -> Maybe SourceReceiverFlow
      -> Maybe
           PostCustomersCustomerCardsIdResponseBody200Recipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe PostCustomersCustomerCardsIdResponseBody200Type'
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> PostCustomersCustomerCardsIdResponseBody200)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser (Maybe PostCustomersCustomerCardsIdResponseBody200Owner')
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"owner")) Parser
  (Maybe SourceTypeP24
   -> Maybe SourceReceiverFlow
   -> Maybe
        PostCustomersCustomerCardsIdResponseBody200Recipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe PostCustomersCustomerCardsIdResponseBody200Type'
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> PostCustomersCustomerCardsIdResponseBody200)
-> Parser (Maybe SourceTypeP24)
-> Parser
     (Maybe SourceReceiverFlow
      -> Maybe
           PostCustomersCustomerCardsIdResponseBody200Recipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe PostCustomersCustomerCardsIdResponseBody200Type'
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> PostCustomersCustomerCardsIdResponseBody200)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe SourceTypeP24)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"p24")) Parser
  (Maybe SourceReceiverFlow
   -> Maybe
        PostCustomersCustomerCardsIdResponseBody200Recipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe PostCustomersCustomerCardsIdResponseBody200Type'
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> PostCustomersCustomerCardsIdResponseBody200)
-> Parser (Maybe SourceReceiverFlow)
-> Parser
     (Maybe
        PostCustomersCustomerCardsIdResponseBody200Recipient'Variants
      -> Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe PostCustomersCustomerCardsIdResponseBody200Type'
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> PostCustomersCustomerCardsIdResponseBody200)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe SourceReceiverFlow)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"receiver")) Parser
  (Maybe
     PostCustomersCustomerCardsIdResponseBody200Recipient'Variants
   -> Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe PostCustomersCustomerCardsIdResponseBody200Type'
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> PostCustomersCustomerCardsIdResponseBody200)
-> Parser
     (Maybe
        PostCustomersCustomerCardsIdResponseBody200Recipient'Variants)
-> Parser
     (Maybe SourceRedirectFlow
      -> Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe PostCustomersCustomerCardsIdResponseBody200Type'
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> PostCustomersCustomerCardsIdResponseBody200)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     (Maybe
        PostCustomersCustomerCardsIdResponseBody200Recipient'Variants)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"recipient")) Parser
  (Maybe SourceRedirectFlow
   -> Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe PostCustomersCustomerCardsIdResponseBody200Type'
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> PostCustomersCustomerCardsIdResponseBody200)
-> Parser (Maybe SourceRedirectFlow)
-> Parser
     (Maybe Text
      -> Maybe SourceTypeSepaDebit
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe PostCustomersCustomerCardsIdResponseBody200Type'
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> PostCustomersCustomerCardsIdResponseBody200)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe SourceRedirectFlow)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"redirect")) Parser
  (Maybe Text
   -> Maybe SourceTypeSepaDebit
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe PostCustomersCustomerCardsIdResponseBody200Type'
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> PostCustomersCustomerCardsIdResponseBody200)
-> Parser (Maybe Text)
-> Parser
     (Maybe SourceTypeSepaDebit
      -> Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe PostCustomersCustomerCardsIdResponseBody200Type'
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> PostCustomersCustomerCardsIdResponseBody200)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"routing_number")) Parser
  (Maybe SourceTypeSepaDebit
   -> Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe PostCustomersCustomerCardsIdResponseBody200Type'
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> PostCustomersCustomerCardsIdResponseBody200)
-> Parser (Maybe SourceTypeSepaDebit)
-> Parser
     (Maybe SourceTypeSofort
      -> Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe PostCustomersCustomerCardsIdResponseBody200Type'
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> PostCustomersCustomerCardsIdResponseBody200)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe SourceTypeSepaDebit)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"sepa_debit")) Parser
  (Maybe SourceTypeSofort
   -> Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe PostCustomersCustomerCardsIdResponseBody200Type'
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> PostCustomersCustomerCardsIdResponseBody200)
-> Parser (Maybe SourceTypeSofort)
-> Parser
     (Maybe SourceOrder
      -> Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe PostCustomersCustomerCardsIdResponseBody200Type'
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> PostCustomersCustomerCardsIdResponseBody200)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe SourceTypeSofort)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"sofort")) Parser
  (Maybe SourceOrder
   -> Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe PostCustomersCustomerCardsIdResponseBody200Type'
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> PostCustomersCustomerCardsIdResponseBody200)
-> Parser (Maybe SourceOrder)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe PostCustomersCustomerCardsIdResponseBody200Type'
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> PostCustomersCustomerCardsIdResponseBody200)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe SourceOrder)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"source_order")) Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe PostCustomersCustomerCardsIdResponseBody200Type'
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> PostCustomersCustomerCardsIdResponseBody200)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe PostCustomersCustomerCardsIdResponseBody200Type'
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> PostCustomersCustomerCardsIdResponseBody200)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"statement_descriptor")) Parser
  (Maybe Text
   -> Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe PostCustomersCustomerCardsIdResponseBody200Type'
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> PostCustomersCustomerCardsIdResponseBody200)
-> Parser (Maybe Text)
-> Parser
     (Maybe SourceTypeThreeDSecure
      -> Maybe Text
      -> Maybe PostCustomersCustomerCardsIdResponseBody200Type'
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> PostCustomersCustomerCardsIdResponseBody200)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"status")) Parser
  (Maybe SourceTypeThreeDSecure
   -> Maybe Text
   -> Maybe PostCustomersCustomerCardsIdResponseBody200Type'
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> PostCustomersCustomerCardsIdResponseBody200)
-> Parser (Maybe SourceTypeThreeDSecure)
-> Parser
     (Maybe Text
      -> Maybe PostCustomersCustomerCardsIdResponseBody200Type'
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> PostCustomersCustomerCardsIdResponseBody200)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe SourceTypeThreeDSecure)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"three_d_secure")) Parser
  (Maybe Text
   -> Maybe PostCustomersCustomerCardsIdResponseBody200Type'
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> PostCustomersCustomerCardsIdResponseBody200)
-> Parser (Maybe Text)
-> Parser
     (Maybe PostCustomersCustomerCardsIdResponseBody200Type'
      -> Maybe Text
      -> Maybe SourceTypeWechat
      -> PostCustomersCustomerCardsIdResponseBody200)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"tokenization_method")) Parser
  (Maybe PostCustomersCustomerCardsIdResponseBody200Type'
   -> Maybe Text
   -> Maybe SourceTypeWechat
   -> PostCustomersCustomerCardsIdResponseBody200)
-> Parser (Maybe PostCustomersCustomerCardsIdResponseBody200Type')
-> Parser
     (Maybe Text
      -> Maybe SourceTypeWechat
      -> PostCustomersCustomerCardsIdResponseBody200)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser (Maybe PostCustomersCustomerCardsIdResponseBody200Type')
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"type")) Parser
  (Maybe Text
   -> Maybe SourceTypeWechat
   -> PostCustomersCustomerCardsIdResponseBody200)
-> Parser (Maybe Text)
-> Parser
     (Maybe SourceTypeWechat
      -> PostCustomersCustomerCardsIdResponseBody200)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"usage")) Parser
  (Maybe SourceTypeWechat
   -> PostCustomersCustomerCardsIdResponseBody200)
-> Parser (Maybe SourceTypeWechat)
-> Parser PostCustomersCustomerCardsIdResponseBody200
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe SourceTypeWechat)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"wechat"))

-- | Create a new 'PostCustomersCustomerCardsIdResponseBody200' with all required fields.
mkPostCustomersCustomerCardsIdResponseBody200 :: PostCustomersCustomerCardsIdResponseBody200
mkPostCustomersCustomerCardsIdResponseBody200 :: PostCustomersCustomerCardsIdResponseBody200
mkPostCustomersCustomerCardsIdResponseBody200 =
  PostCustomersCustomerCardsIdResponseBody200 :: Maybe PostCustomersCustomerCardsIdResponseBody200Account'Variants
-> Maybe Text
-> Maybe Text
-> Maybe SourceTypeAchCreditTransfer
-> Maybe SourceTypeAchDebit
-> Maybe SourceTypeAcssDebit
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe SourceTypeAlipay
-> Maybe Int
-> Maybe SourceTypeAuBecsDebit
-> Maybe
     [PostCustomersCustomerCardsIdResponseBody200AvailablePayoutMethods']
-> Maybe SourceTypeBancontact
-> Maybe Text
-> Maybe Text
-> Maybe SourceTypeCard
-> Maybe SourceTypeCardPresent
-> Maybe Text
-> Maybe SourceCodeVerificationFlow
-> Maybe Text
-> Maybe Int
-> Maybe Text
-> Maybe
     PostCustomersCustomerCardsIdResponseBody200Customer'Variants
-> Maybe Text
-> Maybe Bool
-> Maybe Text
-> Maybe SourceTypeEps
-> Maybe Int
-> Maybe Int
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe SourceTypeGiropay
-> Maybe Text
-> Maybe SourceTypeIdeal
-> Maybe SourceTypeKlarna
-> Maybe Text
-> Maybe Bool
-> Maybe Object
-> Maybe SourceTypeMultibanco
-> Maybe Text
-> Maybe PostCustomersCustomerCardsIdResponseBody200Object'
-> Maybe PostCustomersCustomerCardsIdResponseBody200Owner'
-> Maybe SourceTypeP24
-> Maybe SourceReceiverFlow
-> Maybe
     PostCustomersCustomerCardsIdResponseBody200Recipient'Variants
-> Maybe SourceRedirectFlow
-> Maybe Text
-> Maybe SourceTypeSepaDebit
-> Maybe SourceTypeSofort
-> Maybe SourceOrder
-> Maybe Text
-> Maybe Text
-> Maybe SourceTypeThreeDSecure
-> Maybe Text
-> Maybe PostCustomersCustomerCardsIdResponseBody200Type'
-> Maybe Text
-> Maybe SourceTypeWechat
-> PostCustomersCustomerCardsIdResponseBody200
PostCustomersCustomerCardsIdResponseBody200
    { postCustomersCustomerCardsIdResponseBody200Account :: Maybe PostCustomersCustomerCardsIdResponseBody200Account'Variants
postCustomersCustomerCardsIdResponseBody200Account = Maybe PostCustomersCustomerCardsIdResponseBody200Account'Variants
forall a. Maybe a
GHC.Maybe.Nothing,
      postCustomersCustomerCardsIdResponseBody200AccountHolderName :: Maybe Text
postCustomersCustomerCardsIdResponseBody200AccountHolderName = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      postCustomersCustomerCardsIdResponseBody200AccountHolderType :: Maybe Text
postCustomersCustomerCardsIdResponseBody200AccountHolderType = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      postCustomersCustomerCardsIdResponseBody200AchCreditTransfer :: Maybe SourceTypeAchCreditTransfer
postCustomersCustomerCardsIdResponseBody200AchCreditTransfer = Maybe SourceTypeAchCreditTransfer
forall a. Maybe a
GHC.Maybe.Nothing,
      postCustomersCustomerCardsIdResponseBody200AchDebit :: Maybe SourceTypeAchDebit
postCustomersCustomerCardsIdResponseBody200AchDebit = Maybe SourceTypeAchDebit
forall a. Maybe a
GHC.Maybe.Nothing,
      postCustomersCustomerCardsIdResponseBody200AcssDebit :: Maybe SourceTypeAcssDebit
postCustomersCustomerCardsIdResponseBody200AcssDebit = Maybe SourceTypeAcssDebit
forall a. Maybe a
GHC.Maybe.Nothing,
      postCustomersCustomerCardsIdResponseBody200AddressCity :: Maybe Text
postCustomersCustomerCardsIdResponseBody200AddressCity = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      postCustomersCustomerCardsIdResponseBody200AddressCountry :: Maybe Text
postCustomersCustomerCardsIdResponseBody200AddressCountry = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      postCustomersCustomerCardsIdResponseBody200AddressLine1 :: Maybe Text
postCustomersCustomerCardsIdResponseBody200AddressLine1 = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      postCustomersCustomerCardsIdResponseBody200AddressLine1Check :: Maybe Text
postCustomersCustomerCardsIdResponseBody200AddressLine1Check = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      postCustomersCustomerCardsIdResponseBody200AddressLine2 :: Maybe Text
postCustomersCustomerCardsIdResponseBody200AddressLine2 = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      postCustomersCustomerCardsIdResponseBody200AddressState :: Maybe Text
postCustomersCustomerCardsIdResponseBody200AddressState = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      postCustomersCustomerCardsIdResponseBody200AddressZip :: Maybe Text
postCustomersCustomerCardsIdResponseBody200AddressZip = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      postCustomersCustomerCardsIdResponseBody200AddressZipCheck :: Maybe Text
postCustomersCustomerCardsIdResponseBody200AddressZipCheck = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      postCustomersCustomerCardsIdResponseBody200Alipay :: Maybe SourceTypeAlipay
postCustomersCustomerCardsIdResponseBody200Alipay = Maybe SourceTypeAlipay
forall a. Maybe a
GHC.Maybe.Nothing,
      postCustomersCustomerCardsIdResponseBody200Amount :: Maybe Int
postCustomersCustomerCardsIdResponseBody200Amount = Maybe Int
forall a. Maybe a
GHC.Maybe.Nothing,
      postCustomersCustomerCardsIdResponseBody200AuBecsDebit :: Maybe SourceTypeAuBecsDebit
postCustomersCustomerCardsIdResponseBody200AuBecsDebit = Maybe SourceTypeAuBecsDebit
forall a. Maybe a
GHC.Maybe.Nothing,
      postCustomersCustomerCardsIdResponseBody200AvailablePayoutMethods :: Maybe
  [PostCustomersCustomerCardsIdResponseBody200AvailablePayoutMethods']
postCustomersCustomerCardsIdResponseBody200AvailablePayoutMethods = Maybe
  [PostCustomersCustomerCardsIdResponseBody200AvailablePayoutMethods']
forall a. Maybe a
GHC.Maybe.Nothing,
      postCustomersCustomerCardsIdResponseBody200Bancontact :: Maybe SourceTypeBancontact
postCustomersCustomerCardsIdResponseBody200Bancontact = Maybe SourceTypeBancontact
forall a. Maybe a
GHC.Maybe.Nothing,
      postCustomersCustomerCardsIdResponseBody200BankName :: Maybe Text
postCustomersCustomerCardsIdResponseBody200BankName = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      postCustomersCustomerCardsIdResponseBody200Brand :: Maybe Text
postCustomersCustomerCardsIdResponseBody200Brand = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      postCustomersCustomerCardsIdResponseBody200Card :: Maybe SourceTypeCard
postCustomersCustomerCardsIdResponseBody200Card = Maybe SourceTypeCard
forall a. Maybe a
GHC.Maybe.Nothing,
      postCustomersCustomerCardsIdResponseBody200CardPresent :: Maybe SourceTypeCardPresent
postCustomersCustomerCardsIdResponseBody200CardPresent = Maybe SourceTypeCardPresent
forall a. Maybe a
GHC.Maybe.Nothing,
      postCustomersCustomerCardsIdResponseBody200ClientSecret :: Maybe Text
postCustomersCustomerCardsIdResponseBody200ClientSecret = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      postCustomersCustomerCardsIdResponseBody200CodeVerification :: Maybe SourceCodeVerificationFlow
postCustomersCustomerCardsIdResponseBody200CodeVerification = Maybe SourceCodeVerificationFlow
forall a. Maybe a
GHC.Maybe.Nothing,
      postCustomersCustomerCardsIdResponseBody200Country :: Maybe Text
postCustomersCustomerCardsIdResponseBody200Country = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      postCustomersCustomerCardsIdResponseBody200Created :: Maybe Int
postCustomersCustomerCardsIdResponseBody200Created = Maybe Int
forall a. Maybe a
GHC.Maybe.Nothing,
      postCustomersCustomerCardsIdResponseBody200Currency :: Maybe Text
postCustomersCustomerCardsIdResponseBody200Currency = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      postCustomersCustomerCardsIdResponseBody200Customer :: Maybe PostCustomersCustomerCardsIdResponseBody200Customer'Variants
postCustomersCustomerCardsIdResponseBody200Customer = Maybe PostCustomersCustomerCardsIdResponseBody200Customer'Variants
forall a. Maybe a
GHC.Maybe.Nothing,
      postCustomersCustomerCardsIdResponseBody200CvcCheck :: Maybe Text
postCustomersCustomerCardsIdResponseBody200CvcCheck = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      postCustomersCustomerCardsIdResponseBody200DefaultForCurrency :: Maybe Bool
postCustomersCustomerCardsIdResponseBody200DefaultForCurrency = Maybe Bool
forall a. Maybe a
GHC.Maybe.Nothing,
      postCustomersCustomerCardsIdResponseBody200DynamicLast4 :: Maybe Text
postCustomersCustomerCardsIdResponseBody200DynamicLast4 = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      postCustomersCustomerCardsIdResponseBody200Eps :: Maybe SourceTypeEps
postCustomersCustomerCardsIdResponseBody200Eps = Maybe SourceTypeEps
forall a. Maybe a
GHC.Maybe.Nothing,
      postCustomersCustomerCardsIdResponseBody200ExpMonth :: Maybe Int
postCustomersCustomerCardsIdResponseBody200ExpMonth = Maybe Int
forall a. Maybe a
GHC.Maybe.Nothing,
      postCustomersCustomerCardsIdResponseBody200ExpYear :: Maybe Int
postCustomersCustomerCardsIdResponseBody200ExpYear = Maybe Int
forall a. Maybe a
GHC.Maybe.Nothing,
      postCustomersCustomerCardsIdResponseBody200Fingerprint :: Maybe Text
postCustomersCustomerCardsIdResponseBody200Fingerprint = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      postCustomersCustomerCardsIdResponseBody200Flow :: Maybe Text
postCustomersCustomerCardsIdResponseBody200Flow = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      postCustomersCustomerCardsIdResponseBody200Funding :: Maybe Text
postCustomersCustomerCardsIdResponseBody200Funding = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      postCustomersCustomerCardsIdResponseBody200Giropay :: Maybe SourceTypeGiropay
postCustomersCustomerCardsIdResponseBody200Giropay = Maybe SourceTypeGiropay
forall a. Maybe a
GHC.Maybe.Nothing,
      postCustomersCustomerCardsIdResponseBody200Id :: Maybe Text
postCustomersCustomerCardsIdResponseBody200Id = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      postCustomersCustomerCardsIdResponseBody200Ideal :: Maybe SourceTypeIdeal
postCustomersCustomerCardsIdResponseBody200Ideal = Maybe SourceTypeIdeal
forall a. Maybe a
GHC.Maybe.Nothing,
      postCustomersCustomerCardsIdResponseBody200Klarna :: Maybe SourceTypeKlarna
postCustomersCustomerCardsIdResponseBody200Klarna = Maybe SourceTypeKlarna
forall a. Maybe a
GHC.Maybe.Nothing,
      postCustomersCustomerCardsIdResponseBody200Last4 :: Maybe Text
postCustomersCustomerCardsIdResponseBody200Last4 = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      postCustomersCustomerCardsIdResponseBody200Livemode :: Maybe Bool
postCustomersCustomerCardsIdResponseBody200Livemode = Maybe Bool
forall a. Maybe a
GHC.Maybe.Nothing,
      postCustomersCustomerCardsIdResponseBody200Metadata :: Maybe Object
postCustomersCustomerCardsIdResponseBody200Metadata = Maybe Object
forall a. Maybe a
GHC.Maybe.Nothing,
      postCustomersCustomerCardsIdResponseBody200Multibanco :: Maybe SourceTypeMultibanco
postCustomersCustomerCardsIdResponseBody200Multibanco = Maybe SourceTypeMultibanco
forall a. Maybe a
GHC.Maybe.Nothing,
      postCustomersCustomerCardsIdResponseBody200Name :: Maybe Text
postCustomersCustomerCardsIdResponseBody200Name = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      postCustomersCustomerCardsIdResponseBody200Object :: Maybe PostCustomersCustomerCardsIdResponseBody200Object'
postCustomersCustomerCardsIdResponseBody200Object = Maybe PostCustomersCustomerCardsIdResponseBody200Object'
forall a. Maybe a
GHC.Maybe.Nothing,
      postCustomersCustomerCardsIdResponseBody200Owner :: Maybe PostCustomersCustomerCardsIdResponseBody200Owner'
postCustomersCustomerCardsIdResponseBody200Owner = Maybe PostCustomersCustomerCardsIdResponseBody200Owner'
forall a. Maybe a
GHC.Maybe.Nothing,
      postCustomersCustomerCardsIdResponseBody200P24 :: Maybe SourceTypeP24
postCustomersCustomerCardsIdResponseBody200P24 = Maybe SourceTypeP24
forall a. Maybe a
GHC.Maybe.Nothing,
      postCustomersCustomerCardsIdResponseBody200Receiver :: Maybe SourceReceiverFlow
postCustomersCustomerCardsIdResponseBody200Receiver = Maybe SourceReceiverFlow
forall a. Maybe a
GHC.Maybe.Nothing,
      postCustomersCustomerCardsIdResponseBody200Recipient :: Maybe PostCustomersCustomerCardsIdResponseBody200Recipient'Variants
postCustomersCustomerCardsIdResponseBody200Recipient = Maybe PostCustomersCustomerCardsIdResponseBody200Recipient'Variants
forall a. Maybe a
GHC.Maybe.Nothing,
      postCustomersCustomerCardsIdResponseBody200Redirect :: Maybe SourceRedirectFlow
postCustomersCustomerCardsIdResponseBody200Redirect = Maybe SourceRedirectFlow
forall a. Maybe a
GHC.Maybe.Nothing,
      postCustomersCustomerCardsIdResponseBody200RoutingNumber :: Maybe Text
postCustomersCustomerCardsIdResponseBody200RoutingNumber = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      postCustomersCustomerCardsIdResponseBody200SepaDebit :: Maybe SourceTypeSepaDebit
postCustomersCustomerCardsIdResponseBody200SepaDebit = Maybe SourceTypeSepaDebit
forall a. Maybe a
GHC.Maybe.Nothing,
      postCustomersCustomerCardsIdResponseBody200Sofort :: Maybe SourceTypeSofort
postCustomersCustomerCardsIdResponseBody200Sofort = Maybe SourceTypeSofort
forall a. Maybe a
GHC.Maybe.Nothing,
      postCustomersCustomerCardsIdResponseBody200SourceOrder :: Maybe SourceOrder
postCustomersCustomerCardsIdResponseBody200SourceOrder = Maybe SourceOrder
forall a. Maybe a
GHC.Maybe.Nothing,
      postCustomersCustomerCardsIdResponseBody200StatementDescriptor :: Maybe Text
postCustomersCustomerCardsIdResponseBody200StatementDescriptor = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      postCustomersCustomerCardsIdResponseBody200Status :: Maybe Text
postCustomersCustomerCardsIdResponseBody200Status = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      postCustomersCustomerCardsIdResponseBody200ThreeDSecure :: Maybe SourceTypeThreeDSecure
postCustomersCustomerCardsIdResponseBody200ThreeDSecure = Maybe SourceTypeThreeDSecure
forall a. Maybe a
GHC.Maybe.Nothing,
      postCustomersCustomerCardsIdResponseBody200TokenizationMethod :: Maybe Text
postCustomersCustomerCardsIdResponseBody200TokenizationMethod = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      postCustomersCustomerCardsIdResponseBody200Type :: Maybe PostCustomersCustomerCardsIdResponseBody200Type'
postCustomersCustomerCardsIdResponseBody200Type = Maybe PostCustomersCustomerCardsIdResponseBody200Type'
forall a. Maybe a
GHC.Maybe.Nothing,
      postCustomersCustomerCardsIdResponseBody200Usage :: Maybe Text
postCustomersCustomerCardsIdResponseBody200Usage = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      postCustomersCustomerCardsIdResponseBody200Wechat :: Maybe SourceTypeWechat
postCustomersCustomerCardsIdResponseBody200Wechat = Maybe SourceTypeWechat
forall a. Maybe a
GHC.Maybe.Nothing
    }

-- | Defines the oneOf schema located at @paths.\/v1\/customers\/{customer}\/cards\/{id}.POST.responses.200.content.application\/json.schema.anyOf.properties.account.anyOf@ in the specification.
--
-- The account this card belongs to. This attribute will not be in the card object if the card belongs to a customer or recipient instead.
data PostCustomersCustomerCardsIdResponseBody200Account'Variants
  = PostCustomersCustomerCardsIdResponseBody200Account'Text Data.Text.Internal.Text
  | PostCustomersCustomerCardsIdResponseBody200Account'Account Account
  deriving (Int
-> PostCustomersCustomerCardsIdResponseBody200Account'Variants
-> String
-> String
[PostCustomersCustomerCardsIdResponseBody200Account'Variants]
-> String -> String
PostCustomersCustomerCardsIdResponseBody200Account'Variants
-> String
(Int
 -> PostCustomersCustomerCardsIdResponseBody200Account'Variants
 -> String
 -> String)
-> (PostCustomersCustomerCardsIdResponseBody200Account'Variants
    -> String)
-> ([PostCustomersCustomerCardsIdResponseBody200Account'Variants]
    -> String -> String)
-> Show PostCustomersCustomerCardsIdResponseBody200Account'Variants
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostCustomersCustomerCardsIdResponseBody200Account'Variants]
-> String -> String
$cshowList :: [PostCustomersCustomerCardsIdResponseBody200Account'Variants]
-> String -> String
show :: PostCustomersCustomerCardsIdResponseBody200Account'Variants
-> String
$cshow :: PostCustomersCustomerCardsIdResponseBody200Account'Variants
-> String
showsPrec :: Int
-> PostCustomersCustomerCardsIdResponseBody200Account'Variants
-> String
-> String
$cshowsPrec :: Int
-> PostCustomersCustomerCardsIdResponseBody200Account'Variants
-> String
-> String
GHC.Show.Show, PostCustomersCustomerCardsIdResponseBody200Account'Variants
-> PostCustomersCustomerCardsIdResponseBody200Account'Variants
-> Bool
(PostCustomersCustomerCardsIdResponseBody200Account'Variants
 -> PostCustomersCustomerCardsIdResponseBody200Account'Variants
 -> Bool)
-> (PostCustomersCustomerCardsIdResponseBody200Account'Variants
    -> PostCustomersCustomerCardsIdResponseBody200Account'Variants
    -> Bool)
-> Eq PostCustomersCustomerCardsIdResponseBody200Account'Variants
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostCustomersCustomerCardsIdResponseBody200Account'Variants
-> PostCustomersCustomerCardsIdResponseBody200Account'Variants
-> Bool
$c/= :: PostCustomersCustomerCardsIdResponseBody200Account'Variants
-> PostCustomersCustomerCardsIdResponseBody200Account'Variants
-> Bool
== :: PostCustomersCustomerCardsIdResponseBody200Account'Variants
-> PostCustomersCustomerCardsIdResponseBody200Account'Variants
-> Bool
$c== :: PostCustomersCustomerCardsIdResponseBody200Account'Variants
-> PostCustomersCustomerCardsIdResponseBody200Account'Variants
-> Bool
GHC.Classes.Eq)

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

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

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

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

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

-- | Defines the oneOf schema located at @paths.\/v1\/customers\/{customer}\/cards\/{id}.POST.responses.200.content.application\/json.schema.anyOf.properties.customer.anyOf@ in the specification.
--
-- The customer that this card belongs to. This attribute will not be in the card object if the card belongs to an account or recipient instead.
data PostCustomersCustomerCardsIdResponseBody200Customer'Variants
  = PostCustomersCustomerCardsIdResponseBody200Customer'Text Data.Text.Internal.Text
  | PostCustomersCustomerCardsIdResponseBody200Customer'Customer Customer
  | PostCustomersCustomerCardsIdResponseBody200Customer'DeletedCustomer DeletedCustomer
  deriving (Int
-> PostCustomersCustomerCardsIdResponseBody200Customer'Variants
-> String
-> String
[PostCustomersCustomerCardsIdResponseBody200Customer'Variants]
-> String -> String
PostCustomersCustomerCardsIdResponseBody200Customer'Variants
-> String
(Int
 -> PostCustomersCustomerCardsIdResponseBody200Customer'Variants
 -> String
 -> String)
-> (PostCustomersCustomerCardsIdResponseBody200Customer'Variants
    -> String)
-> ([PostCustomersCustomerCardsIdResponseBody200Customer'Variants]
    -> String -> String)
-> Show
     PostCustomersCustomerCardsIdResponseBody200Customer'Variants
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostCustomersCustomerCardsIdResponseBody200Customer'Variants]
-> String -> String
$cshowList :: [PostCustomersCustomerCardsIdResponseBody200Customer'Variants]
-> String -> String
show :: PostCustomersCustomerCardsIdResponseBody200Customer'Variants
-> String
$cshow :: PostCustomersCustomerCardsIdResponseBody200Customer'Variants
-> String
showsPrec :: Int
-> PostCustomersCustomerCardsIdResponseBody200Customer'Variants
-> String
-> String
$cshowsPrec :: Int
-> PostCustomersCustomerCardsIdResponseBody200Customer'Variants
-> String
-> String
GHC.Show.Show, PostCustomersCustomerCardsIdResponseBody200Customer'Variants
-> PostCustomersCustomerCardsIdResponseBody200Customer'Variants
-> Bool
(PostCustomersCustomerCardsIdResponseBody200Customer'Variants
 -> PostCustomersCustomerCardsIdResponseBody200Customer'Variants
 -> Bool)
-> (PostCustomersCustomerCardsIdResponseBody200Customer'Variants
    -> PostCustomersCustomerCardsIdResponseBody200Customer'Variants
    -> Bool)
-> Eq PostCustomersCustomerCardsIdResponseBody200Customer'Variants
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostCustomersCustomerCardsIdResponseBody200Customer'Variants
-> PostCustomersCustomerCardsIdResponseBody200Customer'Variants
-> Bool
$c/= :: PostCustomersCustomerCardsIdResponseBody200Customer'Variants
-> PostCustomersCustomerCardsIdResponseBody200Customer'Variants
-> Bool
== :: PostCustomersCustomerCardsIdResponseBody200Customer'Variants
-> PostCustomersCustomerCardsIdResponseBody200Customer'Variants
-> Bool
$c== :: PostCustomersCustomerCardsIdResponseBody200Customer'Variants
-> PostCustomersCustomerCardsIdResponseBody200Customer'Variants
-> Bool
GHC.Classes.Eq)

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

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

-- | Defines the enum schema located at @paths.\/v1\/customers\/{customer}\/cards\/{id}.POST.responses.200.content.application\/json.schema.anyOf.properties.object@ in the specification.
--
-- String representing the object\'s type. Objects of the same type share the same value.
data PostCustomersCustomerCardsIdResponseBody200Object'
  = -- | This case is used if the value encountered during decoding does not match any of the provided cases in the specification.
    PostCustomersCustomerCardsIdResponseBody200Object'Other Data.Aeson.Types.Internal.Value
  | -- | This constructor can be used to send values to the server which are not present in the specification yet.
    PostCustomersCustomerCardsIdResponseBody200Object'Typed Data.Text.Internal.Text
  | -- | Represents the JSON value @"card"@
    PostCustomersCustomerCardsIdResponseBody200Object'EnumCard
  deriving (Int
-> PostCustomersCustomerCardsIdResponseBody200Object'
-> String
-> String
[PostCustomersCustomerCardsIdResponseBody200Object']
-> String -> String
PostCustomersCustomerCardsIdResponseBody200Object' -> String
(Int
 -> PostCustomersCustomerCardsIdResponseBody200Object'
 -> String
 -> String)
-> (PostCustomersCustomerCardsIdResponseBody200Object' -> String)
-> ([PostCustomersCustomerCardsIdResponseBody200Object']
    -> String -> String)
-> Show PostCustomersCustomerCardsIdResponseBody200Object'
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostCustomersCustomerCardsIdResponseBody200Object']
-> String -> String
$cshowList :: [PostCustomersCustomerCardsIdResponseBody200Object']
-> String -> String
show :: PostCustomersCustomerCardsIdResponseBody200Object' -> String
$cshow :: PostCustomersCustomerCardsIdResponseBody200Object' -> String
showsPrec :: Int
-> PostCustomersCustomerCardsIdResponseBody200Object'
-> String
-> String
$cshowsPrec :: Int
-> PostCustomersCustomerCardsIdResponseBody200Object'
-> String
-> String
GHC.Show.Show, PostCustomersCustomerCardsIdResponseBody200Object'
-> PostCustomersCustomerCardsIdResponseBody200Object' -> Bool
(PostCustomersCustomerCardsIdResponseBody200Object'
 -> PostCustomersCustomerCardsIdResponseBody200Object' -> Bool)
-> (PostCustomersCustomerCardsIdResponseBody200Object'
    -> PostCustomersCustomerCardsIdResponseBody200Object' -> Bool)
-> Eq PostCustomersCustomerCardsIdResponseBody200Object'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostCustomersCustomerCardsIdResponseBody200Object'
-> PostCustomersCustomerCardsIdResponseBody200Object' -> Bool
$c/= :: PostCustomersCustomerCardsIdResponseBody200Object'
-> PostCustomersCustomerCardsIdResponseBody200Object' -> Bool
== :: PostCustomersCustomerCardsIdResponseBody200Object'
-> PostCustomersCustomerCardsIdResponseBody200Object' -> Bool
$c== :: PostCustomersCustomerCardsIdResponseBody200Object'
-> PostCustomersCustomerCardsIdResponseBody200Object' -> Bool
GHC.Classes.Eq)

instance Data.Aeson.Types.ToJSON.ToJSON PostCustomersCustomerCardsIdResponseBody200Object' where
  toJSON :: PostCustomersCustomerCardsIdResponseBody200Object' -> Value
toJSON (PostCustomersCustomerCardsIdResponseBody200Object'Other Value
val) = Value
val
  toJSON (PostCustomersCustomerCardsIdResponseBody200Object'Typed Text
val) = Text -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON Text
val
  toJSON (PostCustomersCustomerCardsIdResponseBody200Object'
PostCustomersCustomerCardsIdResponseBody200Object'EnumCard) = Value
"card"

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

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

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

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

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

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

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

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

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

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

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

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

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

-- | Defines the oneOf schema located at @paths.\/v1\/customers\/{customer}\/cards\/{id}.POST.responses.200.content.application\/json.schema.anyOf.properties.recipient.anyOf@ in the specification.
--
-- The recipient that this card belongs to. This attribute will not be in the card object if the card belongs to a customer or account instead.
data PostCustomersCustomerCardsIdResponseBody200Recipient'Variants
  = PostCustomersCustomerCardsIdResponseBody200Recipient'Text Data.Text.Internal.Text
  | PostCustomersCustomerCardsIdResponseBody200Recipient'Recipient Recipient
  deriving (Int
-> PostCustomersCustomerCardsIdResponseBody200Recipient'Variants
-> String
-> String
[PostCustomersCustomerCardsIdResponseBody200Recipient'Variants]
-> String -> String
PostCustomersCustomerCardsIdResponseBody200Recipient'Variants
-> String
(Int
 -> PostCustomersCustomerCardsIdResponseBody200Recipient'Variants
 -> String
 -> String)
-> (PostCustomersCustomerCardsIdResponseBody200Recipient'Variants
    -> String)
-> ([PostCustomersCustomerCardsIdResponseBody200Recipient'Variants]
    -> String -> String)
-> Show
     PostCustomersCustomerCardsIdResponseBody200Recipient'Variants
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostCustomersCustomerCardsIdResponseBody200Recipient'Variants]
-> String -> String
$cshowList :: [PostCustomersCustomerCardsIdResponseBody200Recipient'Variants]
-> String -> String
show :: PostCustomersCustomerCardsIdResponseBody200Recipient'Variants
-> String
$cshow :: PostCustomersCustomerCardsIdResponseBody200Recipient'Variants
-> String
showsPrec :: Int
-> PostCustomersCustomerCardsIdResponseBody200Recipient'Variants
-> String
-> String
$cshowsPrec :: Int
-> PostCustomersCustomerCardsIdResponseBody200Recipient'Variants
-> String
-> String
GHC.Show.Show, PostCustomersCustomerCardsIdResponseBody200Recipient'Variants
-> PostCustomersCustomerCardsIdResponseBody200Recipient'Variants
-> Bool
(PostCustomersCustomerCardsIdResponseBody200Recipient'Variants
 -> PostCustomersCustomerCardsIdResponseBody200Recipient'Variants
 -> Bool)
-> (PostCustomersCustomerCardsIdResponseBody200Recipient'Variants
    -> PostCustomersCustomerCardsIdResponseBody200Recipient'Variants
    -> Bool)
-> Eq PostCustomersCustomerCardsIdResponseBody200Recipient'Variants
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostCustomersCustomerCardsIdResponseBody200Recipient'Variants
-> PostCustomersCustomerCardsIdResponseBody200Recipient'Variants
-> Bool
$c/= :: PostCustomersCustomerCardsIdResponseBody200Recipient'Variants
-> PostCustomersCustomerCardsIdResponseBody200Recipient'Variants
-> Bool
== :: PostCustomersCustomerCardsIdResponseBody200Recipient'Variants
-> PostCustomersCustomerCardsIdResponseBody200Recipient'Variants
-> Bool
$c== :: PostCustomersCustomerCardsIdResponseBody200Recipient'Variants
-> PostCustomersCustomerCardsIdResponseBody200Recipient'Variants
-> Bool
GHC.Classes.Eq)

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

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

-- | Defines the enum schema located at @paths.\/v1\/customers\/{customer}\/cards\/{id}.POST.responses.200.content.application\/json.schema.anyOf.properties.type@ in the specification.
--
-- The \`type\` of the source. The \`type\` is a payment method, one of \`ach_credit_transfer\`, \`ach_debit\`, \`alipay\`, \`bancontact\`, \`card\`, \`card_present\`, \`eps\`, \`giropay\`, \`ideal\`, \`multibanco\`, \`klarna\`, \`p24\`, \`sepa_debit\`, \`sofort\`, \`three_d_secure\`, or \`wechat\`. An additional hash is included on the source with a name matching this value. It contains additional information specific to the [payment method](https:\/\/stripe.com\/docs\/sources) used.
data PostCustomersCustomerCardsIdResponseBody200Type'
  = -- | This case is used if the value encountered during decoding does not match any of the provided cases in the specification.
    PostCustomersCustomerCardsIdResponseBody200Type'Other Data.Aeson.Types.Internal.Value
  | -- | This constructor can be used to send values to the server which are not present in the specification yet.
    PostCustomersCustomerCardsIdResponseBody200Type'Typed Data.Text.Internal.Text
  | -- | Represents the JSON value @"ach_credit_transfer"@
    PostCustomersCustomerCardsIdResponseBody200Type'EnumAchCreditTransfer
  | -- | Represents the JSON value @"ach_debit"@
    PostCustomersCustomerCardsIdResponseBody200Type'EnumAchDebit
  | -- | Represents the JSON value @"acss_debit"@
    PostCustomersCustomerCardsIdResponseBody200Type'EnumAcssDebit
  | -- | Represents the JSON value @"alipay"@
    PostCustomersCustomerCardsIdResponseBody200Type'EnumAlipay
  | -- | Represents the JSON value @"au_becs_debit"@
    PostCustomersCustomerCardsIdResponseBody200Type'EnumAuBecsDebit
  | -- | Represents the JSON value @"bancontact"@
    PostCustomersCustomerCardsIdResponseBody200Type'EnumBancontact
  | -- | Represents the JSON value @"card"@
    PostCustomersCustomerCardsIdResponseBody200Type'EnumCard
  | -- | Represents the JSON value @"card_present"@
    PostCustomersCustomerCardsIdResponseBody200Type'EnumCardPresent
  | -- | Represents the JSON value @"eps"@
    PostCustomersCustomerCardsIdResponseBody200Type'EnumEps
  | -- | Represents the JSON value @"giropay"@
    PostCustomersCustomerCardsIdResponseBody200Type'EnumGiropay
  | -- | Represents the JSON value @"ideal"@
    PostCustomersCustomerCardsIdResponseBody200Type'EnumIdeal
  | -- | Represents the JSON value @"klarna"@
    PostCustomersCustomerCardsIdResponseBody200Type'EnumKlarna
  | -- | Represents the JSON value @"multibanco"@
    PostCustomersCustomerCardsIdResponseBody200Type'EnumMultibanco
  | -- | Represents the JSON value @"p24"@
    PostCustomersCustomerCardsIdResponseBody200Type'EnumP24
  | -- | Represents the JSON value @"sepa_debit"@
    PostCustomersCustomerCardsIdResponseBody200Type'EnumSepaDebit
  | -- | Represents the JSON value @"sofort"@
    PostCustomersCustomerCardsIdResponseBody200Type'EnumSofort
  | -- | Represents the JSON value @"three_d_secure"@
    PostCustomersCustomerCardsIdResponseBody200Type'EnumThreeDSecure
  | -- | Represents the JSON value @"wechat"@
    PostCustomersCustomerCardsIdResponseBody200Type'EnumWechat
  deriving (Int
-> PostCustomersCustomerCardsIdResponseBody200Type'
-> String
-> String
[PostCustomersCustomerCardsIdResponseBody200Type']
-> String -> String
PostCustomersCustomerCardsIdResponseBody200Type' -> String
(Int
 -> PostCustomersCustomerCardsIdResponseBody200Type'
 -> String
 -> String)
-> (PostCustomersCustomerCardsIdResponseBody200Type' -> String)
-> ([PostCustomersCustomerCardsIdResponseBody200Type']
    -> String -> String)
-> Show PostCustomersCustomerCardsIdResponseBody200Type'
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostCustomersCustomerCardsIdResponseBody200Type']
-> String -> String
$cshowList :: [PostCustomersCustomerCardsIdResponseBody200Type']
-> String -> String
show :: PostCustomersCustomerCardsIdResponseBody200Type' -> String
$cshow :: PostCustomersCustomerCardsIdResponseBody200Type' -> String
showsPrec :: Int
-> PostCustomersCustomerCardsIdResponseBody200Type'
-> String
-> String
$cshowsPrec :: Int
-> PostCustomersCustomerCardsIdResponseBody200Type'
-> String
-> String
GHC.Show.Show, PostCustomersCustomerCardsIdResponseBody200Type'
-> PostCustomersCustomerCardsIdResponseBody200Type' -> Bool
(PostCustomersCustomerCardsIdResponseBody200Type'
 -> PostCustomersCustomerCardsIdResponseBody200Type' -> Bool)
-> (PostCustomersCustomerCardsIdResponseBody200Type'
    -> PostCustomersCustomerCardsIdResponseBody200Type' -> Bool)
-> Eq PostCustomersCustomerCardsIdResponseBody200Type'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostCustomersCustomerCardsIdResponseBody200Type'
-> PostCustomersCustomerCardsIdResponseBody200Type' -> Bool
$c/= :: PostCustomersCustomerCardsIdResponseBody200Type'
-> PostCustomersCustomerCardsIdResponseBody200Type' -> Bool
== :: PostCustomersCustomerCardsIdResponseBody200Type'
-> PostCustomersCustomerCardsIdResponseBody200Type' -> Bool
$c== :: PostCustomersCustomerCardsIdResponseBody200Type'
-> PostCustomersCustomerCardsIdResponseBody200Type' -> Bool
GHC.Classes.Eq)

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

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