{-# 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 postPaymentMethods
module StripeAPI.Operations.PostPaymentMethods 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/payment_methods
--
-- \<p>Creates a PaymentMethod object. Read the \<a href=\"\/docs\/stripe-js\/reference\#stripe-create-payment-method\">Stripe.js reference\<\/a> to learn how to create PaymentMethods via Stripe.js.\<\/p>
postPaymentMethods ::
  forall m.
  StripeAPI.Common.MonadHTTP m =>
  -- | The request body to send
  GHC.Maybe.Maybe PostPaymentMethodsRequestBody ->
  -- | Monadic computation which returns the result of the operation
  StripeAPI.Common.StripeT m (Network.HTTP.Client.Types.Response PostPaymentMethodsResponse)
postPaymentMethods :: Maybe PostPaymentMethodsRequestBody
-> StripeT m (Response PostPaymentMethodsResponse)
postPaymentMethods Maybe PostPaymentMethodsRequestBody
body =
  (Response ByteString -> Response PostPaymentMethodsResponse)
-> StripeT m (Response ByteString)
-> StripeT m (Response PostPaymentMethodsResponse)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
GHC.Base.fmap
    ( \Response ByteString
response_0 ->
        (ByteString -> PostPaymentMethodsResponse)
-> Response ByteString -> Response PostPaymentMethodsResponse
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
GHC.Base.fmap
          ( (String -> PostPaymentMethodsResponse)
-> (PostPaymentMethodsResponse -> PostPaymentMethodsResponse)
-> Either String PostPaymentMethodsResponse
-> PostPaymentMethodsResponse
forall a c b. (a -> c) -> (b -> c) -> Either a b -> c
Data.Either.either String -> PostPaymentMethodsResponse
PostPaymentMethodsResponseError PostPaymentMethodsResponse -> PostPaymentMethodsResponse
forall a. a -> a
GHC.Base.id
              (Either String PostPaymentMethodsResponse
 -> PostPaymentMethodsResponse)
-> (ByteString -> Either String PostPaymentMethodsResponse)
-> ByteString
-> PostPaymentMethodsResponse
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) ->
                                   PaymentMethod -> PostPaymentMethodsResponse
PostPaymentMethodsResponse200
                                     (PaymentMethod -> PostPaymentMethodsResponse)
-> Either String PaymentMethod
-> Either String PostPaymentMethodsResponse
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Data.Functor.<$> ( ByteString -> Either String PaymentMethod
forall a. FromJSON a => ByteString -> Either String a
Data.Aeson.eitherDecodeStrict ByteString
body ::
                                                          Data.Either.Either
                                                            GHC.Base.String
                                                            PaymentMethod
                                                      )
                                 | 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 -> PostPaymentMethodsResponse
PostPaymentMethodsResponseDefault
                                     (Error -> PostPaymentMethodsResponse)
-> Either String Error -> Either String PostPaymentMethodsResponse
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 PostPaymentMethodsResponse
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 PostPaymentMethodsRequestBody
-> RequestBodyEncoding
-> StripeT m (Response ByteString)
forall (m :: * -> *) body.
(MonadHTTP m, ToJSON body) =>
Text
-> Text
-> [QueryParameter]
-> Maybe body
-> RequestBodyEncoding
-> StripeT 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/payment_methods") [QueryParameter]
forall a. Monoid a => a
GHC.Base.mempty Maybe PostPaymentMethodsRequestBody
body RequestBodyEncoding
StripeAPI.Common.RequestBodyEncodingFormData)

-- | Defines the object schema located at @paths.\/v1\/payment_methods.POST.requestBody.content.application\/x-www-form-urlencoded.schema@ in the specification.
data PostPaymentMethodsRequestBody = PostPaymentMethodsRequestBody
  { -- | acss_debit: If this is an \`acss_debit\` PaymentMethod, this hash contains details about the ACSS Debit payment method.
    PostPaymentMethodsRequestBody
-> Maybe PostPaymentMethodsRequestBodyAcssDebit'
postPaymentMethodsRequestBodyAcssDebit :: (GHC.Maybe.Maybe PostPaymentMethodsRequestBodyAcssDebit'),
    -- | afterpay_clearpay: If this is an \`AfterpayClearpay\` PaymentMethod, this hash contains details about the AfterpayClearpay payment method.
    PostPaymentMethodsRequestBody -> Maybe Object
postPaymentMethodsRequestBodyAfterpayClearpay :: (GHC.Maybe.Maybe Data.Aeson.Types.Internal.Object),
    -- | alipay: If this is an \`Alipay\` PaymentMethod, this hash contains details about the Alipay payment method.
    PostPaymentMethodsRequestBody -> Maybe Object
postPaymentMethodsRequestBodyAlipay :: (GHC.Maybe.Maybe Data.Aeson.Types.Internal.Object),
    -- | au_becs_debit: If this is an \`au_becs_debit\` PaymentMethod, this hash contains details about the bank account.
    PostPaymentMethodsRequestBody
-> Maybe PostPaymentMethodsRequestBodyAuBecsDebit'
postPaymentMethodsRequestBodyAuBecsDebit :: (GHC.Maybe.Maybe PostPaymentMethodsRequestBodyAuBecsDebit'),
    -- | bacs_debit: If this is a \`bacs_debit\` PaymentMethod, this hash contains details about the Bacs Direct Debit bank account.
    PostPaymentMethodsRequestBody
-> Maybe PostPaymentMethodsRequestBodyBacsDebit'
postPaymentMethodsRequestBodyBacsDebit :: (GHC.Maybe.Maybe PostPaymentMethodsRequestBodyBacsDebit'),
    -- | bancontact: If this is a \`bancontact\` PaymentMethod, this hash contains details about the Bancontact payment method.
    PostPaymentMethodsRequestBody -> Maybe Object
postPaymentMethodsRequestBodyBancontact :: (GHC.Maybe.Maybe Data.Aeson.Types.Internal.Object),
    -- | billing_details: Billing information associated with the PaymentMethod that may be used or required by particular types of payment methods.
    PostPaymentMethodsRequestBody
-> Maybe PostPaymentMethodsRequestBodyBillingDetails'
postPaymentMethodsRequestBodyBillingDetails :: (GHC.Maybe.Maybe PostPaymentMethodsRequestBodyBillingDetails'),
    -- | boleto: If this is a \`boleto\` PaymentMethod, this hash contains details about the Boleto payment method.
    PostPaymentMethodsRequestBody
-> Maybe PostPaymentMethodsRequestBodyBoleto'
postPaymentMethodsRequestBodyBoleto :: (GHC.Maybe.Maybe PostPaymentMethodsRequestBodyBoleto'),
    -- | card: If this is a \`card\` PaymentMethod, this hash contains the user\'s card details. For backwards compatibility, you can alternatively provide a Stripe token (e.g., for Apple Pay, Amex Express Checkout, or legacy Checkout) into the card hash with format \`card: {token: \"tok_visa\"}\`. When providing a card number, you must meet the requirements for [PCI compliance](https:\/\/stripe.com\/docs\/security\#validating-pci-compliance). We strongly recommend using Stripe.js instead of interacting with this API directly.
    PostPaymentMethodsRequestBody
-> Maybe PostPaymentMethodsRequestBodyCard'
postPaymentMethodsRequestBodyCard :: (GHC.Maybe.Maybe PostPaymentMethodsRequestBodyCard'),
    -- | customer: The \`Customer\` to whom the original PaymentMethod is attached.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PostPaymentMethodsRequestBody -> Maybe Text
postPaymentMethodsRequestBodyCustomer :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | eps: If this is an \`eps\` PaymentMethod, this hash contains details about the EPS payment method.
    PostPaymentMethodsRequestBody
-> Maybe PostPaymentMethodsRequestBodyEps'
postPaymentMethodsRequestBodyEps :: (GHC.Maybe.Maybe PostPaymentMethodsRequestBodyEps'),
    -- | expand: Specifies which fields in the response should be expanded.
    PostPaymentMethodsRequestBody -> Maybe [Text]
postPaymentMethodsRequestBodyExpand :: (GHC.Maybe.Maybe ([Data.Text.Internal.Text])),
    -- | fpx: If this is an \`fpx\` PaymentMethod, this hash contains details about the FPX payment method.
    PostPaymentMethodsRequestBody
-> Maybe PostPaymentMethodsRequestBodyFpx'
postPaymentMethodsRequestBodyFpx :: (GHC.Maybe.Maybe PostPaymentMethodsRequestBodyFpx'),
    -- | giropay: If this is a \`giropay\` PaymentMethod, this hash contains details about the Giropay payment method.
    PostPaymentMethodsRequestBody -> Maybe Object
postPaymentMethodsRequestBodyGiropay :: (GHC.Maybe.Maybe Data.Aeson.Types.Internal.Object),
    -- | grabpay: If this is a \`grabpay\` PaymentMethod, this hash contains details about the GrabPay payment method.
    PostPaymentMethodsRequestBody -> Maybe Object
postPaymentMethodsRequestBodyGrabpay :: (GHC.Maybe.Maybe Data.Aeson.Types.Internal.Object),
    -- | ideal: If this is an \`ideal\` PaymentMethod, this hash contains details about the iDEAL payment method.
    PostPaymentMethodsRequestBody
-> Maybe PostPaymentMethodsRequestBodyIdeal'
postPaymentMethodsRequestBodyIdeal :: (GHC.Maybe.Maybe PostPaymentMethodsRequestBodyIdeal'),
    -- | interac_present: If this is an \`interac_present\` PaymentMethod, this hash contains details about the Interac Present payment method.
    PostPaymentMethodsRequestBody -> Maybe Object
postPaymentMethodsRequestBodyInteracPresent :: (GHC.Maybe.Maybe Data.Aeson.Types.Internal.Object),
    -- | 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\`.
    PostPaymentMethodsRequestBody -> Maybe Object
postPaymentMethodsRequestBodyMetadata :: (GHC.Maybe.Maybe Data.Aeson.Types.Internal.Object),
    -- | oxxo: If this is an \`oxxo\` PaymentMethod, this hash contains details about the OXXO payment method.
    PostPaymentMethodsRequestBody -> Maybe Object
postPaymentMethodsRequestBodyOxxo :: (GHC.Maybe.Maybe Data.Aeson.Types.Internal.Object),
    -- | p24: If this is a \`p24\` PaymentMethod, this hash contains details about the P24 payment method.
    PostPaymentMethodsRequestBody
-> Maybe PostPaymentMethodsRequestBodyP24'
postPaymentMethodsRequestBodyP24 :: (GHC.Maybe.Maybe PostPaymentMethodsRequestBodyP24'),
    -- | payment_method: The PaymentMethod to share.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PostPaymentMethodsRequestBody -> Maybe Text
postPaymentMethodsRequestBodyPaymentMethod :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | sepa_debit: If this is a \`sepa_debit\` PaymentMethod, this hash contains details about the SEPA debit bank account.
    PostPaymentMethodsRequestBody
-> Maybe PostPaymentMethodsRequestBodySepaDebit'
postPaymentMethodsRequestBodySepaDebit :: (GHC.Maybe.Maybe PostPaymentMethodsRequestBodySepaDebit'),
    -- | sofort: If this is a \`sofort\` PaymentMethod, this hash contains details about the SOFORT payment method.
    PostPaymentMethodsRequestBody
-> Maybe PostPaymentMethodsRequestBodySofort'
postPaymentMethodsRequestBodySofort :: (GHC.Maybe.Maybe PostPaymentMethodsRequestBodySofort'),
    -- | type: The type of the PaymentMethod. An additional hash is included on the PaymentMethod with a name matching this value. It contains additional information specific to the PaymentMethod type.
    PostPaymentMethodsRequestBody
-> Maybe PostPaymentMethodsRequestBodyType'
postPaymentMethodsRequestBodyType :: (GHC.Maybe.Maybe PostPaymentMethodsRequestBodyType')
  }
  deriving
    ( Int -> PostPaymentMethodsRequestBody -> ShowS
[PostPaymentMethodsRequestBody] -> ShowS
PostPaymentMethodsRequestBody -> String
(Int -> PostPaymentMethodsRequestBody -> ShowS)
-> (PostPaymentMethodsRequestBody -> String)
-> ([PostPaymentMethodsRequestBody] -> ShowS)
-> Show PostPaymentMethodsRequestBody
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PostPaymentMethodsRequestBody] -> ShowS
$cshowList :: [PostPaymentMethodsRequestBody] -> ShowS
show :: PostPaymentMethodsRequestBody -> String
$cshow :: PostPaymentMethodsRequestBody -> String
showsPrec :: Int -> PostPaymentMethodsRequestBody -> ShowS
$cshowsPrec :: Int -> PostPaymentMethodsRequestBody -> ShowS
GHC.Show.Show,
      PostPaymentMethodsRequestBody
-> PostPaymentMethodsRequestBody -> Bool
(PostPaymentMethodsRequestBody
 -> PostPaymentMethodsRequestBody -> Bool)
-> (PostPaymentMethodsRequestBody
    -> PostPaymentMethodsRequestBody -> Bool)
-> Eq PostPaymentMethodsRequestBody
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostPaymentMethodsRequestBody
-> PostPaymentMethodsRequestBody -> Bool
$c/= :: PostPaymentMethodsRequestBody
-> PostPaymentMethodsRequestBody -> Bool
== :: PostPaymentMethodsRequestBody
-> PostPaymentMethodsRequestBody -> Bool
$c== :: PostPaymentMethodsRequestBody
-> PostPaymentMethodsRequestBody -> Bool
GHC.Classes.Eq
    )

instance Data.Aeson.Types.ToJSON.ToJSON PostPaymentMethodsRequestBody where
  toJSON :: PostPaymentMethodsRequestBody -> Value
toJSON PostPaymentMethodsRequestBody
obj = [Pair] -> Value
Data.Aeson.Types.Internal.object (Text
"acss_debit" Text -> Maybe PostPaymentMethodsRequestBodyAcssDebit' -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentMethodsRequestBody
-> Maybe PostPaymentMethodsRequestBodyAcssDebit'
postPaymentMethodsRequestBodyAcssDebit PostPaymentMethodsRequestBody
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"afterpay_clearpay" Text -> Maybe Object -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentMethodsRequestBody -> Maybe Object
postPaymentMethodsRequestBodyAfterpayClearpay PostPaymentMethodsRequestBody
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"alipay" Text -> Maybe Object -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentMethodsRequestBody -> Maybe Object
postPaymentMethodsRequestBodyAlipay PostPaymentMethodsRequestBody
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"au_becs_debit" Text -> Maybe PostPaymentMethodsRequestBodyAuBecsDebit' -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentMethodsRequestBody
-> Maybe PostPaymentMethodsRequestBodyAuBecsDebit'
postPaymentMethodsRequestBodyAuBecsDebit PostPaymentMethodsRequestBody
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"bacs_debit" Text -> Maybe PostPaymentMethodsRequestBodyBacsDebit' -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentMethodsRequestBody
-> Maybe PostPaymentMethodsRequestBodyBacsDebit'
postPaymentMethodsRequestBodyBacsDebit PostPaymentMethodsRequestBody
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"bancontact" Text -> Maybe Object -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentMethodsRequestBody -> Maybe Object
postPaymentMethodsRequestBodyBancontact PostPaymentMethodsRequestBody
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"billing_details" Text -> Maybe PostPaymentMethodsRequestBodyBillingDetails' -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentMethodsRequestBody
-> Maybe PostPaymentMethodsRequestBodyBillingDetails'
postPaymentMethodsRequestBodyBillingDetails PostPaymentMethodsRequestBody
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"boleto" Text -> Maybe PostPaymentMethodsRequestBodyBoleto' -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentMethodsRequestBody
-> Maybe PostPaymentMethodsRequestBodyBoleto'
postPaymentMethodsRequestBodyBoleto PostPaymentMethodsRequestBody
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"card" Text -> Maybe PostPaymentMethodsRequestBodyCard' -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentMethodsRequestBody
-> Maybe PostPaymentMethodsRequestBodyCard'
postPaymentMethodsRequestBodyCard PostPaymentMethodsRequestBody
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"customer" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentMethodsRequestBody -> Maybe Text
postPaymentMethodsRequestBodyCustomer PostPaymentMethodsRequestBody
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"eps" Text -> Maybe PostPaymentMethodsRequestBodyEps' -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentMethodsRequestBody
-> Maybe PostPaymentMethodsRequestBodyEps'
postPaymentMethodsRequestBodyEps PostPaymentMethodsRequestBody
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..= PostPaymentMethodsRequestBody -> Maybe [Text]
postPaymentMethodsRequestBodyExpand PostPaymentMethodsRequestBody
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"fpx" Text -> Maybe PostPaymentMethodsRequestBodyFpx' -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentMethodsRequestBody
-> Maybe PostPaymentMethodsRequestBodyFpx'
postPaymentMethodsRequestBodyFpx PostPaymentMethodsRequestBody
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"giropay" Text -> Maybe Object -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentMethodsRequestBody -> Maybe Object
postPaymentMethodsRequestBodyGiropay PostPaymentMethodsRequestBody
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"grabpay" Text -> Maybe Object -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentMethodsRequestBody -> Maybe Object
postPaymentMethodsRequestBodyGrabpay PostPaymentMethodsRequestBody
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"ideal" Text -> Maybe PostPaymentMethodsRequestBodyIdeal' -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentMethodsRequestBody
-> Maybe PostPaymentMethodsRequestBodyIdeal'
postPaymentMethodsRequestBodyIdeal PostPaymentMethodsRequestBody
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"interac_present" Text -> Maybe Object -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentMethodsRequestBody -> Maybe Object
postPaymentMethodsRequestBodyInteracPresent PostPaymentMethodsRequestBody
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..= PostPaymentMethodsRequestBody -> Maybe Object
postPaymentMethodsRequestBodyMetadata PostPaymentMethodsRequestBody
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"oxxo" Text -> Maybe Object -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentMethodsRequestBody -> Maybe Object
postPaymentMethodsRequestBodyOxxo PostPaymentMethodsRequestBody
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"p24" Text -> Maybe PostPaymentMethodsRequestBodyP24' -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentMethodsRequestBody
-> Maybe PostPaymentMethodsRequestBodyP24'
postPaymentMethodsRequestBodyP24 PostPaymentMethodsRequestBody
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"payment_method" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentMethodsRequestBody -> Maybe Text
postPaymentMethodsRequestBodyPaymentMethod PostPaymentMethodsRequestBody
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"sepa_debit" Text -> Maybe PostPaymentMethodsRequestBodySepaDebit' -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentMethodsRequestBody
-> Maybe PostPaymentMethodsRequestBodySepaDebit'
postPaymentMethodsRequestBodySepaDebit PostPaymentMethodsRequestBody
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"sofort" Text -> Maybe PostPaymentMethodsRequestBodySofort' -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentMethodsRequestBody
-> Maybe PostPaymentMethodsRequestBodySofort'
postPaymentMethodsRequestBodySofort PostPaymentMethodsRequestBody
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"type" Text -> Maybe PostPaymentMethodsRequestBodyType' -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentMethodsRequestBody
-> Maybe PostPaymentMethodsRequestBodyType'
postPaymentMethodsRequestBodyType PostPaymentMethodsRequestBody
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: PostPaymentMethodsRequestBody -> Encoding
toEncoding PostPaymentMethodsRequestBody
obj = Series -> Encoding
Data.Aeson.Encoding.Internal.pairs ((Text
"acss_debit" Text -> Maybe PostPaymentMethodsRequestBodyAcssDebit' -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentMethodsRequestBody
-> Maybe PostPaymentMethodsRequestBodyAcssDebit'
postPaymentMethodsRequestBodyAcssDebit PostPaymentMethodsRequestBody
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"afterpay_clearpay" Text -> Maybe Object -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentMethodsRequestBody -> Maybe Object
postPaymentMethodsRequestBodyAfterpayClearpay PostPaymentMethodsRequestBody
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"alipay" Text -> Maybe Object -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentMethodsRequestBody -> Maybe Object
postPaymentMethodsRequestBodyAlipay PostPaymentMethodsRequestBody
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"au_becs_debit" Text -> Maybe PostPaymentMethodsRequestBodyAuBecsDebit' -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentMethodsRequestBody
-> Maybe PostPaymentMethodsRequestBodyAuBecsDebit'
postPaymentMethodsRequestBodyAuBecsDebit PostPaymentMethodsRequestBody
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"bacs_debit" Text -> Maybe PostPaymentMethodsRequestBodyBacsDebit' -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentMethodsRequestBody
-> Maybe PostPaymentMethodsRequestBodyBacsDebit'
postPaymentMethodsRequestBodyBacsDebit PostPaymentMethodsRequestBody
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"bancontact" Text -> Maybe Object -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentMethodsRequestBody -> Maybe Object
postPaymentMethodsRequestBodyBancontact PostPaymentMethodsRequestBody
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"billing_details" Text
-> Maybe PostPaymentMethodsRequestBodyBillingDetails' -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentMethodsRequestBody
-> Maybe PostPaymentMethodsRequestBodyBillingDetails'
postPaymentMethodsRequestBodyBillingDetails PostPaymentMethodsRequestBody
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"boleto" Text -> Maybe PostPaymentMethodsRequestBodyBoleto' -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentMethodsRequestBody
-> Maybe PostPaymentMethodsRequestBodyBoleto'
postPaymentMethodsRequestBodyBoleto PostPaymentMethodsRequestBody
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"card" Text -> Maybe PostPaymentMethodsRequestBodyCard' -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentMethodsRequestBody
-> Maybe PostPaymentMethodsRequestBodyCard'
postPaymentMethodsRequestBodyCard PostPaymentMethodsRequestBody
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"customer" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentMethodsRequestBody -> Maybe Text
postPaymentMethodsRequestBodyCustomer PostPaymentMethodsRequestBody
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"eps" Text -> Maybe PostPaymentMethodsRequestBodyEps' -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentMethodsRequestBody
-> Maybe PostPaymentMethodsRequestBodyEps'
postPaymentMethodsRequestBodyEps PostPaymentMethodsRequestBody
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..= PostPaymentMethodsRequestBody -> Maybe [Text]
postPaymentMethodsRequestBodyExpand PostPaymentMethodsRequestBody
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"fpx" Text -> Maybe PostPaymentMethodsRequestBodyFpx' -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentMethodsRequestBody
-> Maybe PostPaymentMethodsRequestBodyFpx'
postPaymentMethodsRequestBodyFpx PostPaymentMethodsRequestBody
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"giropay" Text -> Maybe Object -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentMethodsRequestBody -> Maybe Object
postPaymentMethodsRequestBodyGiropay PostPaymentMethodsRequestBody
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"grabpay" Text -> Maybe Object -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentMethodsRequestBody -> Maybe Object
postPaymentMethodsRequestBodyGrabpay PostPaymentMethodsRequestBody
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"ideal" Text -> Maybe PostPaymentMethodsRequestBodyIdeal' -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentMethodsRequestBody
-> Maybe PostPaymentMethodsRequestBodyIdeal'
postPaymentMethodsRequestBodyIdeal PostPaymentMethodsRequestBody
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"interac_present" Text -> Maybe Object -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentMethodsRequestBody -> Maybe Object
postPaymentMethodsRequestBodyInteracPresent PostPaymentMethodsRequestBody
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..= PostPaymentMethodsRequestBody -> Maybe Object
postPaymentMethodsRequestBodyMetadata PostPaymentMethodsRequestBody
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"oxxo" Text -> Maybe Object -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentMethodsRequestBody -> Maybe Object
postPaymentMethodsRequestBodyOxxo PostPaymentMethodsRequestBody
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"p24" Text -> Maybe PostPaymentMethodsRequestBodyP24' -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentMethodsRequestBody
-> Maybe PostPaymentMethodsRequestBodyP24'
postPaymentMethodsRequestBodyP24 PostPaymentMethodsRequestBody
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"payment_method" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentMethodsRequestBody -> Maybe Text
postPaymentMethodsRequestBodyPaymentMethod PostPaymentMethodsRequestBody
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"sepa_debit" Text -> Maybe PostPaymentMethodsRequestBodySepaDebit' -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentMethodsRequestBody
-> Maybe PostPaymentMethodsRequestBodySepaDebit'
postPaymentMethodsRequestBodySepaDebit PostPaymentMethodsRequestBody
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"sofort" Text -> Maybe PostPaymentMethodsRequestBodySofort' -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentMethodsRequestBody
-> Maybe PostPaymentMethodsRequestBodySofort'
postPaymentMethodsRequestBodySofort PostPaymentMethodsRequestBody
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> (Text
"type" Text -> Maybe PostPaymentMethodsRequestBodyType' -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentMethodsRequestBody
-> Maybe PostPaymentMethodsRequestBodyType'
postPaymentMethodsRequestBodyType PostPaymentMethodsRequestBody
obj))))))))))))))))))))))))

instance Data.Aeson.Types.FromJSON.FromJSON PostPaymentMethodsRequestBody where
  parseJSON :: Value -> Parser PostPaymentMethodsRequestBody
parseJSON = String
-> (Object -> Parser PostPaymentMethodsRequestBody)
-> Value
-> Parser PostPaymentMethodsRequestBody
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.Aeson.Types.FromJSON.withObject String
"PostPaymentMethodsRequestBody" (\Object
obj -> ((((((((((((((((((((((((Maybe PostPaymentMethodsRequestBodyAcssDebit'
 -> Maybe Object
 -> Maybe Object
 -> Maybe PostPaymentMethodsRequestBodyAuBecsDebit'
 -> Maybe PostPaymentMethodsRequestBodyBacsDebit'
 -> Maybe Object
 -> Maybe PostPaymentMethodsRequestBodyBillingDetails'
 -> Maybe PostPaymentMethodsRequestBodyBoleto'
 -> Maybe PostPaymentMethodsRequestBodyCard'
 -> Maybe Text
 -> Maybe PostPaymentMethodsRequestBodyEps'
 -> Maybe [Text]
 -> Maybe PostPaymentMethodsRequestBodyFpx'
 -> Maybe Object
 -> Maybe Object
 -> Maybe PostPaymentMethodsRequestBodyIdeal'
 -> Maybe Object
 -> Maybe Object
 -> Maybe Object
 -> Maybe PostPaymentMethodsRequestBodyP24'
 -> Maybe Text
 -> Maybe PostPaymentMethodsRequestBodySepaDebit'
 -> Maybe PostPaymentMethodsRequestBodySofort'
 -> Maybe PostPaymentMethodsRequestBodyType'
 -> PostPaymentMethodsRequestBody)
-> Parser
     (Maybe PostPaymentMethodsRequestBodyAcssDebit'
      -> Maybe Object
      -> Maybe Object
      -> Maybe PostPaymentMethodsRequestBodyAuBecsDebit'
      -> Maybe PostPaymentMethodsRequestBodyBacsDebit'
      -> Maybe Object
      -> Maybe PostPaymentMethodsRequestBodyBillingDetails'
      -> Maybe PostPaymentMethodsRequestBodyBoleto'
      -> Maybe PostPaymentMethodsRequestBodyCard'
      -> Maybe Text
      -> Maybe PostPaymentMethodsRequestBodyEps'
      -> Maybe [Text]
      -> Maybe PostPaymentMethodsRequestBodyFpx'
      -> Maybe Object
      -> Maybe Object
      -> Maybe PostPaymentMethodsRequestBodyIdeal'
      -> Maybe Object
      -> Maybe Object
      -> Maybe Object
      -> Maybe PostPaymentMethodsRequestBodyP24'
      -> Maybe Text
      -> Maybe PostPaymentMethodsRequestBodySepaDebit'
      -> Maybe PostPaymentMethodsRequestBodySofort'
      -> Maybe PostPaymentMethodsRequestBodyType'
      -> PostPaymentMethodsRequestBody)
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure Maybe PostPaymentMethodsRequestBodyAcssDebit'
-> Maybe Object
-> Maybe Object
-> Maybe PostPaymentMethodsRequestBodyAuBecsDebit'
-> Maybe PostPaymentMethodsRequestBodyBacsDebit'
-> Maybe Object
-> Maybe PostPaymentMethodsRequestBodyBillingDetails'
-> Maybe PostPaymentMethodsRequestBodyBoleto'
-> Maybe PostPaymentMethodsRequestBodyCard'
-> Maybe Text
-> Maybe PostPaymentMethodsRequestBodyEps'
-> Maybe [Text]
-> Maybe PostPaymentMethodsRequestBodyFpx'
-> Maybe Object
-> Maybe Object
-> Maybe PostPaymentMethodsRequestBodyIdeal'
-> Maybe Object
-> Maybe Object
-> Maybe Object
-> Maybe PostPaymentMethodsRequestBodyP24'
-> Maybe Text
-> Maybe PostPaymentMethodsRequestBodySepaDebit'
-> Maybe PostPaymentMethodsRequestBodySofort'
-> Maybe PostPaymentMethodsRequestBodyType'
-> PostPaymentMethodsRequestBody
PostPaymentMethodsRequestBody Parser
  (Maybe PostPaymentMethodsRequestBodyAcssDebit'
   -> Maybe Object
   -> Maybe Object
   -> Maybe PostPaymentMethodsRequestBodyAuBecsDebit'
   -> Maybe PostPaymentMethodsRequestBodyBacsDebit'
   -> Maybe Object
   -> Maybe PostPaymentMethodsRequestBodyBillingDetails'
   -> Maybe PostPaymentMethodsRequestBodyBoleto'
   -> Maybe PostPaymentMethodsRequestBodyCard'
   -> Maybe Text
   -> Maybe PostPaymentMethodsRequestBodyEps'
   -> Maybe [Text]
   -> Maybe PostPaymentMethodsRequestBodyFpx'
   -> Maybe Object
   -> Maybe Object
   -> Maybe PostPaymentMethodsRequestBodyIdeal'
   -> Maybe Object
   -> Maybe Object
   -> Maybe Object
   -> Maybe PostPaymentMethodsRequestBodyP24'
   -> Maybe Text
   -> Maybe PostPaymentMethodsRequestBodySepaDebit'
   -> Maybe PostPaymentMethodsRequestBodySofort'
   -> Maybe PostPaymentMethodsRequestBodyType'
   -> PostPaymentMethodsRequestBody)
-> Parser (Maybe PostPaymentMethodsRequestBodyAcssDebit')
-> Parser
     (Maybe Object
      -> Maybe Object
      -> Maybe PostPaymentMethodsRequestBodyAuBecsDebit'
      -> Maybe PostPaymentMethodsRequestBodyBacsDebit'
      -> Maybe Object
      -> Maybe PostPaymentMethodsRequestBodyBillingDetails'
      -> Maybe PostPaymentMethodsRequestBodyBoleto'
      -> Maybe PostPaymentMethodsRequestBodyCard'
      -> Maybe Text
      -> Maybe PostPaymentMethodsRequestBodyEps'
      -> Maybe [Text]
      -> Maybe PostPaymentMethodsRequestBodyFpx'
      -> Maybe Object
      -> Maybe Object
      -> Maybe PostPaymentMethodsRequestBodyIdeal'
      -> Maybe Object
      -> Maybe Object
      -> Maybe Object
      -> Maybe PostPaymentMethodsRequestBodyP24'
      -> Maybe Text
      -> Maybe PostPaymentMethodsRequestBodySepaDebit'
      -> Maybe PostPaymentMethodsRequestBodySofort'
      -> Maybe PostPaymentMethodsRequestBodyType'
      -> PostPaymentMethodsRequestBody)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text -> Parser (Maybe PostPaymentMethodsRequestBodyAcssDebit')
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"acss_debit")) Parser
  (Maybe Object
   -> Maybe Object
   -> Maybe PostPaymentMethodsRequestBodyAuBecsDebit'
   -> Maybe PostPaymentMethodsRequestBodyBacsDebit'
   -> Maybe Object
   -> Maybe PostPaymentMethodsRequestBodyBillingDetails'
   -> Maybe PostPaymentMethodsRequestBodyBoleto'
   -> Maybe PostPaymentMethodsRequestBodyCard'
   -> Maybe Text
   -> Maybe PostPaymentMethodsRequestBodyEps'
   -> Maybe [Text]
   -> Maybe PostPaymentMethodsRequestBodyFpx'
   -> Maybe Object
   -> Maybe Object
   -> Maybe PostPaymentMethodsRequestBodyIdeal'
   -> Maybe Object
   -> Maybe Object
   -> Maybe Object
   -> Maybe PostPaymentMethodsRequestBodyP24'
   -> Maybe Text
   -> Maybe PostPaymentMethodsRequestBodySepaDebit'
   -> Maybe PostPaymentMethodsRequestBodySofort'
   -> Maybe PostPaymentMethodsRequestBodyType'
   -> PostPaymentMethodsRequestBody)
-> Parser (Maybe Object)
-> Parser
     (Maybe Object
      -> Maybe PostPaymentMethodsRequestBodyAuBecsDebit'
      -> Maybe PostPaymentMethodsRequestBodyBacsDebit'
      -> Maybe Object
      -> Maybe PostPaymentMethodsRequestBodyBillingDetails'
      -> Maybe PostPaymentMethodsRequestBodyBoleto'
      -> Maybe PostPaymentMethodsRequestBodyCard'
      -> Maybe Text
      -> Maybe PostPaymentMethodsRequestBodyEps'
      -> Maybe [Text]
      -> Maybe PostPaymentMethodsRequestBodyFpx'
      -> Maybe Object
      -> Maybe Object
      -> Maybe PostPaymentMethodsRequestBodyIdeal'
      -> Maybe Object
      -> Maybe Object
      -> Maybe Object
      -> Maybe PostPaymentMethodsRequestBodyP24'
      -> Maybe Text
      -> Maybe PostPaymentMethodsRequestBodySepaDebit'
      -> Maybe PostPaymentMethodsRequestBodySofort'
      -> Maybe PostPaymentMethodsRequestBodyType'
      -> PostPaymentMethodsRequestBody)
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
"afterpay_clearpay")) Parser
  (Maybe Object
   -> Maybe PostPaymentMethodsRequestBodyAuBecsDebit'
   -> Maybe PostPaymentMethodsRequestBodyBacsDebit'
   -> Maybe Object
   -> Maybe PostPaymentMethodsRequestBodyBillingDetails'
   -> Maybe PostPaymentMethodsRequestBodyBoleto'
   -> Maybe PostPaymentMethodsRequestBodyCard'
   -> Maybe Text
   -> Maybe PostPaymentMethodsRequestBodyEps'
   -> Maybe [Text]
   -> Maybe PostPaymentMethodsRequestBodyFpx'
   -> Maybe Object
   -> Maybe Object
   -> Maybe PostPaymentMethodsRequestBodyIdeal'
   -> Maybe Object
   -> Maybe Object
   -> Maybe Object
   -> Maybe PostPaymentMethodsRequestBodyP24'
   -> Maybe Text
   -> Maybe PostPaymentMethodsRequestBodySepaDebit'
   -> Maybe PostPaymentMethodsRequestBodySofort'
   -> Maybe PostPaymentMethodsRequestBodyType'
   -> PostPaymentMethodsRequestBody)
-> Parser (Maybe Object)
-> Parser
     (Maybe PostPaymentMethodsRequestBodyAuBecsDebit'
      -> Maybe PostPaymentMethodsRequestBodyBacsDebit'
      -> Maybe Object
      -> Maybe PostPaymentMethodsRequestBodyBillingDetails'
      -> Maybe PostPaymentMethodsRequestBodyBoleto'
      -> Maybe PostPaymentMethodsRequestBodyCard'
      -> Maybe Text
      -> Maybe PostPaymentMethodsRequestBodyEps'
      -> Maybe [Text]
      -> Maybe PostPaymentMethodsRequestBodyFpx'
      -> Maybe Object
      -> Maybe Object
      -> Maybe PostPaymentMethodsRequestBodyIdeal'
      -> Maybe Object
      -> Maybe Object
      -> Maybe Object
      -> Maybe PostPaymentMethodsRequestBodyP24'
      -> Maybe Text
      -> Maybe PostPaymentMethodsRequestBodySepaDebit'
      -> Maybe PostPaymentMethodsRequestBodySofort'
      -> Maybe PostPaymentMethodsRequestBodyType'
      -> PostPaymentMethodsRequestBody)
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
"alipay")) Parser
  (Maybe PostPaymentMethodsRequestBodyAuBecsDebit'
   -> Maybe PostPaymentMethodsRequestBodyBacsDebit'
   -> Maybe Object
   -> Maybe PostPaymentMethodsRequestBodyBillingDetails'
   -> Maybe PostPaymentMethodsRequestBodyBoleto'
   -> Maybe PostPaymentMethodsRequestBodyCard'
   -> Maybe Text
   -> Maybe PostPaymentMethodsRequestBodyEps'
   -> Maybe [Text]
   -> Maybe PostPaymentMethodsRequestBodyFpx'
   -> Maybe Object
   -> Maybe Object
   -> Maybe PostPaymentMethodsRequestBodyIdeal'
   -> Maybe Object
   -> Maybe Object
   -> Maybe Object
   -> Maybe PostPaymentMethodsRequestBodyP24'
   -> Maybe Text
   -> Maybe PostPaymentMethodsRequestBodySepaDebit'
   -> Maybe PostPaymentMethodsRequestBodySofort'
   -> Maybe PostPaymentMethodsRequestBodyType'
   -> PostPaymentMethodsRequestBody)
-> Parser (Maybe PostPaymentMethodsRequestBodyAuBecsDebit')
-> Parser
     (Maybe PostPaymentMethodsRequestBodyBacsDebit'
      -> Maybe Object
      -> Maybe PostPaymentMethodsRequestBodyBillingDetails'
      -> Maybe PostPaymentMethodsRequestBodyBoleto'
      -> Maybe PostPaymentMethodsRequestBodyCard'
      -> Maybe Text
      -> Maybe PostPaymentMethodsRequestBodyEps'
      -> Maybe [Text]
      -> Maybe PostPaymentMethodsRequestBodyFpx'
      -> Maybe Object
      -> Maybe Object
      -> Maybe PostPaymentMethodsRequestBodyIdeal'
      -> Maybe Object
      -> Maybe Object
      -> Maybe Object
      -> Maybe PostPaymentMethodsRequestBodyP24'
      -> Maybe Text
      -> Maybe PostPaymentMethodsRequestBodySepaDebit'
      -> Maybe PostPaymentMethodsRequestBodySofort'
      -> Maybe PostPaymentMethodsRequestBodyType'
      -> PostPaymentMethodsRequestBody)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text -> Parser (Maybe PostPaymentMethodsRequestBodyAuBecsDebit')
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"au_becs_debit")) Parser
  (Maybe PostPaymentMethodsRequestBodyBacsDebit'
   -> Maybe Object
   -> Maybe PostPaymentMethodsRequestBodyBillingDetails'
   -> Maybe PostPaymentMethodsRequestBodyBoleto'
   -> Maybe PostPaymentMethodsRequestBodyCard'
   -> Maybe Text
   -> Maybe PostPaymentMethodsRequestBodyEps'
   -> Maybe [Text]
   -> Maybe PostPaymentMethodsRequestBodyFpx'
   -> Maybe Object
   -> Maybe Object
   -> Maybe PostPaymentMethodsRequestBodyIdeal'
   -> Maybe Object
   -> Maybe Object
   -> Maybe Object
   -> Maybe PostPaymentMethodsRequestBodyP24'
   -> Maybe Text
   -> Maybe PostPaymentMethodsRequestBodySepaDebit'
   -> Maybe PostPaymentMethodsRequestBodySofort'
   -> Maybe PostPaymentMethodsRequestBodyType'
   -> PostPaymentMethodsRequestBody)
-> Parser (Maybe PostPaymentMethodsRequestBodyBacsDebit')
-> Parser
     (Maybe Object
      -> Maybe PostPaymentMethodsRequestBodyBillingDetails'
      -> Maybe PostPaymentMethodsRequestBodyBoleto'
      -> Maybe PostPaymentMethodsRequestBodyCard'
      -> Maybe Text
      -> Maybe PostPaymentMethodsRequestBodyEps'
      -> Maybe [Text]
      -> Maybe PostPaymentMethodsRequestBodyFpx'
      -> Maybe Object
      -> Maybe Object
      -> Maybe PostPaymentMethodsRequestBodyIdeal'
      -> Maybe Object
      -> Maybe Object
      -> Maybe Object
      -> Maybe PostPaymentMethodsRequestBodyP24'
      -> Maybe Text
      -> Maybe PostPaymentMethodsRequestBodySepaDebit'
      -> Maybe PostPaymentMethodsRequestBodySofort'
      -> Maybe PostPaymentMethodsRequestBodyType'
      -> PostPaymentMethodsRequestBody)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text -> Parser (Maybe PostPaymentMethodsRequestBodyBacsDebit')
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"bacs_debit")) Parser
  (Maybe Object
   -> Maybe PostPaymentMethodsRequestBodyBillingDetails'
   -> Maybe PostPaymentMethodsRequestBodyBoleto'
   -> Maybe PostPaymentMethodsRequestBodyCard'
   -> Maybe Text
   -> Maybe PostPaymentMethodsRequestBodyEps'
   -> Maybe [Text]
   -> Maybe PostPaymentMethodsRequestBodyFpx'
   -> Maybe Object
   -> Maybe Object
   -> Maybe PostPaymentMethodsRequestBodyIdeal'
   -> Maybe Object
   -> Maybe Object
   -> Maybe Object
   -> Maybe PostPaymentMethodsRequestBodyP24'
   -> Maybe Text
   -> Maybe PostPaymentMethodsRequestBodySepaDebit'
   -> Maybe PostPaymentMethodsRequestBodySofort'
   -> Maybe PostPaymentMethodsRequestBodyType'
   -> PostPaymentMethodsRequestBody)
-> Parser (Maybe Object)
-> Parser
     (Maybe PostPaymentMethodsRequestBodyBillingDetails'
      -> Maybe PostPaymentMethodsRequestBodyBoleto'
      -> Maybe PostPaymentMethodsRequestBodyCard'
      -> Maybe Text
      -> Maybe PostPaymentMethodsRequestBodyEps'
      -> Maybe [Text]
      -> Maybe PostPaymentMethodsRequestBodyFpx'
      -> Maybe Object
      -> Maybe Object
      -> Maybe PostPaymentMethodsRequestBodyIdeal'
      -> Maybe Object
      -> Maybe Object
      -> Maybe Object
      -> Maybe PostPaymentMethodsRequestBodyP24'
      -> Maybe Text
      -> Maybe PostPaymentMethodsRequestBodySepaDebit'
      -> Maybe PostPaymentMethodsRequestBodySofort'
      -> Maybe PostPaymentMethodsRequestBodyType'
      -> PostPaymentMethodsRequestBody)
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
"bancontact")) Parser
  (Maybe PostPaymentMethodsRequestBodyBillingDetails'
   -> Maybe PostPaymentMethodsRequestBodyBoleto'
   -> Maybe PostPaymentMethodsRequestBodyCard'
   -> Maybe Text
   -> Maybe PostPaymentMethodsRequestBodyEps'
   -> Maybe [Text]
   -> Maybe PostPaymentMethodsRequestBodyFpx'
   -> Maybe Object
   -> Maybe Object
   -> Maybe PostPaymentMethodsRequestBodyIdeal'
   -> Maybe Object
   -> Maybe Object
   -> Maybe Object
   -> Maybe PostPaymentMethodsRequestBodyP24'
   -> Maybe Text
   -> Maybe PostPaymentMethodsRequestBodySepaDebit'
   -> Maybe PostPaymentMethodsRequestBodySofort'
   -> Maybe PostPaymentMethodsRequestBodyType'
   -> PostPaymentMethodsRequestBody)
-> Parser (Maybe PostPaymentMethodsRequestBodyBillingDetails')
-> Parser
     (Maybe PostPaymentMethodsRequestBodyBoleto'
      -> Maybe PostPaymentMethodsRequestBodyCard'
      -> Maybe Text
      -> Maybe PostPaymentMethodsRequestBodyEps'
      -> Maybe [Text]
      -> Maybe PostPaymentMethodsRequestBodyFpx'
      -> Maybe Object
      -> Maybe Object
      -> Maybe PostPaymentMethodsRequestBodyIdeal'
      -> Maybe Object
      -> Maybe Object
      -> Maybe Object
      -> Maybe PostPaymentMethodsRequestBodyP24'
      -> Maybe Text
      -> Maybe PostPaymentMethodsRequestBodySepaDebit'
      -> Maybe PostPaymentMethodsRequestBodySofort'
      -> Maybe PostPaymentMethodsRequestBodyType'
      -> PostPaymentMethodsRequestBody)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser (Maybe PostPaymentMethodsRequestBodyBillingDetails')
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"billing_details")) Parser
  (Maybe PostPaymentMethodsRequestBodyBoleto'
   -> Maybe PostPaymentMethodsRequestBodyCard'
   -> Maybe Text
   -> Maybe PostPaymentMethodsRequestBodyEps'
   -> Maybe [Text]
   -> Maybe PostPaymentMethodsRequestBodyFpx'
   -> Maybe Object
   -> Maybe Object
   -> Maybe PostPaymentMethodsRequestBodyIdeal'
   -> Maybe Object
   -> Maybe Object
   -> Maybe Object
   -> Maybe PostPaymentMethodsRequestBodyP24'
   -> Maybe Text
   -> Maybe PostPaymentMethodsRequestBodySepaDebit'
   -> Maybe PostPaymentMethodsRequestBodySofort'
   -> Maybe PostPaymentMethodsRequestBodyType'
   -> PostPaymentMethodsRequestBody)
-> Parser (Maybe PostPaymentMethodsRequestBodyBoleto')
-> Parser
     (Maybe PostPaymentMethodsRequestBodyCard'
      -> Maybe Text
      -> Maybe PostPaymentMethodsRequestBodyEps'
      -> Maybe [Text]
      -> Maybe PostPaymentMethodsRequestBodyFpx'
      -> Maybe Object
      -> Maybe Object
      -> Maybe PostPaymentMethodsRequestBodyIdeal'
      -> Maybe Object
      -> Maybe Object
      -> Maybe Object
      -> Maybe PostPaymentMethodsRequestBodyP24'
      -> Maybe Text
      -> Maybe PostPaymentMethodsRequestBodySepaDebit'
      -> Maybe PostPaymentMethodsRequestBodySofort'
      -> Maybe PostPaymentMethodsRequestBodyType'
      -> PostPaymentMethodsRequestBody)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text -> Parser (Maybe PostPaymentMethodsRequestBodyBoleto')
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"boleto")) Parser
  (Maybe PostPaymentMethodsRequestBodyCard'
   -> Maybe Text
   -> Maybe PostPaymentMethodsRequestBodyEps'
   -> Maybe [Text]
   -> Maybe PostPaymentMethodsRequestBodyFpx'
   -> Maybe Object
   -> Maybe Object
   -> Maybe PostPaymentMethodsRequestBodyIdeal'
   -> Maybe Object
   -> Maybe Object
   -> Maybe Object
   -> Maybe PostPaymentMethodsRequestBodyP24'
   -> Maybe Text
   -> Maybe PostPaymentMethodsRequestBodySepaDebit'
   -> Maybe PostPaymentMethodsRequestBodySofort'
   -> Maybe PostPaymentMethodsRequestBodyType'
   -> PostPaymentMethodsRequestBody)
-> Parser (Maybe PostPaymentMethodsRequestBodyCard')
-> Parser
     (Maybe Text
      -> Maybe PostPaymentMethodsRequestBodyEps'
      -> Maybe [Text]
      -> Maybe PostPaymentMethodsRequestBodyFpx'
      -> Maybe Object
      -> Maybe Object
      -> Maybe PostPaymentMethodsRequestBodyIdeal'
      -> Maybe Object
      -> Maybe Object
      -> Maybe Object
      -> Maybe PostPaymentMethodsRequestBodyP24'
      -> Maybe Text
      -> Maybe PostPaymentMethodsRequestBodySepaDebit'
      -> Maybe PostPaymentMethodsRequestBodySofort'
      -> Maybe PostPaymentMethodsRequestBodyType'
      -> PostPaymentMethodsRequestBody)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe PostPaymentMethodsRequestBodyCard')
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"card")) Parser
  (Maybe Text
   -> Maybe PostPaymentMethodsRequestBodyEps'
   -> Maybe [Text]
   -> Maybe PostPaymentMethodsRequestBodyFpx'
   -> Maybe Object
   -> Maybe Object
   -> Maybe PostPaymentMethodsRequestBodyIdeal'
   -> Maybe Object
   -> Maybe Object
   -> Maybe Object
   -> Maybe PostPaymentMethodsRequestBodyP24'
   -> Maybe Text
   -> Maybe PostPaymentMethodsRequestBodySepaDebit'
   -> Maybe PostPaymentMethodsRequestBodySofort'
   -> Maybe PostPaymentMethodsRequestBodyType'
   -> PostPaymentMethodsRequestBody)
-> Parser (Maybe Text)
-> Parser
     (Maybe PostPaymentMethodsRequestBodyEps'
      -> Maybe [Text]
      -> Maybe PostPaymentMethodsRequestBodyFpx'
      -> Maybe Object
      -> Maybe Object
      -> Maybe PostPaymentMethodsRequestBodyIdeal'
      -> Maybe Object
      -> Maybe Object
      -> Maybe Object
      -> Maybe PostPaymentMethodsRequestBodyP24'
      -> Maybe Text
      -> Maybe PostPaymentMethodsRequestBodySepaDebit'
      -> Maybe PostPaymentMethodsRequestBodySofort'
      -> Maybe PostPaymentMethodsRequestBodyType'
      -> PostPaymentMethodsRequestBody)
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
"customer")) Parser
  (Maybe PostPaymentMethodsRequestBodyEps'
   -> Maybe [Text]
   -> Maybe PostPaymentMethodsRequestBodyFpx'
   -> Maybe Object
   -> Maybe Object
   -> Maybe PostPaymentMethodsRequestBodyIdeal'
   -> Maybe Object
   -> Maybe Object
   -> Maybe Object
   -> Maybe PostPaymentMethodsRequestBodyP24'
   -> Maybe Text
   -> Maybe PostPaymentMethodsRequestBodySepaDebit'
   -> Maybe PostPaymentMethodsRequestBodySofort'
   -> Maybe PostPaymentMethodsRequestBodyType'
   -> PostPaymentMethodsRequestBody)
-> Parser (Maybe PostPaymentMethodsRequestBodyEps')
-> Parser
     (Maybe [Text]
      -> Maybe PostPaymentMethodsRequestBodyFpx'
      -> Maybe Object
      -> Maybe Object
      -> Maybe PostPaymentMethodsRequestBodyIdeal'
      -> Maybe Object
      -> Maybe Object
      -> Maybe Object
      -> Maybe PostPaymentMethodsRequestBodyP24'
      -> Maybe Text
      -> Maybe PostPaymentMethodsRequestBodySepaDebit'
      -> Maybe PostPaymentMethodsRequestBodySofort'
      -> Maybe PostPaymentMethodsRequestBodyType'
      -> PostPaymentMethodsRequestBody)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe PostPaymentMethodsRequestBodyEps')
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"eps")) Parser
  (Maybe [Text]
   -> Maybe PostPaymentMethodsRequestBodyFpx'
   -> Maybe Object
   -> Maybe Object
   -> Maybe PostPaymentMethodsRequestBodyIdeal'
   -> Maybe Object
   -> Maybe Object
   -> Maybe Object
   -> Maybe PostPaymentMethodsRequestBodyP24'
   -> Maybe Text
   -> Maybe PostPaymentMethodsRequestBodySepaDebit'
   -> Maybe PostPaymentMethodsRequestBodySofort'
   -> Maybe PostPaymentMethodsRequestBodyType'
   -> PostPaymentMethodsRequestBody)
-> Parser (Maybe [Text])
-> Parser
     (Maybe PostPaymentMethodsRequestBodyFpx'
      -> Maybe Object
      -> Maybe Object
      -> Maybe PostPaymentMethodsRequestBodyIdeal'
      -> Maybe Object
      -> Maybe Object
      -> Maybe Object
      -> Maybe PostPaymentMethodsRequestBodyP24'
      -> Maybe Text
      -> Maybe PostPaymentMethodsRequestBodySepaDebit'
      -> Maybe PostPaymentMethodsRequestBodySofort'
      -> Maybe PostPaymentMethodsRequestBodyType'
      -> PostPaymentMethodsRequestBody)
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 PostPaymentMethodsRequestBodyFpx'
   -> Maybe Object
   -> Maybe Object
   -> Maybe PostPaymentMethodsRequestBodyIdeal'
   -> Maybe Object
   -> Maybe Object
   -> Maybe Object
   -> Maybe PostPaymentMethodsRequestBodyP24'
   -> Maybe Text
   -> Maybe PostPaymentMethodsRequestBodySepaDebit'
   -> Maybe PostPaymentMethodsRequestBodySofort'
   -> Maybe PostPaymentMethodsRequestBodyType'
   -> PostPaymentMethodsRequestBody)
-> Parser (Maybe PostPaymentMethodsRequestBodyFpx')
-> Parser
     (Maybe Object
      -> Maybe Object
      -> Maybe PostPaymentMethodsRequestBodyIdeal'
      -> Maybe Object
      -> Maybe Object
      -> Maybe Object
      -> Maybe PostPaymentMethodsRequestBodyP24'
      -> Maybe Text
      -> Maybe PostPaymentMethodsRequestBodySepaDebit'
      -> Maybe PostPaymentMethodsRequestBodySofort'
      -> Maybe PostPaymentMethodsRequestBodyType'
      -> PostPaymentMethodsRequestBody)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe PostPaymentMethodsRequestBodyFpx')
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"fpx")) Parser
  (Maybe Object
   -> Maybe Object
   -> Maybe PostPaymentMethodsRequestBodyIdeal'
   -> Maybe Object
   -> Maybe Object
   -> Maybe Object
   -> Maybe PostPaymentMethodsRequestBodyP24'
   -> Maybe Text
   -> Maybe PostPaymentMethodsRequestBodySepaDebit'
   -> Maybe PostPaymentMethodsRequestBodySofort'
   -> Maybe PostPaymentMethodsRequestBodyType'
   -> PostPaymentMethodsRequestBody)
-> Parser (Maybe Object)
-> Parser
     (Maybe Object
      -> Maybe PostPaymentMethodsRequestBodyIdeal'
      -> Maybe Object
      -> Maybe Object
      -> Maybe Object
      -> Maybe PostPaymentMethodsRequestBodyP24'
      -> Maybe Text
      -> Maybe PostPaymentMethodsRequestBodySepaDebit'
      -> Maybe PostPaymentMethodsRequestBodySofort'
      -> Maybe PostPaymentMethodsRequestBodyType'
      -> PostPaymentMethodsRequestBody)
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
"giropay")) Parser
  (Maybe Object
   -> Maybe PostPaymentMethodsRequestBodyIdeal'
   -> Maybe Object
   -> Maybe Object
   -> Maybe Object
   -> Maybe PostPaymentMethodsRequestBodyP24'
   -> Maybe Text
   -> Maybe PostPaymentMethodsRequestBodySepaDebit'
   -> Maybe PostPaymentMethodsRequestBodySofort'
   -> Maybe PostPaymentMethodsRequestBodyType'
   -> PostPaymentMethodsRequestBody)
-> Parser (Maybe Object)
-> Parser
     (Maybe PostPaymentMethodsRequestBodyIdeal'
      -> Maybe Object
      -> Maybe Object
      -> Maybe Object
      -> Maybe PostPaymentMethodsRequestBodyP24'
      -> Maybe Text
      -> Maybe PostPaymentMethodsRequestBodySepaDebit'
      -> Maybe PostPaymentMethodsRequestBodySofort'
      -> Maybe PostPaymentMethodsRequestBodyType'
      -> PostPaymentMethodsRequestBody)
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
"grabpay")) Parser
  (Maybe PostPaymentMethodsRequestBodyIdeal'
   -> Maybe Object
   -> Maybe Object
   -> Maybe Object
   -> Maybe PostPaymentMethodsRequestBodyP24'
   -> Maybe Text
   -> Maybe PostPaymentMethodsRequestBodySepaDebit'
   -> Maybe PostPaymentMethodsRequestBodySofort'
   -> Maybe PostPaymentMethodsRequestBodyType'
   -> PostPaymentMethodsRequestBody)
-> Parser (Maybe PostPaymentMethodsRequestBodyIdeal')
-> Parser
     (Maybe Object
      -> Maybe Object
      -> Maybe Object
      -> Maybe PostPaymentMethodsRequestBodyP24'
      -> Maybe Text
      -> Maybe PostPaymentMethodsRequestBodySepaDebit'
      -> Maybe PostPaymentMethodsRequestBodySofort'
      -> Maybe PostPaymentMethodsRequestBodyType'
      -> PostPaymentMethodsRequestBody)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text -> Parser (Maybe PostPaymentMethodsRequestBodyIdeal')
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"ideal")) Parser
  (Maybe Object
   -> Maybe Object
   -> Maybe Object
   -> Maybe PostPaymentMethodsRequestBodyP24'
   -> Maybe Text
   -> Maybe PostPaymentMethodsRequestBodySepaDebit'
   -> Maybe PostPaymentMethodsRequestBodySofort'
   -> Maybe PostPaymentMethodsRequestBodyType'
   -> PostPaymentMethodsRequestBody)
-> Parser (Maybe Object)
-> Parser
     (Maybe Object
      -> Maybe Object
      -> Maybe PostPaymentMethodsRequestBodyP24'
      -> Maybe Text
      -> Maybe PostPaymentMethodsRequestBodySepaDebit'
      -> Maybe PostPaymentMethodsRequestBodySofort'
      -> Maybe PostPaymentMethodsRequestBodyType'
      -> PostPaymentMethodsRequestBody)
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
"interac_present")) Parser
  (Maybe Object
   -> Maybe Object
   -> Maybe PostPaymentMethodsRequestBodyP24'
   -> Maybe Text
   -> Maybe PostPaymentMethodsRequestBodySepaDebit'
   -> Maybe PostPaymentMethodsRequestBodySofort'
   -> Maybe PostPaymentMethodsRequestBodyType'
   -> PostPaymentMethodsRequestBody)
-> Parser (Maybe Object)
-> Parser
     (Maybe Object
      -> Maybe PostPaymentMethodsRequestBodyP24'
      -> Maybe Text
      -> Maybe PostPaymentMethodsRequestBodySepaDebit'
      -> Maybe PostPaymentMethodsRequestBodySofort'
      -> Maybe PostPaymentMethodsRequestBodyType'
      -> PostPaymentMethodsRequestBody)
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 Object
   -> Maybe PostPaymentMethodsRequestBodyP24'
   -> Maybe Text
   -> Maybe PostPaymentMethodsRequestBodySepaDebit'
   -> Maybe PostPaymentMethodsRequestBodySofort'
   -> Maybe PostPaymentMethodsRequestBodyType'
   -> PostPaymentMethodsRequestBody)
-> Parser (Maybe Object)
-> Parser
     (Maybe PostPaymentMethodsRequestBodyP24'
      -> Maybe Text
      -> Maybe PostPaymentMethodsRequestBodySepaDebit'
      -> Maybe PostPaymentMethodsRequestBodySofort'
      -> Maybe PostPaymentMethodsRequestBodyType'
      -> PostPaymentMethodsRequestBody)
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
"oxxo")) Parser
  (Maybe PostPaymentMethodsRequestBodyP24'
   -> Maybe Text
   -> Maybe PostPaymentMethodsRequestBodySepaDebit'
   -> Maybe PostPaymentMethodsRequestBodySofort'
   -> Maybe PostPaymentMethodsRequestBodyType'
   -> PostPaymentMethodsRequestBody)
-> Parser (Maybe PostPaymentMethodsRequestBodyP24')
-> Parser
     (Maybe Text
      -> Maybe PostPaymentMethodsRequestBodySepaDebit'
      -> Maybe PostPaymentMethodsRequestBodySofort'
      -> Maybe PostPaymentMethodsRequestBodyType'
      -> PostPaymentMethodsRequestBody)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe PostPaymentMethodsRequestBodyP24')
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"p24")) Parser
  (Maybe Text
   -> Maybe PostPaymentMethodsRequestBodySepaDebit'
   -> Maybe PostPaymentMethodsRequestBodySofort'
   -> Maybe PostPaymentMethodsRequestBodyType'
   -> PostPaymentMethodsRequestBody)
-> Parser (Maybe Text)
-> Parser
     (Maybe PostPaymentMethodsRequestBodySepaDebit'
      -> Maybe PostPaymentMethodsRequestBodySofort'
      -> Maybe PostPaymentMethodsRequestBodyType'
      -> PostPaymentMethodsRequestBody)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"payment_method")) Parser
  (Maybe PostPaymentMethodsRequestBodySepaDebit'
   -> Maybe PostPaymentMethodsRequestBodySofort'
   -> Maybe PostPaymentMethodsRequestBodyType'
   -> PostPaymentMethodsRequestBody)
-> Parser (Maybe PostPaymentMethodsRequestBodySepaDebit')
-> Parser
     (Maybe PostPaymentMethodsRequestBodySofort'
      -> Maybe PostPaymentMethodsRequestBodyType'
      -> PostPaymentMethodsRequestBody)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text -> Parser (Maybe PostPaymentMethodsRequestBodySepaDebit')
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"sepa_debit")) Parser
  (Maybe PostPaymentMethodsRequestBodySofort'
   -> Maybe PostPaymentMethodsRequestBodyType'
   -> PostPaymentMethodsRequestBody)
-> Parser (Maybe PostPaymentMethodsRequestBodySofort')
-> Parser
     (Maybe PostPaymentMethodsRequestBodyType'
      -> PostPaymentMethodsRequestBody)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text -> Parser (Maybe PostPaymentMethodsRequestBodySofort')
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"sofort")) Parser
  (Maybe PostPaymentMethodsRequestBodyType'
   -> PostPaymentMethodsRequestBody)
-> Parser (Maybe PostPaymentMethodsRequestBodyType')
-> Parser PostPaymentMethodsRequestBody
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe PostPaymentMethodsRequestBodyType')
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"type"))

-- | Create a new 'PostPaymentMethodsRequestBody' with all required fields.
mkPostPaymentMethodsRequestBody :: PostPaymentMethodsRequestBody
mkPostPaymentMethodsRequestBody :: PostPaymentMethodsRequestBody
mkPostPaymentMethodsRequestBody =
  PostPaymentMethodsRequestBody :: Maybe PostPaymentMethodsRequestBodyAcssDebit'
-> Maybe Object
-> Maybe Object
-> Maybe PostPaymentMethodsRequestBodyAuBecsDebit'
-> Maybe PostPaymentMethodsRequestBodyBacsDebit'
-> Maybe Object
-> Maybe PostPaymentMethodsRequestBodyBillingDetails'
-> Maybe PostPaymentMethodsRequestBodyBoleto'
-> Maybe PostPaymentMethodsRequestBodyCard'
-> Maybe Text
-> Maybe PostPaymentMethodsRequestBodyEps'
-> Maybe [Text]
-> Maybe PostPaymentMethodsRequestBodyFpx'
-> Maybe Object
-> Maybe Object
-> Maybe PostPaymentMethodsRequestBodyIdeal'
-> Maybe Object
-> Maybe Object
-> Maybe Object
-> Maybe PostPaymentMethodsRequestBodyP24'
-> Maybe Text
-> Maybe PostPaymentMethodsRequestBodySepaDebit'
-> Maybe PostPaymentMethodsRequestBodySofort'
-> Maybe PostPaymentMethodsRequestBodyType'
-> PostPaymentMethodsRequestBody
PostPaymentMethodsRequestBody
    { postPaymentMethodsRequestBodyAcssDebit :: Maybe PostPaymentMethodsRequestBodyAcssDebit'
postPaymentMethodsRequestBodyAcssDebit = Maybe PostPaymentMethodsRequestBodyAcssDebit'
forall a. Maybe a
GHC.Maybe.Nothing,
      postPaymentMethodsRequestBodyAfterpayClearpay :: Maybe Object
postPaymentMethodsRequestBodyAfterpayClearpay = Maybe Object
forall a. Maybe a
GHC.Maybe.Nothing,
      postPaymentMethodsRequestBodyAlipay :: Maybe Object
postPaymentMethodsRequestBodyAlipay = Maybe Object
forall a. Maybe a
GHC.Maybe.Nothing,
      postPaymentMethodsRequestBodyAuBecsDebit :: Maybe PostPaymentMethodsRequestBodyAuBecsDebit'
postPaymentMethodsRequestBodyAuBecsDebit = Maybe PostPaymentMethodsRequestBodyAuBecsDebit'
forall a. Maybe a
GHC.Maybe.Nothing,
      postPaymentMethodsRequestBodyBacsDebit :: Maybe PostPaymentMethodsRequestBodyBacsDebit'
postPaymentMethodsRequestBodyBacsDebit = Maybe PostPaymentMethodsRequestBodyBacsDebit'
forall a. Maybe a
GHC.Maybe.Nothing,
      postPaymentMethodsRequestBodyBancontact :: Maybe Object
postPaymentMethodsRequestBodyBancontact = Maybe Object
forall a. Maybe a
GHC.Maybe.Nothing,
      postPaymentMethodsRequestBodyBillingDetails :: Maybe PostPaymentMethodsRequestBodyBillingDetails'
postPaymentMethodsRequestBodyBillingDetails = Maybe PostPaymentMethodsRequestBodyBillingDetails'
forall a. Maybe a
GHC.Maybe.Nothing,
      postPaymentMethodsRequestBodyBoleto :: Maybe PostPaymentMethodsRequestBodyBoleto'
postPaymentMethodsRequestBodyBoleto = Maybe PostPaymentMethodsRequestBodyBoleto'
forall a. Maybe a
GHC.Maybe.Nothing,
      postPaymentMethodsRequestBodyCard :: Maybe PostPaymentMethodsRequestBodyCard'
postPaymentMethodsRequestBodyCard = Maybe PostPaymentMethodsRequestBodyCard'
forall a. Maybe a
GHC.Maybe.Nothing,
      postPaymentMethodsRequestBodyCustomer :: Maybe Text
postPaymentMethodsRequestBodyCustomer = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      postPaymentMethodsRequestBodyEps :: Maybe PostPaymentMethodsRequestBodyEps'
postPaymentMethodsRequestBodyEps = Maybe PostPaymentMethodsRequestBodyEps'
forall a. Maybe a
GHC.Maybe.Nothing,
      postPaymentMethodsRequestBodyExpand :: Maybe [Text]
postPaymentMethodsRequestBodyExpand = Maybe [Text]
forall a. Maybe a
GHC.Maybe.Nothing,
      postPaymentMethodsRequestBodyFpx :: Maybe PostPaymentMethodsRequestBodyFpx'
postPaymentMethodsRequestBodyFpx = Maybe PostPaymentMethodsRequestBodyFpx'
forall a. Maybe a
GHC.Maybe.Nothing,
      postPaymentMethodsRequestBodyGiropay :: Maybe Object
postPaymentMethodsRequestBodyGiropay = Maybe Object
forall a. Maybe a
GHC.Maybe.Nothing,
      postPaymentMethodsRequestBodyGrabpay :: Maybe Object
postPaymentMethodsRequestBodyGrabpay = Maybe Object
forall a. Maybe a
GHC.Maybe.Nothing,
      postPaymentMethodsRequestBodyIdeal :: Maybe PostPaymentMethodsRequestBodyIdeal'
postPaymentMethodsRequestBodyIdeal = Maybe PostPaymentMethodsRequestBodyIdeal'
forall a. Maybe a
GHC.Maybe.Nothing,
      postPaymentMethodsRequestBodyInteracPresent :: Maybe Object
postPaymentMethodsRequestBodyInteracPresent = Maybe Object
forall a. Maybe a
GHC.Maybe.Nothing,
      postPaymentMethodsRequestBodyMetadata :: Maybe Object
postPaymentMethodsRequestBodyMetadata = Maybe Object
forall a. Maybe a
GHC.Maybe.Nothing,
      postPaymentMethodsRequestBodyOxxo :: Maybe Object
postPaymentMethodsRequestBodyOxxo = Maybe Object
forall a. Maybe a
GHC.Maybe.Nothing,
      postPaymentMethodsRequestBodyP24 :: Maybe PostPaymentMethodsRequestBodyP24'
postPaymentMethodsRequestBodyP24 = Maybe PostPaymentMethodsRequestBodyP24'
forall a. Maybe a
GHC.Maybe.Nothing,
      postPaymentMethodsRequestBodyPaymentMethod :: Maybe Text
postPaymentMethodsRequestBodyPaymentMethod = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      postPaymentMethodsRequestBodySepaDebit :: Maybe PostPaymentMethodsRequestBodySepaDebit'
postPaymentMethodsRequestBodySepaDebit = Maybe PostPaymentMethodsRequestBodySepaDebit'
forall a. Maybe a
GHC.Maybe.Nothing,
      postPaymentMethodsRequestBodySofort :: Maybe PostPaymentMethodsRequestBodySofort'
postPaymentMethodsRequestBodySofort = Maybe PostPaymentMethodsRequestBodySofort'
forall a. Maybe a
GHC.Maybe.Nothing,
      postPaymentMethodsRequestBodyType :: Maybe PostPaymentMethodsRequestBodyType'
postPaymentMethodsRequestBodyType = Maybe PostPaymentMethodsRequestBodyType'
forall a. Maybe a
GHC.Maybe.Nothing
    }

-- | Defines the object schema located at @paths.\/v1\/payment_methods.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.acss_debit@ in the specification.
--
-- If this is an \`acss_debit\` PaymentMethod, this hash contains details about the ACSS Debit payment method.
data PostPaymentMethodsRequestBodyAcssDebit' = PostPaymentMethodsRequestBodyAcssDebit'
  { -- | account_number
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PostPaymentMethodsRequestBodyAcssDebit' -> Text
postPaymentMethodsRequestBodyAcssDebit'AccountNumber :: Data.Text.Internal.Text,
    -- | institution_number
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PostPaymentMethodsRequestBodyAcssDebit' -> Text
postPaymentMethodsRequestBodyAcssDebit'InstitutionNumber :: Data.Text.Internal.Text,
    -- | transit_number
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PostPaymentMethodsRequestBodyAcssDebit' -> Text
postPaymentMethodsRequestBodyAcssDebit'TransitNumber :: Data.Text.Internal.Text
  }
  deriving
    ( Int -> PostPaymentMethodsRequestBodyAcssDebit' -> ShowS
[PostPaymentMethodsRequestBodyAcssDebit'] -> ShowS
PostPaymentMethodsRequestBodyAcssDebit' -> String
(Int -> PostPaymentMethodsRequestBodyAcssDebit' -> ShowS)
-> (PostPaymentMethodsRequestBodyAcssDebit' -> String)
-> ([PostPaymentMethodsRequestBodyAcssDebit'] -> ShowS)
-> Show PostPaymentMethodsRequestBodyAcssDebit'
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PostPaymentMethodsRequestBodyAcssDebit'] -> ShowS
$cshowList :: [PostPaymentMethodsRequestBodyAcssDebit'] -> ShowS
show :: PostPaymentMethodsRequestBodyAcssDebit' -> String
$cshow :: PostPaymentMethodsRequestBodyAcssDebit' -> String
showsPrec :: Int -> PostPaymentMethodsRequestBodyAcssDebit' -> ShowS
$cshowsPrec :: Int -> PostPaymentMethodsRequestBodyAcssDebit' -> ShowS
GHC.Show.Show,
      PostPaymentMethodsRequestBodyAcssDebit'
-> PostPaymentMethodsRequestBodyAcssDebit' -> Bool
(PostPaymentMethodsRequestBodyAcssDebit'
 -> PostPaymentMethodsRequestBodyAcssDebit' -> Bool)
-> (PostPaymentMethodsRequestBodyAcssDebit'
    -> PostPaymentMethodsRequestBodyAcssDebit' -> Bool)
-> Eq PostPaymentMethodsRequestBodyAcssDebit'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostPaymentMethodsRequestBodyAcssDebit'
-> PostPaymentMethodsRequestBodyAcssDebit' -> Bool
$c/= :: PostPaymentMethodsRequestBodyAcssDebit'
-> PostPaymentMethodsRequestBodyAcssDebit' -> Bool
== :: PostPaymentMethodsRequestBodyAcssDebit'
-> PostPaymentMethodsRequestBodyAcssDebit' -> Bool
$c== :: PostPaymentMethodsRequestBodyAcssDebit'
-> PostPaymentMethodsRequestBodyAcssDebit' -> Bool
GHC.Classes.Eq
    )

instance Data.Aeson.Types.ToJSON.ToJSON PostPaymentMethodsRequestBodyAcssDebit' where
  toJSON :: PostPaymentMethodsRequestBodyAcssDebit' -> Value
toJSON PostPaymentMethodsRequestBodyAcssDebit'
obj = [Pair] -> Value
Data.Aeson.Types.Internal.object (Text
"account_number" Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentMethodsRequestBodyAcssDebit' -> Text
postPaymentMethodsRequestBodyAcssDebit'AccountNumber PostPaymentMethodsRequestBodyAcssDebit'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"institution_number" Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentMethodsRequestBodyAcssDebit' -> Text
postPaymentMethodsRequestBodyAcssDebit'InstitutionNumber PostPaymentMethodsRequestBodyAcssDebit'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"transit_number" Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentMethodsRequestBodyAcssDebit' -> Text
postPaymentMethodsRequestBodyAcssDebit'TransitNumber PostPaymentMethodsRequestBodyAcssDebit'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: PostPaymentMethodsRequestBodyAcssDebit' -> Encoding
toEncoding PostPaymentMethodsRequestBodyAcssDebit'
obj = Series -> Encoding
Data.Aeson.Encoding.Internal.pairs ((Text
"account_number" Text -> Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentMethodsRequestBodyAcssDebit' -> Text
postPaymentMethodsRequestBodyAcssDebit'AccountNumber PostPaymentMethodsRequestBodyAcssDebit'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"institution_number" Text -> Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentMethodsRequestBodyAcssDebit' -> Text
postPaymentMethodsRequestBodyAcssDebit'InstitutionNumber PostPaymentMethodsRequestBodyAcssDebit'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> (Text
"transit_number" Text -> Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentMethodsRequestBodyAcssDebit' -> Text
postPaymentMethodsRequestBodyAcssDebit'TransitNumber PostPaymentMethodsRequestBodyAcssDebit'
obj)))

instance Data.Aeson.Types.FromJSON.FromJSON PostPaymentMethodsRequestBodyAcssDebit' where
  parseJSON :: Value -> Parser PostPaymentMethodsRequestBodyAcssDebit'
parseJSON = String
-> (Object -> Parser PostPaymentMethodsRequestBodyAcssDebit')
-> Value
-> Parser PostPaymentMethodsRequestBodyAcssDebit'
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.Aeson.Types.FromJSON.withObject String
"PostPaymentMethodsRequestBodyAcssDebit'" (\Object
obj -> (((Text -> Text -> Text -> PostPaymentMethodsRequestBodyAcssDebit')
-> Parser
     (Text -> Text -> Text -> PostPaymentMethodsRequestBodyAcssDebit')
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure Text -> Text -> Text -> PostPaymentMethodsRequestBodyAcssDebit'
PostPaymentMethodsRequestBodyAcssDebit' Parser
  (Text -> Text -> Text -> PostPaymentMethodsRequestBodyAcssDebit')
-> Parser Text
-> Parser (Text -> Text -> PostPaymentMethodsRequestBodyAcssDebit')
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
"account_number")) Parser (Text -> Text -> PostPaymentMethodsRequestBodyAcssDebit')
-> Parser Text
-> Parser (Text -> PostPaymentMethodsRequestBodyAcssDebit')
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
"institution_number")) Parser (Text -> PostPaymentMethodsRequestBodyAcssDebit')
-> Parser Text -> Parser PostPaymentMethodsRequestBodyAcssDebit'
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
"transit_number"))

-- | Create a new 'PostPaymentMethodsRequestBodyAcssDebit'' with all required fields.
mkPostPaymentMethodsRequestBodyAcssDebit' ::
  -- | 'postPaymentMethodsRequestBodyAcssDebit'AccountNumber'
  Data.Text.Internal.Text ->
  -- | 'postPaymentMethodsRequestBodyAcssDebit'InstitutionNumber'
  Data.Text.Internal.Text ->
  -- | 'postPaymentMethodsRequestBodyAcssDebit'TransitNumber'
  Data.Text.Internal.Text ->
  PostPaymentMethodsRequestBodyAcssDebit'
mkPostPaymentMethodsRequestBodyAcssDebit' :: Text -> Text -> Text -> PostPaymentMethodsRequestBodyAcssDebit'
mkPostPaymentMethodsRequestBodyAcssDebit' Text
postPaymentMethodsRequestBodyAcssDebit'AccountNumber Text
postPaymentMethodsRequestBodyAcssDebit'InstitutionNumber Text
postPaymentMethodsRequestBodyAcssDebit'TransitNumber =
  PostPaymentMethodsRequestBodyAcssDebit' :: Text -> Text -> Text -> PostPaymentMethodsRequestBodyAcssDebit'
PostPaymentMethodsRequestBodyAcssDebit'
    { postPaymentMethodsRequestBodyAcssDebit'AccountNumber :: Text
postPaymentMethodsRequestBodyAcssDebit'AccountNumber = Text
postPaymentMethodsRequestBodyAcssDebit'AccountNumber,
      postPaymentMethodsRequestBodyAcssDebit'InstitutionNumber :: Text
postPaymentMethodsRequestBodyAcssDebit'InstitutionNumber = Text
postPaymentMethodsRequestBodyAcssDebit'InstitutionNumber,
      postPaymentMethodsRequestBodyAcssDebit'TransitNumber :: Text
postPaymentMethodsRequestBodyAcssDebit'TransitNumber = Text
postPaymentMethodsRequestBodyAcssDebit'TransitNumber
    }

-- | Defines the object schema located at @paths.\/v1\/payment_methods.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.au_becs_debit@ in the specification.
--
-- If this is an \`au_becs_debit\` PaymentMethod, this hash contains details about the bank account.
data PostPaymentMethodsRequestBodyAuBecsDebit' = PostPaymentMethodsRequestBodyAuBecsDebit'
  { -- | account_number
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PostPaymentMethodsRequestBodyAuBecsDebit' -> Text
postPaymentMethodsRequestBodyAuBecsDebit'AccountNumber :: Data.Text.Internal.Text,
    -- | bsb_number
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PostPaymentMethodsRequestBodyAuBecsDebit' -> Text
postPaymentMethodsRequestBodyAuBecsDebit'BsbNumber :: Data.Text.Internal.Text
  }
  deriving
    ( Int -> PostPaymentMethodsRequestBodyAuBecsDebit' -> ShowS
[PostPaymentMethodsRequestBodyAuBecsDebit'] -> ShowS
PostPaymentMethodsRequestBodyAuBecsDebit' -> String
(Int -> PostPaymentMethodsRequestBodyAuBecsDebit' -> ShowS)
-> (PostPaymentMethodsRequestBodyAuBecsDebit' -> String)
-> ([PostPaymentMethodsRequestBodyAuBecsDebit'] -> ShowS)
-> Show PostPaymentMethodsRequestBodyAuBecsDebit'
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PostPaymentMethodsRequestBodyAuBecsDebit'] -> ShowS
$cshowList :: [PostPaymentMethodsRequestBodyAuBecsDebit'] -> ShowS
show :: PostPaymentMethodsRequestBodyAuBecsDebit' -> String
$cshow :: PostPaymentMethodsRequestBodyAuBecsDebit' -> String
showsPrec :: Int -> PostPaymentMethodsRequestBodyAuBecsDebit' -> ShowS
$cshowsPrec :: Int -> PostPaymentMethodsRequestBodyAuBecsDebit' -> ShowS
GHC.Show.Show,
      PostPaymentMethodsRequestBodyAuBecsDebit'
-> PostPaymentMethodsRequestBodyAuBecsDebit' -> Bool
(PostPaymentMethodsRequestBodyAuBecsDebit'
 -> PostPaymentMethodsRequestBodyAuBecsDebit' -> Bool)
-> (PostPaymentMethodsRequestBodyAuBecsDebit'
    -> PostPaymentMethodsRequestBodyAuBecsDebit' -> Bool)
-> Eq PostPaymentMethodsRequestBodyAuBecsDebit'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostPaymentMethodsRequestBodyAuBecsDebit'
-> PostPaymentMethodsRequestBodyAuBecsDebit' -> Bool
$c/= :: PostPaymentMethodsRequestBodyAuBecsDebit'
-> PostPaymentMethodsRequestBodyAuBecsDebit' -> Bool
== :: PostPaymentMethodsRequestBodyAuBecsDebit'
-> PostPaymentMethodsRequestBodyAuBecsDebit' -> Bool
$c== :: PostPaymentMethodsRequestBodyAuBecsDebit'
-> PostPaymentMethodsRequestBodyAuBecsDebit' -> Bool
GHC.Classes.Eq
    )

instance Data.Aeson.Types.ToJSON.ToJSON PostPaymentMethodsRequestBodyAuBecsDebit' where
  toJSON :: PostPaymentMethodsRequestBodyAuBecsDebit' -> Value
toJSON PostPaymentMethodsRequestBodyAuBecsDebit'
obj = [Pair] -> Value
Data.Aeson.Types.Internal.object (Text
"account_number" Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentMethodsRequestBodyAuBecsDebit' -> Text
postPaymentMethodsRequestBodyAuBecsDebit'AccountNumber PostPaymentMethodsRequestBodyAuBecsDebit'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"bsb_number" Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentMethodsRequestBodyAuBecsDebit' -> Text
postPaymentMethodsRequestBodyAuBecsDebit'BsbNumber PostPaymentMethodsRequestBodyAuBecsDebit'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: PostPaymentMethodsRequestBodyAuBecsDebit' -> Encoding
toEncoding PostPaymentMethodsRequestBodyAuBecsDebit'
obj = Series -> Encoding
Data.Aeson.Encoding.Internal.pairs ((Text
"account_number" Text -> Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentMethodsRequestBodyAuBecsDebit' -> Text
postPaymentMethodsRequestBodyAuBecsDebit'AccountNumber PostPaymentMethodsRequestBodyAuBecsDebit'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> (Text
"bsb_number" Text -> Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentMethodsRequestBodyAuBecsDebit' -> Text
postPaymentMethodsRequestBodyAuBecsDebit'BsbNumber PostPaymentMethodsRequestBodyAuBecsDebit'
obj))

instance Data.Aeson.Types.FromJSON.FromJSON PostPaymentMethodsRequestBodyAuBecsDebit' where
  parseJSON :: Value -> Parser PostPaymentMethodsRequestBodyAuBecsDebit'
parseJSON = String
-> (Object -> Parser PostPaymentMethodsRequestBodyAuBecsDebit')
-> Value
-> Parser PostPaymentMethodsRequestBodyAuBecsDebit'
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.Aeson.Types.FromJSON.withObject String
"PostPaymentMethodsRequestBodyAuBecsDebit'" (\Object
obj -> ((Text -> Text -> PostPaymentMethodsRequestBodyAuBecsDebit')
-> Parser
     (Text -> Text -> PostPaymentMethodsRequestBodyAuBecsDebit')
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure Text -> Text -> PostPaymentMethodsRequestBodyAuBecsDebit'
PostPaymentMethodsRequestBodyAuBecsDebit' Parser (Text -> Text -> PostPaymentMethodsRequestBodyAuBecsDebit')
-> Parser Text
-> Parser (Text -> PostPaymentMethodsRequestBodyAuBecsDebit')
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
"account_number")) Parser (Text -> PostPaymentMethodsRequestBodyAuBecsDebit')
-> Parser Text -> Parser PostPaymentMethodsRequestBodyAuBecsDebit'
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
"bsb_number"))

-- | Create a new 'PostPaymentMethodsRequestBodyAuBecsDebit'' with all required fields.
mkPostPaymentMethodsRequestBodyAuBecsDebit' ::
  -- | 'postPaymentMethodsRequestBodyAuBecsDebit'AccountNumber'
  Data.Text.Internal.Text ->
  -- | 'postPaymentMethodsRequestBodyAuBecsDebit'BsbNumber'
  Data.Text.Internal.Text ->
  PostPaymentMethodsRequestBodyAuBecsDebit'
mkPostPaymentMethodsRequestBodyAuBecsDebit' :: Text -> Text -> PostPaymentMethodsRequestBodyAuBecsDebit'
mkPostPaymentMethodsRequestBodyAuBecsDebit' Text
postPaymentMethodsRequestBodyAuBecsDebit'AccountNumber Text
postPaymentMethodsRequestBodyAuBecsDebit'BsbNumber =
  PostPaymentMethodsRequestBodyAuBecsDebit' :: Text -> Text -> PostPaymentMethodsRequestBodyAuBecsDebit'
PostPaymentMethodsRequestBodyAuBecsDebit'
    { postPaymentMethodsRequestBodyAuBecsDebit'AccountNumber :: Text
postPaymentMethodsRequestBodyAuBecsDebit'AccountNumber = Text
postPaymentMethodsRequestBodyAuBecsDebit'AccountNumber,
      postPaymentMethodsRequestBodyAuBecsDebit'BsbNumber :: Text
postPaymentMethodsRequestBodyAuBecsDebit'BsbNumber = Text
postPaymentMethodsRequestBodyAuBecsDebit'BsbNumber
    }

-- | Defines the object schema located at @paths.\/v1\/payment_methods.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.bacs_debit@ in the specification.
--
-- If this is a \`bacs_debit\` PaymentMethod, this hash contains details about the Bacs Direct Debit bank account.
data PostPaymentMethodsRequestBodyBacsDebit' = PostPaymentMethodsRequestBodyBacsDebit'
  { -- | account_number
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PostPaymentMethodsRequestBodyBacsDebit' -> Maybe Text
postPaymentMethodsRequestBodyBacsDebit'AccountNumber :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | sort_code
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PostPaymentMethodsRequestBodyBacsDebit' -> Maybe Text
postPaymentMethodsRequestBodyBacsDebit'SortCode :: (GHC.Maybe.Maybe Data.Text.Internal.Text)
  }
  deriving
    ( Int -> PostPaymentMethodsRequestBodyBacsDebit' -> ShowS
[PostPaymentMethodsRequestBodyBacsDebit'] -> ShowS
PostPaymentMethodsRequestBodyBacsDebit' -> String
(Int -> PostPaymentMethodsRequestBodyBacsDebit' -> ShowS)
-> (PostPaymentMethodsRequestBodyBacsDebit' -> String)
-> ([PostPaymentMethodsRequestBodyBacsDebit'] -> ShowS)
-> Show PostPaymentMethodsRequestBodyBacsDebit'
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PostPaymentMethodsRequestBodyBacsDebit'] -> ShowS
$cshowList :: [PostPaymentMethodsRequestBodyBacsDebit'] -> ShowS
show :: PostPaymentMethodsRequestBodyBacsDebit' -> String
$cshow :: PostPaymentMethodsRequestBodyBacsDebit' -> String
showsPrec :: Int -> PostPaymentMethodsRequestBodyBacsDebit' -> ShowS
$cshowsPrec :: Int -> PostPaymentMethodsRequestBodyBacsDebit' -> ShowS
GHC.Show.Show,
      PostPaymentMethodsRequestBodyBacsDebit'
-> PostPaymentMethodsRequestBodyBacsDebit' -> Bool
(PostPaymentMethodsRequestBodyBacsDebit'
 -> PostPaymentMethodsRequestBodyBacsDebit' -> Bool)
-> (PostPaymentMethodsRequestBodyBacsDebit'
    -> PostPaymentMethodsRequestBodyBacsDebit' -> Bool)
-> Eq PostPaymentMethodsRequestBodyBacsDebit'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostPaymentMethodsRequestBodyBacsDebit'
-> PostPaymentMethodsRequestBodyBacsDebit' -> Bool
$c/= :: PostPaymentMethodsRequestBodyBacsDebit'
-> PostPaymentMethodsRequestBodyBacsDebit' -> Bool
== :: PostPaymentMethodsRequestBodyBacsDebit'
-> PostPaymentMethodsRequestBodyBacsDebit' -> Bool
$c== :: PostPaymentMethodsRequestBodyBacsDebit'
-> PostPaymentMethodsRequestBodyBacsDebit' -> Bool
GHC.Classes.Eq
    )

instance Data.Aeson.Types.ToJSON.ToJSON PostPaymentMethodsRequestBodyBacsDebit' where
  toJSON :: PostPaymentMethodsRequestBodyBacsDebit' -> Value
toJSON PostPaymentMethodsRequestBodyBacsDebit'
obj = [Pair] -> Value
Data.Aeson.Types.Internal.object (Text
"account_number" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentMethodsRequestBodyBacsDebit' -> Maybe Text
postPaymentMethodsRequestBodyBacsDebit'AccountNumber PostPaymentMethodsRequestBodyBacsDebit'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"sort_code" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentMethodsRequestBodyBacsDebit' -> Maybe Text
postPaymentMethodsRequestBodyBacsDebit'SortCode PostPaymentMethodsRequestBodyBacsDebit'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: PostPaymentMethodsRequestBodyBacsDebit' -> Encoding
toEncoding PostPaymentMethodsRequestBodyBacsDebit'
obj = Series -> Encoding
Data.Aeson.Encoding.Internal.pairs ((Text
"account_number" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentMethodsRequestBodyBacsDebit' -> Maybe Text
postPaymentMethodsRequestBodyBacsDebit'AccountNumber PostPaymentMethodsRequestBodyBacsDebit'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> (Text
"sort_code" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentMethodsRequestBodyBacsDebit' -> Maybe Text
postPaymentMethodsRequestBodyBacsDebit'SortCode PostPaymentMethodsRequestBodyBacsDebit'
obj))

instance Data.Aeson.Types.FromJSON.FromJSON PostPaymentMethodsRequestBodyBacsDebit' where
  parseJSON :: Value -> Parser PostPaymentMethodsRequestBodyBacsDebit'
parseJSON = String
-> (Object -> Parser PostPaymentMethodsRequestBodyBacsDebit')
-> Value
-> Parser PostPaymentMethodsRequestBodyBacsDebit'
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.Aeson.Types.FromJSON.withObject String
"PostPaymentMethodsRequestBodyBacsDebit'" (\Object
obj -> ((Maybe Text
 -> Maybe Text -> PostPaymentMethodsRequestBodyBacsDebit')
-> Parser
     (Maybe Text
      -> Maybe Text -> PostPaymentMethodsRequestBodyBacsDebit')
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure Maybe Text -> Maybe Text -> PostPaymentMethodsRequestBodyBacsDebit'
PostPaymentMethodsRequestBodyBacsDebit' Parser
  (Maybe Text
   -> Maybe Text -> PostPaymentMethodsRequestBodyBacsDebit')
-> Parser (Maybe Text)
-> Parser (Maybe Text -> PostPaymentMethodsRequestBodyBacsDebit')
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_number")) Parser (Maybe Text -> PostPaymentMethodsRequestBodyBacsDebit')
-> Parser (Maybe Text)
-> Parser PostPaymentMethodsRequestBodyBacsDebit'
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
"sort_code"))

-- | Create a new 'PostPaymentMethodsRequestBodyBacsDebit'' with all required fields.
mkPostPaymentMethodsRequestBodyBacsDebit' :: PostPaymentMethodsRequestBodyBacsDebit'
mkPostPaymentMethodsRequestBodyBacsDebit' :: PostPaymentMethodsRequestBodyBacsDebit'
mkPostPaymentMethodsRequestBodyBacsDebit' =
  PostPaymentMethodsRequestBodyBacsDebit' :: Maybe Text -> Maybe Text -> PostPaymentMethodsRequestBodyBacsDebit'
PostPaymentMethodsRequestBodyBacsDebit'
    { postPaymentMethodsRequestBodyBacsDebit'AccountNumber :: Maybe Text
postPaymentMethodsRequestBodyBacsDebit'AccountNumber = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      postPaymentMethodsRequestBodyBacsDebit'SortCode :: Maybe Text
postPaymentMethodsRequestBodyBacsDebit'SortCode = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing
    }

-- | Defines the object schema located at @paths.\/v1\/payment_methods.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.billing_details@ in the specification.
--
-- Billing information associated with the PaymentMethod that may be used or required by particular types of payment methods.
data PostPaymentMethodsRequestBodyBillingDetails' = PostPaymentMethodsRequestBodyBillingDetails'
  { -- | address
    PostPaymentMethodsRequestBodyBillingDetails'
-> Maybe
     PostPaymentMethodsRequestBodyBillingDetails'Address'Variants
postPaymentMethodsRequestBodyBillingDetails'Address :: (GHC.Maybe.Maybe PostPaymentMethodsRequestBodyBillingDetails'Address'Variants),
    -- | email
    PostPaymentMethodsRequestBodyBillingDetails' -> Maybe Text
postPaymentMethodsRequestBodyBillingDetails'Email :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | name
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PostPaymentMethodsRequestBodyBillingDetails' -> Maybe Text
postPaymentMethodsRequestBodyBillingDetails'Name :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | phone
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PostPaymentMethodsRequestBodyBillingDetails' -> Maybe Text
postPaymentMethodsRequestBodyBillingDetails'Phone :: (GHC.Maybe.Maybe Data.Text.Internal.Text)
  }
  deriving
    ( Int -> PostPaymentMethodsRequestBodyBillingDetails' -> ShowS
[PostPaymentMethodsRequestBodyBillingDetails'] -> ShowS
PostPaymentMethodsRequestBodyBillingDetails' -> String
(Int -> PostPaymentMethodsRequestBodyBillingDetails' -> ShowS)
-> (PostPaymentMethodsRequestBodyBillingDetails' -> String)
-> ([PostPaymentMethodsRequestBodyBillingDetails'] -> ShowS)
-> Show PostPaymentMethodsRequestBodyBillingDetails'
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PostPaymentMethodsRequestBodyBillingDetails'] -> ShowS
$cshowList :: [PostPaymentMethodsRequestBodyBillingDetails'] -> ShowS
show :: PostPaymentMethodsRequestBodyBillingDetails' -> String
$cshow :: PostPaymentMethodsRequestBodyBillingDetails' -> String
showsPrec :: Int -> PostPaymentMethodsRequestBodyBillingDetails' -> ShowS
$cshowsPrec :: Int -> PostPaymentMethodsRequestBodyBillingDetails' -> ShowS
GHC.Show.Show,
      PostPaymentMethodsRequestBodyBillingDetails'
-> PostPaymentMethodsRequestBodyBillingDetails' -> Bool
(PostPaymentMethodsRequestBodyBillingDetails'
 -> PostPaymentMethodsRequestBodyBillingDetails' -> Bool)
-> (PostPaymentMethodsRequestBodyBillingDetails'
    -> PostPaymentMethodsRequestBodyBillingDetails' -> Bool)
-> Eq PostPaymentMethodsRequestBodyBillingDetails'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostPaymentMethodsRequestBodyBillingDetails'
-> PostPaymentMethodsRequestBodyBillingDetails' -> Bool
$c/= :: PostPaymentMethodsRequestBodyBillingDetails'
-> PostPaymentMethodsRequestBodyBillingDetails' -> Bool
== :: PostPaymentMethodsRequestBodyBillingDetails'
-> PostPaymentMethodsRequestBodyBillingDetails' -> Bool
$c== :: PostPaymentMethodsRequestBodyBillingDetails'
-> PostPaymentMethodsRequestBodyBillingDetails' -> Bool
GHC.Classes.Eq
    )

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

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

-- | Defines the object schema located at @paths.\/v1\/payment_methods.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.billing_details.properties.address.anyOf@ in the specification.
data PostPaymentMethodsRequestBodyBillingDetails'Address'OneOf1 = PostPaymentMethodsRequestBodyBillingDetails'Address'OneOf1
  { -- | city
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PostPaymentMethodsRequestBodyBillingDetails'Address'OneOf1
-> Maybe Text
postPaymentMethodsRequestBodyBillingDetails'Address'OneOf1City :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | country
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PostPaymentMethodsRequestBodyBillingDetails'Address'OneOf1
-> Maybe Text
postPaymentMethodsRequestBodyBillingDetails'Address'OneOf1Country :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | line1
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PostPaymentMethodsRequestBodyBillingDetails'Address'OneOf1
-> Maybe Text
postPaymentMethodsRequestBodyBillingDetails'Address'OneOf1Line1 :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | line2
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PostPaymentMethodsRequestBodyBillingDetails'Address'OneOf1
-> Maybe Text
postPaymentMethodsRequestBodyBillingDetails'Address'OneOf1Line2 :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | postal_code
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PostPaymentMethodsRequestBodyBillingDetails'Address'OneOf1
-> Maybe Text
postPaymentMethodsRequestBodyBillingDetails'Address'OneOf1PostalCode :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | state
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PostPaymentMethodsRequestBodyBillingDetails'Address'OneOf1
-> Maybe Text
postPaymentMethodsRequestBodyBillingDetails'Address'OneOf1State :: (GHC.Maybe.Maybe Data.Text.Internal.Text)
  }
  deriving
    ( Int
-> PostPaymentMethodsRequestBodyBillingDetails'Address'OneOf1
-> ShowS
[PostPaymentMethodsRequestBodyBillingDetails'Address'OneOf1]
-> ShowS
PostPaymentMethodsRequestBodyBillingDetails'Address'OneOf1
-> String
(Int
 -> PostPaymentMethodsRequestBodyBillingDetails'Address'OneOf1
 -> ShowS)
-> (PostPaymentMethodsRequestBodyBillingDetails'Address'OneOf1
    -> String)
-> ([PostPaymentMethodsRequestBodyBillingDetails'Address'OneOf1]
    -> ShowS)
-> Show PostPaymentMethodsRequestBodyBillingDetails'Address'OneOf1
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PostPaymentMethodsRequestBodyBillingDetails'Address'OneOf1]
-> ShowS
$cshowList :: [PostPaymentMethodsRequestBodyBillingDetails'Address'OneOf1]
-> ShowS
show :: PostPaymentMethodsRequestBodyBillingDetails'Address'OneOf1
-> String
$cshow :: PostPaymentMethodsRequestBodyBillingDetails'Address'OneOf1
-> String
showsPrec :: Int
-> PostPaymentMethodsRequestBodyBillingDetails'Address'OneOf1
-> ShowS
$cshowsPrec :: Int
-> PostPaymentMethodsRequestBodyBillingDetails'Address'OneOf1
-> ShowS
GHC.Show.Show,
      PostPaymentMethodsRequestBodyBillingDetails'Address'OneOf1
-> PostPaymentMethodsRequestBodyBillingDetails'Address'OneOf1
-> Bool
(PostPaymentMethodsRequestBodyBillingDetails'Address'OneOf1
 -> PostPaymentMethodsRequestBodyBillingDetails'Address'OneOf1
 -> Bool)
-> (PostPaymentMethodsRequestBodyBillingDetails'Address'OneOf1
    -> PostPaymentMethodsRequestBodyBillingDetails'Address'OneOf1
    -> Bool)
-> Eq PostPaymentMethodsRequestBodyBillingDetails'Address'OneOf1
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostPaymentMethodsRequestBodyBillingDetails'Address'OneOf1
-> PostPaymentMethodsRequestBodyBillingDetails'Address'OneOf1
-> Bool
$c/= :: PostPaymentMethodsRequestBodyBillingDetails'Address'OneOf1
-> PostPaymentMethodsRequestBodyBillingDetails'Address'OneOf1
-> Bool
== :: PostPaymentMethodsRequestBodyBillingDetails'Address'OneOf1
-> PostPaymentMethodsRequestBodyBillingDetails'Address'OneOf1
-> Bool
$c== :: PostPaymentMethodsRequestBodyBillingDetails'Address'OneOf1
-> PostPaymentMethodsRequestBodyBillingDetails'Address'OneOf1
-> Bool
GHC.Classes.Eq
    )

instance Data.Aeson.Types.ToJSON.ToJSON PostPaymentMethodsRequestBodyBillingDetails'Address'OneOf1 where
  toJSON :: PostPaymentMethodsRequestBodyBillingDetails'Address'OneOf1 -> Value
toJSON PostPaymentMethodsRequestBodyBillingDetails'Address'OneOf1
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..= PostPaymentMethodsRequestBodyBillingDetails'Address'OneOf1
-> Maybe Text
postPaymentMethodsRequestBodyBillingDetails'Address'OneOf1City PostPaymentMethodsRequestBodyBillingDetails'Address'OneOf1
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..= PostPaymentMethodsRequestBodyBillingDetails'Address'OneOf1
-> Maybe Text
postPaymentMethodsRequestBodyBillingDetails'Address'OneOf1Country PostPaymentMethodsRequestBodyBillingDetails'Address'OneOf1
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..= PostPaymentMethodsRequestBodyBillingDetails'Address'OneOf1
-> Maybe Text
postPaymentMethodsRequestBodyBillingDetails'Address'OneOf1Line1 PostPaymentMethodsRequestBodyBillingDetails'Address'OneOf1
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..= PostPaymentMethodsRequestBodyBillingDetails'Address'OneOf1
-> Maybe Text
postPaymentMethodsRequestBodyBillingDetails'Address'OneOf1Line2 PostPaymentMethodsRequestBodyBillingDetails'Address'OneOf1
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..= PostPaymentMethodsRequestBodyBillingDetails'Address'OneOf1
-> Maybe Text
postPaymentMethodsRequestBodyBillingDetails'Address'OneOf1PostalCode PostPaymentMethodsRequestBodyBillingDetails'Address'OneOf1
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..= PostPaymentMethodsRequestBodyBillingDetails'Address'OneOf1
-> Maybe Text
postPaymentMethodsRequestBodyBillingDetails'Address'OneOf1State PostPaymentMethodsRequestBodyBillingDetails'Address'OneOf1
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: PostPaymentMethodsRequestBodyBillingDetails'Address'OneOf1
-> Encoding
toEncoding PostPaymentMethodsRequestBodyBillingDetails'Address'OneOf1
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..= PostPaymentMethodsRequestBodyBillingDetails'Address'OneOf1
-> Maybe Text
postPaymentMethodsRequestBodyBillingDetails'Address'OneOf1City PostPaymentMethodsRequestBodyBillingDetails'Address'OneOf1
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..= PostPaymentMethodsRequestBodyBillingDetails'Address'OneOf1
-> Maybe Text
postPaymentMethodsRequestBodyBillingDetails'Address'OneOf1Country PostPaymentMethodsRequestBodyBillingDetails'Address'OneOf1
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..= PostPaymentMethodsRequestBodyBillingDetails'Address'OneOf1
-> Maybe Text
postPaymentMethodsRequestBodyBillingDetails'Address'OneOf1Line1 PostPaymentMethodsRequestBodyBillingDetails'Address'OneOf1
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..= PostPaymentMethodsRequestBodyBillingDetails'Address'OneOf1
-> Maybe Text
postPaymentMethodsRequestBodyBillingDetails'Address'OneOf1Line2 PostPaymentMethodsRequestBodyBillingDetails'Address'OneOf1
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..= PostPaymentMethodsRequestBodyBillingDetails'Address'OneOf1
-> Maybe Text
postPaymentMethodsRequestBodyBillingDetails'Address'OneOf1PostalCode PostPaymentMethodsRequestBodyBillingDetails'Address'OneOf1
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..= PostPaymentMethodsRequestBodyBillingDetails'Address'OneOf1
-> Maybe Text
postPaymentMethodsRequestBodyBillingDetails'Address'OneOf1State PostPaymentMethodsRequestBodyBillingDetails'Address'OneOf1
obj))))))

instance Data.Aeson.Types.FromJSON.FromJSON PostPaymentMethodsRequestBodyBillingDetails'Address'OneOf1 where
  parseJSON :: Value
-> Parser
     PostPaymentMethodsRequestBodyBillingDetails'Address'OneOf1
parseJSON = String
-> (Object
    -> Parser
         PostPaymentMethodsRequestBodyBillingDetails'Address'OneOf1)
-> Value
-> Parser
     PostPaymentMethodsRequestBodyBillingDetails'Address'OneOf1
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.Aeson.Types.FromJSON.withObject String
"PostPaymentMethodsRequestBodyBillingDetails'Address'OneOf1" (\Object
obj -> ((((((Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> PostPaymentMethodsRequestBodyBillingDetails'Address'OneOf1)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> PostPaymentMethodsRequestBodyBillingDetails'Address'OneOf1)
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> PostPaymentMethodsRequestBodyBillingDetails'Address'OneOf1
PostPaymentMethodsRequestBodyBillingDetails'Address'OneOf1 Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> PostPaymentMethodsRequestBodyBillingDetails'Address'OneOf1)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> PostPaymentMethodsRequestBodyBillingDetails'Address'OneOf1)
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
   -> PostPaymentMethodsRequestBodyBillingDetails'Address'OneOf1)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> PostPaymentMethodsRequestBodyBillingDetails'Address'OneOf1)
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
   -> PostPaymentMethodsRequestBodyBillingDetails'Address'OneOf1)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> PostPaymentMethodsRequestBodyBillingDetails'Address'OneOf1)
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
   -> PostPaymentMethodsRequestBodyBillingDetails'Address'OneOf1)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> PostPaymentMethodsRequestBodyBillingDetails'Address'OneOf1)
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
   -> PostPaymentMethodsRequestBodyBillingDetails'Address'OneOf1)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> PostPaymentMethodsRequestBodyBillingDetails'Address'OneOf1)
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
   -> PostPaymentMethodsRequestBodyBillingDetails'Address'OneOf1)
-> Parser (Maybe Text)
-> Parser
     PostPaymentMethodsRequestBodyBillingDetails'Address'OneOf1
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 'PostPaymentMethodsRequestBodyBillingDetails'Address'OneOf1' with all required fields.
mkPostPaymentMethodsRequestBodyBillingDetails'Address'OneOf1 :: PostPaymentMethodsRequestBodyBillingDetails'Address'OneOf1
mkPostPaymentMethodsRequestBodyBillingDetails'Address'OneOf1 :: PostPaymentMethodsRequestBodyBillingDetails'Address'OneOf1
mkPostPaymentMethodsRequestBodyBillingDetails'Address'OneOf1 =
  PostPaymentMethodsRequestBodyBillingDetails'Address'OneOf1 :: Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> PostPaymentMethodsRequestBodyBillingDetails'Address'OneOf1
PostPaymentMethodsRequestBodyBillingDetails'Address'OneOf1
    { postPaymentMethodsRequestBodyBillingDetails'Address'OneOf1City :: Maybe Text
postPaymentMethodsRequestBodyBillingDetails'Address'OneOf1City = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      postPaymentMethodsRequestBodyBillingDetails'Address'OneOf1Country :: Maybe Text
postPaymentMethodsRequestBodyBillingDetails'Address'OneOf1Country = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      postPaymentMethodsRequestBodyBillingDetails'Address'OneOf1Line1 :: Maybe Text
postPaymentMethodsRequestBodyBillingDetails'Address'OneOf1Line1 = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      postPaymentMethodsRequestBodyBillingDetails'Address'OneOf1Line2 :: Maybe Text
postPaymentMethodsRequestBodyBillingDetails'Address'OneOf1Line2 = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      postPaymentMethodsRequestBodyBillingDetails'Address'OneOf1PostalCode :: Maybe Text
postPaymentMethodsRequestBodyBillingDetails'Address'OneOf1PostalCode = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      postPaymentMethodsRequestBodyBillingDetails'Address'OneOf1State :: Maybe Text
postPaymentMethodsRequestBodyBillingDetails'Address'OneOf1State = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing
    }

-- | Defines the oneOf schema located at @paths.\/v1\/payment_methods.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.billing_details.properties.address.anyOf@ in the specification.
data PostPaymentMethodsRequestBodyBillingDetails'Address'Variants
  = -- | Represents the JSON value @""@
    PostPaymentMethodsRequestBodyBillingDetails'Address'EmptyString
  | PostPaymentMethodsRequestBodyBillingDetails'Address'PostPaymentMethodsRequestBodyBillingDetails'Address'OneOf1 PostPaymentMethodsRequestBodyBillingDetails'Address'OneOf1
  deriving (Int
-> PostPaymentMethodsRequestBodyBillingDetails'Address'Variants
-> ShowS
[PostPaymentMethodsRequestBodyBillingDetails'Address'Variants]
-> ShowS
PostPaymentMethodsRequestBodyBillingDetails'Address'Variants
-> String
(Int
 -> PostPaymentMethodsRequestBodyBillingDetails'Address'Variants
 -> ShowS)
-> (PostPaymentMethodsRequestBodyBillingDetails'Address'Variants
    -> String)
-> ([PostPaymentMethodsRequestBodyBillingDetails'Address'Variants]
    -> ShowS)
-> Show
     PostPaymentMethodsRequestBodyBillingDetails'Address'Variants
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PostPaymentMethodsRequestBodyBillingDetails'Address'Variants]
-> ShowS
$cshowList :: [PostPaymentMethodsRequestBodyBillingDetails'Address'Variants]
-> ShowS
show :: PostPaymentMethodsRequestBodyBillingDetails'Address'Variants
-> String
$cshow :: PostPaymentMethodsRequestBodyBillingDetails'Address'Variants
-> String
showsPrec :: Int
-> PostPaymentMethodsRequestBodyBillingDetails'Address'Variants
-> ShowS
$cshowsPrec :: Int
-> PostPaymentMethodsRequestBodyBillingDetails'Address'Variants
-> ShowS
GHC.Show.Show, PostPaymentMethodsRequestBodyBillingDetails'Address'Variants
-> PostPaymentMethodsRequestBodyBillingDetails'Address'Variants
-> Bool
(PostPaymentMethodsRequestBodyBillingDetails'Address'Variants
 -> PostPaymentMethodsRequestBodyBillingDetails'Address'Variants
 -> Bool)
-> (PostPaymentMethodsRequestBodyBillingDetails'Address'Variants
    -> PostPaymentMethodsRequestBodyBillingDetails'Address'Variants
    -> Bool)
-> Eq PostPaymentMethodsRequestBodyBillingDetails'Address'Variants
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostPaymentMethodsRequestBodyBillingDetails'Address'Variants
-> PostPaymentMethodsRequestBodyBillingDetails'Address'Variants
-> Bool
$c/= :: PostPaymentMethodsRequestBodyBillingDetails'Address'Variants
-> PostPaymentMethodsRequestBodyBillingDetails'Address'Variants
-> Bool
== :: PostPaymentMethodsRequestBodyBillingDetails'Address'Variants
-> PostPaymentMethodsRequestBodyBillingDetails'Address'Variants
-> Bool
$c== :: PostPaymentMethodsRequestBodyBillingDetails'Address'Variants
-> PostPaymentMethodsRequestBodyBillingDetails'Address'Variants
-> Bool
GHC.Classes.Eq)

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

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

-- | Defines the object schema located at @paths.\/v1\/payment_methods.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.boleto@ in the specification.
--
-- If this is a \`boleto\` PaymentMethod, this hash contains details about the Boleto payment method.
data PostPaymentMethodsRequestBodyBoleto' = PostPaymentMethodsRequestBodyBoleto'
  { -- | tax_id
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PostPaymentMethodsRequestBodyBoleto' -> Text
postPaymentMethodsRequestBodyBoleto'TaxId :: Data.Text.Internal.Text
  }
  deriving
    ( Int -> PostPaymentMethodsRequestBodyBoleto' -> ShowS
[PostPaymentMethodsRequestBodyBoleto'] -> ShowS
PostPaymentMethodsRequestBodyBoleto' -> String
(Int -> PostPaymentMethodsRequestBodyBoleto' -> ShowS)
-> (PostPaymentMethodsRequestBodyBoleto' -> String)
-> ([PostPaymentMethodsRequestBodyBoleto'] -> ShowS)
-> Show PostPaymentMethodsRequestBodyBoleto'
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PostPaymentMethodsRequestBodyBoleto'] -> ShowS
$cshowList :: [PostPaymentMethodsRequestBodyBoleto'] -> ShowS
show :: PostPaymentMethodsRequestBodyBoleto' -> String
$cshow :: PostPaymentMethodsRequestBodyBoleto' -> String
showsPrec :: Int -> PostPaymentMethodsRequestBodyBoleto' -> ShowS
$cshowsPrec :: Int -> PostPaymentMethodsRequestBodyBoleto' -> ShowS
GHC.Show.Show,
      PostPaymentMethodsRequestBodyBoleto'
-> PostPaymentMethodsRequestBodyBoleto' -> Bool
(PostPaymentMethodsRequestBodyBoleto'
 -> PostPaymentMethodsRequestBodyBoleto' -> Bool)
-> (PostPaymentMethodsRequestBodyBoleto'
    -> PostPaymentMethodsRequestBodyBoleto' -> Bool)
-> Eq PostPaymentMethodsRequestBodyBoleto'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostPaymentMethodsRequestBodyBoleto'
-> PostPaymentMethodsRequestBodyBoleto' -> Bool
$c/= :: PostPaymentMethodsRequestBodyBoleto'
-> PostPaymentMethodsRequestBodyBoleto' -> Bool
== :: PostPaymentMethodsRequestBodyBoleto'
-> PostPaymentMethodsRequestBodyBoleto' -> Bool
$c== :: PostPaymentMethodsRequestBodyBoleto'
-> PostPaymentMethodsRequestBodyBoleto' -> Bool
GHC.Classes.Eq
    )

instance Data.Aeson.Types.ToJSON.ToJSON PostPaymentMethodsRequestBodyBoleto' where
  toJSON :: PostPaymentMethodsRequestBodyBoleto' -> Value
toJSON PostPaymentMethodsRequestBodyBoleto'
obj = [Pair] -> Value
Data.Aeson.Types.Internal.object (Text
"tax_id" Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentMethodsRequestBodyBoleto' -> Text
postPaymentMethodsRequestBodyBoleto'TaxId PostPaymentMethodsRequestBodyBoleto'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: PostPaymentMethodsRequestBodyBoleto' -> Encoding
toEncoding PostPaymentMethodsRequestBodyBoleto'
obj = Series -> Encoding
Data.Aeson.Encoding.Internal.pairs (Text
"tax_id" Text -> Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentMethodsRequestBodyBoleto' -> Text
postPaymentMethodsRequestBodyBoleto'TaxId PostPaymentMethodsRequestBodyBoleto'
obj)

instance Data.Aeson.Types.FromJSON.FromJSON PostPaymentMethodsRequestBodyBoleto' where
  parseJSON :: Value -> Parser PostPaymentMethodsRequestBodyBoleto'
parseJSON = String
-> (Object -> Parser PostPaymentMethodsRequestBodyBoleto')
-> Value
-> Parser PostPaymentMethodsRequestBodyBoleto'
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.Aeson.Types.FromJSON.withObject String
"PostPaymentMethodsRequestBodyBoleto'" (\Object
obj -> (Text -> PostPaymentMethodsRequestBodyBoleto')
-> Parser (Text -> PostPaymentMethodsRequestBodyBoleto')
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure Text -> PostPaymentMethodsRequestBodyBoleto'
PostPaymentMethodsRequestBodyBoleto' Parser (Text -> PostPaymentMethodsRequestBodyBoleto')
-> Parser Text -> Parser PostPaymentMethodsRequestBodyBoleto'
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
"tax_id"))

-- | Create a new 'PostPaymentMethodsRequestBodyBoleto'' with all required fields.
mkPostPaymentMethodsRequestBodyBoleto' ::
  -- | 'postPaymentMethodsRequestBodyBoleto'TaxId'
  Data.Text.Internal.Text ->
  PostPaymentMethodsRequestBodyBoleto'
mkPostPaymentMethodsRequestBodyBoleto' :: Text -> PostPaymentMethodsRequestBodyBoleto'
mkPostPaymentMethodsRequestBodyBoleto' Text
postPaymentMethodsRequestBodyBoleto'TaxId = PostPaymentMethodsRequestBodyBoleto' :: Text -> PostPaymentMethodsRequestBodyBoleto'
PostPaymentMethodsRequestBodyBoleto' {postPaymentMethodsRequestBodyBoleto'TaxId :: Text
postPaymentMethodsRequestBodyBoleto'TaxId = Text
postPaymentMethodsRequestBodyBoleto'TaxId}

-- | Defines the object schema located at @paths.\/v1\/payment_methods.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.card.anyOf@ in the specification.
--
-- If this is a \\\`card\\\` PaymentMethod, this hash contains the user\\\'s card details. For backwards compatibility, you can alternatively provide a Stripe token (e.g., for Apple Pay, Amex Express Checkout, or legacy Checkout) into the card hash with format \\\`card: {token: \\\"tok_visa\\\"}\\\`. When providing a card number, you must meet the requirements for [PCI compliance](https:\\\/\\\/stripe.com\\\/docs\\\/security\\\#validating-pci-compliance). We strongly recommend using Stripe.js instead of interacting with this API directly.
data PostPaymentMethodsRequestBodyCard' = PostPaymentMethodsRequestBodyCard'
  { -- | cvc
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PostPaymentMethodsRequestBodyCard' -> Maybe Text
postPaymentMethodsRequestBodyCard'Cvc :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | exp_month
    PostPaymentMethodsRequestBodyCard' -> Maybe Int
postPaymentMethodsRequestBodyCard'ExpMonth :: (GHC.Maybe.Maybe GHC.Types.Int),
    -- | exp_year
    PostPaymentMethodsRequestBodyCard' -> Maybe Int
postPaymentMethodsRequestBodyCard'ExpYear :: (GHC.Maybe.Maybe GHC.Types.Int),
    -- | number
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PostPaymentMethodsRequestBodyCard' -> Maybe Text
postPaymentMethodsRequestBodyCard'Number :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | token
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PostPaymentMethodsRequestBodyCard' -> Maybe Text
postPaymentMethodsRequestBodyCard'Token :: (GHC.Maybe.Maybe Data.Text.Internal.Text)
  }
  deriving
    ( Int -> PostPaymentMethodsRequestBodyCard' -> ShowS
[PostPaymentMethodsRequestBodyCard'] -> ShowS
PostPaymentMethodsRequestBodyCard' -> String
(Int -> PostPaymentMethodsRequestBodyCard' -> ShowS)
-> (PostPaymentMethodsRequestBodyCard' -> String)
-> ([PostPaymentMethodsRequestBodyCard'] -> ShowS)
-> Show PostPaymentMethodsRequestBodyCard'
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PostPaymentMethodsRequestBodyCard'] -> ShowS
$cshowList :: [PostPaymentMethodsRequestBodyCard'] -> ShowS
show :: PostPaymentMethodsRequestBodyCard' -> String
$cshow :: PostPaymentMethodsRequestBodyCard' -> String
showsPrec :: Int -> PostPaymentMethodsRequestBodyCard' -> ShowS
$cshowsPrec :: Int -> PostPaymentMethodsRequestBodyCard' -> ShowS
GHC.Show.Show,
      PostPaymentMethodsRequestBodyCard'
-> PostPaymentMethodsRequestBodyCard' -> Bool
(PostPaymentMethodsRequestBodyCard'
 -> PostPaymentMethodsRequestBodyCard' -> Bool)
-> (PostPaymentMethodsRequestBodyCard'
    -> PostPaymentMethodsRequestBodyCard' -> Bool)
-> Eq PostPaymentMethodsRequestBodyCard'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostPaymentMethodsRequestBodyCard'
-> PostPaymentMethodsRequestBodyCard' -> Bool
$c/= :: PostPaymentMethodsRequestBodyCard'
-> PostPaymentMethodsRequestBodyCard' -> Bool
== :: PostPaymentMethodsRequestBodyCard'
-> PostPaymentMethodsRequestBodyCard' -> Bool
$c== :: PostPaymentMethodsRequestBodyCard'
-> PostPaymentMethodsRequestBodyCard' -> Bool
GHC.Classes.Eq
    )

instance Data.Aeson.Types.ToJSON.ToJSON PostPaymentMethodsRequestBodyCard' where
  toJSON :: PostPaymentMethodsRequestBodyCard' -> Value
toJSON PostPaymentMethodsRequestBodyCard'
obj = [Pair] -> Value
Data.Aeson.Types.Internal.object (Text
"cvc" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentMethodsRequestBodyCard' -> Maybe Text
postPaymentMethodsRequestBodyCard'Cvc PostPaymentMethodsRequestBodyCard'
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..= PostPaymentMethodsRequestBodyCard' -> Maybe Int
postPaymentMethodsRequestBodyCard'ExpMonth PostPaymentMethodsRequestBodyCard'
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..= PostPaymentMethodsRequestBodyCard' -> Maybe Int
postPaymentMethodsRequestBodyCard'ExpYear PostPaymentMethodsRequestBodyCard'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"number" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentMethodsRequestBodyCard' -> Maybe Text
postPaymentMethodsRequestBodyCard'Number PostPaymentMethodsRequestBodyCard'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"token" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentMethodsRequestBodyCard' -> Maybe Text
postPaymentMethodsRequestBodyCard'Token PostPaymentMethodsRequestBodyCard'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: PostPaymentMethodsRequestBodyCard' -> Encoding
toEncoding PostPaymentMethodsRequestBodyCard'
obj = Series -> Encoding
Data.Aeson.Encoding.Internal.pairs ((Text
"cvc" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentMethodsRequestBodyCard' -> Maybe Text
postPaymentMethodsRequestBodyCard'Cvc PostPaymentMethodsRequestBodyCard'
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..= PostPaymentMethodsRequestBodyCard' -> Maybe Int
postPaymentMethodsRequestBodyCard'ExpMonth PostPaymentMethodsRequestBodyCard'
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..= PostPaymentMethodsRequestBodyCard' -> Maybe Int
postPaymentMethodsRequestBodyCard'ExpYear PostPaymentMethodsRequestBodyCard'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"number" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentMethodsRequestBodyCard' -> Maybe Text
postPaymentMethodsRequestBodyCard'Number PostPaymentMethodsRequestBodyCard'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> (Text
"token" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentMethodsRequestBodyCard' -> Maybe Text
postPaymentMethodsRequestBodyCard'Token PostPaymentMethodsRequestBodyCard'
obj)))))

instance Data.Aeson.Types.FromJSON.FromJSON PostPaymentMethodsRequestBodyCard' where
  parseJSON :: Value -> Parser PostPaymentMethodsRequestBodyCard'
parseJSON = String
-> (Object -> Parser PostPaymentMethodsRequestBodyCard')
-> Value
-> Parser PostPaymentMethodsRequestBodyCard'
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.Aeson.Types.FromJSON.withObject String
"PostPaymentMethodsRequestBodyCard'" (\Object
obj -> (((((Maybe Text
 -> Maybe Int
 -> Maybe Int
 -> Maybe Text
 -> Maybe Text
 -> PostPaymentMethodsRequestBodyCard')
-> Parser
     (Maybe Text
      -> Maybe Int
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> PostPaymentMethodsRequestBodyCard')
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure Maybe Text
-> Maybe Int
-> Maybe Int
-> Maybe Text
-> Maybe Text
-> PostPaymentMethodsRequestBodyCard'
PostPaymentMethodsRequestBodyCard' Parser
  (Maybe Text
   -> Maybe Int
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> PostPaymentMethodsRequestBodyCard')
-> Parser (Maybe Text)
-> Parser
     (Maybe Int
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> PostPaymentMethodsRequestBodyCard')
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")) Parser
  (Maybe Int
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> PostPaymentMethodsRequestBodyCard')
-> Parser (Maybe Int)
-> Parser
     (Maybe Int
      -> Maybe Text -> Maybe Text -> PostPaymentMethodsRequestBodyCard')
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 -> PostPaymentMethodsRequestBodyCard')
-> Parser (Maybe Int)
-> Parser
     (Maybe Text -> Maybe Text -> PostPaymentMethodsRequestBodyCard')
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 -> PostPaymentMethodsRequestBodyCard')
-> Parser (Maybe Text)
-> Parser (Maybe Text -> PostPaymentMethodsRequestBodyCard')
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
"number")) Parser (Maybe Text -> PostPaymentMethodsRequestBodyCard')
-> Parser (Maybe Text) -> Parser PostPaymentMethodsRequestBodyCard'
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
"token"))

-- | Create a new 'PostPaymentMethodsRequestBodyCard'' with all required fields.
mkPostPaymentMethodsRequestBodyCard' :: PostPaymentMethodsRequestBodyCard'
mkPostPaymentMethodsRequestBodyCard' :: PostPaymentMethodsRequestBodyCard'
mkPostPaymentMethodsRequestBodyCard' =
  PostPaymentMethodsRequestBodyCard' :: Maybe Text
-> Maybe Int
-> Maybe Int
-> Maybe Text
-> Maybe Text
-> PostPaymentMethodsRequestBodyCard'
PostPaymentMethodsRequestBodyCard'
    { postPaymentMethodsRequestBodyCard'Cvc :: Maybe Text
postPaymentMethodsRequestBodyCard'Cvc = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      postPaymentMethodsRequestBodyCard'ExpMonth :: Maybe Int
postPaymentMethodsRequestBodyCard'ExpMonth = Maybe Int
forall a. Maybe a
GHC.Maybe.Nothing,
      postPaymentMethodsRequestBodyCard'ExpYear :: Maybe Int
postPaymentMethodsRequestBodyCard'ExpYear = Maybe Int
forall a. Maybe a
GHC.Maybe.Nothing,
      postPaymentMethodsRequestBodyCard'Number :: Maybe Text
postPaymentMethodsRequestBodyCard'Number = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      postPaymentMethodsRequestBodyCard'Token :: Maybe Text
postPaymentMethodsRequestBodyCard'Token = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing
    }

-- | Defines the object schema located at @paths.\/v1\/payment_methods.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.eps@ in the specification.
--
-- If this is an \`eps\` PaymentMethod, this hash contains details about the EPS payment method.
data PostPaymentMethodsRequestBodyEps' = PostPaymentMethodsRequestBodyEps'
  { -- | bank
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PostPaymentMethodsRequestBodyEps'
-> Maybe PostPaymentMethodsRequestBodyEps'Bank'
postPaymentMethodsRequestBodyEps'Bank :: (GHC.Maybe.Maybe PostPaymentMethodsRequestBodyEps'Bank')
  }
  deriving
    ( Int -> PostPaymentMethodsRequestBodyEps' -> ShowS
[PostPaymentMethodsRequestBodyEps'] -> ShowS
PostPaymentMethodsRequestBodyEps' -> String
(Int -> PostPaymentMethodsRequestBodyEps' -> ShowS)
-> (PostPaymentMethodsRequestBodyEps' -> String)
-> ([PostPaymentMethodsRequestBodyEps'] -> ShowS)
-> Show PostPaymentMethodsRequestBodyEps'
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PostPaymentMethodsRequestBodyEps'] -> ShowS
$cshowList :: [PostPaymentMethodsRequestBodyEps'] -> ShowS
show :: PostPaymentMethodsRequestBodyEps' -> String
$cshow :: PostPaymentMethodsRequestBodyEps' -> String
showsPrec :: Int -> PostPaymentMethodsRequestBodyEps' -> ShowS
$cshowsPrec :: Int -> PostPaymentMethodsRequestBodyEps' -> ShowS
GHC.Show.Show,
      PostPaymentMethodsRequestBodyEps'
-> PostPaymentMethodsRequestBodyEps' -> Bool
(PostPaymentMethodsRequestBodyEps'
 -> PostPaymentMethodsRequestBodyEps' -> Bool)
-> (PostPaymentMethodsRequestBodyEps'
    -> PostPaymentMethodsRequestBodyEps' -> Bool)
-> Eq PostPaymentMethodsRequestBodyEps'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostPaymentMethodsRequestBodyEps'
-> PostPaymentMethodsRequestBodyEps' -> Bool
$c/= :: PostPaymentMethodsRequestBodyEps'
-> PostPaymentMethodsRequestBodyEps' -> Bool
== :: PostPaymentMethodsRequestBodyEps'
-> PostPaymentMethodsRequestBodyEps' -> Bool
$c== :: PostPaymentMethodsRequestBodyEps'
-> PostPaymentMethodsRequestBodyEps' -> Bool
GHC.Classes.Eq
    )

instance Data.Aeson.Types.ToJSON.ToJSON PostPaymentMethodsRequestBodyEps' where
  toJSON :: PostPaymentMethodsRequestBodyEps' -> Value
toJSON PostPaymentMethodsRequestBodyEps'
obj = [Pair] -> Value
Data.Aeson.Types.Internal.object (Text
"bank" Text -> Maybe PostPaymentMethodsRequestBodyEps'Bank' -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentMethodsRequestBodyEps'
-> Maybe PostPaymentMethodsRequestBodyEps'Bank'
postPaymentMethodsRequestBodyEps'Bank PostPaymentMethodsRequestBodyEps'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: PostPaymentMethodsRequestBodyEps' -> Encoding
toEncoding PostPaymentMethodsRequestBodyEps'
obj = Series -> Encoding
Data.Aeson.Encoding.Internal.pairs (Text
"bank" Text -> Maybe PostPaymentMethodsRequestBodyEps'Bank' -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentMethodsRequestBodyEps'
-> Maybe PostPaymentMethodsRequestBodyEps'Bank'
postPaymentMethodsRequestBodyEps'Bank PostPaymentMethodsRequestBodyEps'
obj)

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

-- | Create a new 'PostPaymentMethodsRequestBodyEps'' with all required fields.
mkPostPaymentMethodsRequestBodyEps' :: PostPaymentMethodsRequestBodyEps'
mkPostPaymentMethodsRequestBodyEps' :: PostPaymentMethodsRequestBodyEps'
mkPostPaymentMethodsRequestBodyEps' = PostPaymentMethodsRequestBodyEps' :: Maybe PostPaymentMethodsRequestBodyEps'Bank'
-> PostPaymentMethodsRequestBodyEps'
PostPaymentMethodsRequestBodyEps' {postPaymentMethodsRequestBodyEps'Bank :: Maybe PostPaymentMethodsRequestBodyEps'Bank'
postPaymentMethodsRequestBodyEps'Bank = Maybe PostPaymentMethodsRequestBodyEps'Bank'
forall a. Maybe a
GHC.Maybe.Nothing}

-- | Defines the enum schema located at @paths.\/v1\/payment_methods.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.eps.properties.bank@ in the specification.
data PostPaymentMethodsRequestBodyEps'Bank'
  = -- | This case is used if the value encountered during decoding does not match any of the provided cases in the specification.
    PostPaymentMethodsRequestBodyEps'Bank'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.
    PostPaymentMethodsRequestBodyEps'Bank'Typed Data.Text.Internal.Text
  | -- | Represents the JSON value @"arzte_und_apotheker_bank"@
    PostPaymentMethodsRequestBodyEps'Bank'EnumArzteUndApothekerBank
  | -- | Represents the JSON value @"austrian_anadi_bank_ag"@
    PostPaymentMethodsRequestBodyEps'Bank'EnumAustrianAnadiBankAg
  | -- | Represents the JSON value @"bank_austria"@
    PostPaymentMethodsRequestBodyEps'Bank'EnumBankAustria
  | -- | Represents the JSON value @"bankhaus_carl_spangler"@
    PostPaymentMethodsRequestBodyEps'Bank'EnumBankhausCarlSpangler
  | -- | Represents the JSON value @"bankhaus_schelhammer_und_schattera_ag"@
    PostPaymentMethodsRequestBodyEps'Bank'EnumBankhausSchelhammerUndSchatteraAg
  | -- | Represents the JSON value @"bawag_psk_ag"@
    PostPaymentMethodsRequestBodyEps'Bank'EnumBawagPskAg
  | -- | Represents the JSON value @"bks_bank_ag"@
    PostPaymentMethodsRequestBodyEps'Bank'EnumBksBankAg
  | -- | Represents the JSON value @"brull_kallmus_bank_ag"@
    PostPaymentMethodsRequestBodyEps'Bank'EnumBrullKallmusBankAg
  | -- | Represents the JSON value @"btv_vier_lander_bank"@
    PostPaymentMethodsRequestBodyEps'Bank'EnumBtvVierLanderBank
  | -- | Represents the JSON value @"capital_bank_grawe_gruppe_ag"@
    PostPaymentMethodsRequestBodyEps'Bank'EnumCapitalBankGraweGruppeAg
  | -- | Represents the JSON value @"dolomitenbank"@
    PostPaymentMethodsRequestBodyEps'Bank'EnumDolomitenbank
  | -- | Represents the JSON value @"easybank_ag"@
    PostPaymentMethodsRequestBodyEps'Bank'EnumEasybankAg
  | -- | Represents the JSON value @"erste_bank_und_sparkassen"@
    PostPaymentMethodsRequestBodyEps'Bank'EnumErsteBankUndSparkassen
  | -- | Represents the JSON value @"hypo_alpeadriabank_international_ag"@
    PostPaymentMethodsRequestBodyEps'Bank'EnumHypoAlpeadriabankInternationalAg
  | -- | Represents the JSON value @"hypo_bank_burgenland_aktiengesellschaft"@
    PostPaymentMethodsRequestBodyEps'Bank'EnumHypoBankBurgenlandAktiengesellschaft
  | -- | Represents the JSON value @"hypo_noe_lb_fur_niederosterreich_u_wien"@
    PostPaymentMethodsRequestBodyEps'Bank'EnumHypoNoeLbFurNiederosterreichUWien
  | -- | Represents the JSON value @"hypo_oberosterreich_salzburg_steiermark"@
    PostPaymentMethodsRequestBodyEps'Bank'EnumHypoOberosterreichSalzburgSteiermark
  | -- | Represents the JSON value @"hypo_tirol_bank_ag"@
    PostPaymentMethodsRequestBodyEps'Bank'EnumHypoTirolBankAg
  | -- | Represents the JSON value @"hypo_vorarlberg_bank_ag"@
    PostPaymentMethodsRequestBodyEps'Bank'EnumHypoVorarlbergBankAg
  | -- | Represents the JSON value @"marchfelder_bank"@
    PostPaymentMethodsRequestBodyEps'Bank'EnumMarchfelderBank
  | -- | Represents the JSON value @"oberbank_ag"@
    PostPaymentMethodsRequestBodyEps'Bank'EnumOberbankAg
  | -- | Represents the JSON value @"raiffeisen_bankengruppe_osterreich"@
    PostPaymentMethodsRequestBodyEps'Bank'EnumRaiffeisenBankengruppeOsterreich
  | -- | Represents the JSON value @"schoellerbank_ag"@
    PostPaymentMethodsRequestBodyEps'Bank'EnumSchoellerbankAg
  | -- | Represents the JSON value @"sparda_bank_wien"@
    PostPaymentMethodsRequestBodyEps'Bank'EnumSpardaBankWien
  | -- | Represents the JSON value @"volksbank_gruppe"@
    PostPaymentMethodsRequestBodyEps'Bank'EnumVolksbankGruppe
  | -- | Represents the JSON value @"volkskreditbank_ag"@
    PostPaymentMethodsRequestBodyEps'Bank'EnumVolkskreditbankAg
  | -- | Represents the JSON value @"vr_bank_braunau"@
    PostPaymentMethodsRequestBodyEps'Bank'EnumVrBankBraunau
  deriving (Int -> PostPaymentMethodsRequestBodyEps'Bank' -> ShowS
[PostPaymentMethodsRequestBodyEps'Bank'] -> ShowS
PostPaymentMethodsRequestBodyEps'Bank' -> String
(Int -> PostPaymentMethodsRequestBodyEps'Bank' -> ShowS)
-> (PostPaymentMethodsRequestBodyEps'Bank' -> String)
-> ([PostPaymentMethodsRequestBodyEps'Bank'] -> ShowS)
-> Show PostPaymentMethodsRequestBodyEps'Bank'
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PostPaymentMethodsRequestBodyEps'Bank'] -> ShowS
$cshowList :: [PostPaymentMethodsRequestBodyEps'Bank'] -> ShowS
show :: PostPaymentMethodsRequestBodyEps'Bank' -> String
$cshow :: PostPaymentMethodsRequestBodyEps'Bank' -> String
showsPrec :: Int -> PostPaymentMethodsRequestBodyEps'Bank' -> ShowS
$cshowsPrec :: Int -> PostPaymentMethodsRequestBodyEps'Bank' -> ShowS
GHC.Show.Show, PostPaymentMethodsRequestBodyEps'Bank'
-> PostPaymentMethodsRequestBodyEps'Bank' -> Bool
(PostPaymentMethodsRequestBodyEps'Bank'
 -> PostPaymentMethodsRequestBodyEps'Bank' -> Bool)
-> (PostPaymentMethodsRequestBodyEps'Bank'
    -> PostPaymentMethodsRequestBodyEps'Bank' -> Bool)
-> Eq PostPaymentMethodsRequestBodyEps'Bank'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostPaymentMethodsRequestBodyEps'Bank'
-> PostPaymentMethodsRequestBodyEps'Bank' -> Bool
$c/= :: PostPaymentMethodsRequestBodyEps'Bank'
-> PostPaymentMethodsRequestBodyEps'Bank' -> Bool
== :: PostPaymentMethodsRequestBodyEps'Bank'
-> PostPaymentMethodsRequestBodyEps'Bank' -> Bool
$c== :: PostPaymentMethodsRequestBodyEps'Bank'
-> PostPaymentMethodsRequestBodyEps'Bank' -> Bool
GHC.Classes.Eq)

instance Data.Aeson.Types.ToJSON.ToJSON PostPaymentMethodsRequestBodyEps'Bank' where
  toJSON :: PostPaymentMethodsRequestBodyEps'Bank' -> Value
toJSON (PostPaymentMethodsRequestBodyEps'Bank'Other Value
val) = Value
val
  toJSON (PostPaymentMethodsRequestBodyEps'Bank'Typed Text
val) = Text -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON Text
val
  toJSON (PostPaymentMethodsRequestBodyEps'Bank'
PostPaymentMethodsRequestBodyEps'Bank'EnumArzteUndApothekerBank) = Value
"arzte_und_apotheker_bank"
  toJSON (PostPaymentMethodsRequestBodyEps'Bank'
PostPaymentMethodsRequestBodyEps'Bank'EnumAustrianAnadiBankAg) = Value
"austrian_anadi_bank_ag"
  toJSON (PostPaymentMethodsRequestBodyEps'Bank'
PostPaymentMethodsRequestBodyEps'Bank'EnumBankAustria) = Value
"bank_austria"
  toJSON (PostPaymentMethodsRequestBodyEps'Bank'
PostPaymentMethodsRequestBodyEps'Bank'EnumBankhausCarlSpangler) = Value
"bankhaus_carl_spangler"
  toJSON (PostPaymentMethodsRequestBodyEps'Bank'
PostPaymentMethodsRequestBodyEps'Bank'EnumBankhausSchelhammerUndSchatteraAg) = Value
"bankhaus_schelhammer_und_schattera_ag"
  toJSON (PostPaymentMethodsRequestBodyEps'Bank'
PostPaymentMethodsRequestBodyEps'Bank'EnumBawagPskAg) = Value
"bawag_psk_ag"
  toJSON (PostPaymentMethodsRequestBodyEps'Bank'
PostPaymentMethodsRequestBodyEps'Bank'EnumBksBankAg) = Value
"bks_bank_ag"
  toJSON (PostPaymentMethodsRequestBodyEps'Bank'
PostPaymentMethodsRequestBodyEps'Bank'EnumBrullKallmusBankAg) = Value
"brull_kallmus_bank_ag"
  toJSON (PostPaymentMethodsRequestBodyEps'Bank'
PostPaymentMethodsRequestBodyEps'Bank'EnumBtvVierLanderBank) = Value
"btv_vier_lander_bank"
  toJSON (PostPaymentMethodsRequestBodyEps'Bank'
PostPaymentMethodsRequestBodyEps'Bank'EnumCapitalBankGraweGruppeAg) = Value
"capital_bank_grawe_gruppe_ag"
  toJSON (PostPaymentMethodsRequestBodyEps'Bank'
PostPaymentMethodsRequestBodyEps'Bank'EnumDolomitenbank) = Value
"dolomitenbank"
  toJSON (PostPaymentMethodsRequestBodyEps'Bank'
PostPaymentMethodsRequestBodyEps'Bank'EnumEasybankAg) = Value
"easybank_ag"
  toJSON (PostPaymentMethodsRequestBodyEps'Bank'
PostPaymentMethodsRequestBodyEps'Bank'EnumErsteBankUndSparkassen) = Value
"erste_bank_und_sparkassen"
  toJSON (PostPaymentMethodsRequestBodyEps'Bank'
PostPaymentMethodsRequestBodyEps'Bank'EnumHypoAlpeadriabankInternationalAg) = Value
"hypo_alpeadriabank_international_ag"
  toJSON (PostPaymentMethodsRequestBodyEps'Bank'
PostPaymentMethodsRequestBodyEps'Bank'EnumHypoBankBurgenlandAktiengesellschaft) = Value
"hypo_bank_burgenland_aktiengesellschaft"
  toJSON (PostPaymentMethodsRequestBodyEps'Bank'
PostPaymentMethodsRequestBodyEps'Bank'EnumHypoNoeLbFurNiederosterreichUWien) = Value
"hypo_noe_lb_fur_niederosterreich_u_wien"
  toJSON (PostPaymentMethodsRequestBodyEps'Bank'
PostPaymentMethodsRequestBodyEps'Bank'EnumHypoOberosterreichSalzburgSteiermark) = Value
"hypo_oberosterreich_salzburg_steiermark"
  toJSON (PostPaymentMethodsRequestBodyEps'Bank'
PostPaymentMethodsRequestBodyEps'Bank'EnumHypoTirolBankAg) = Value
"hypo_tirol_bank_ag"
  toJSON (PostPaymentMethodsRequestBodyEps'Bank'
PostPaymentMethodsRequestBodyEps'Bank'EnumHypoVorarlbergBankAg) = Value
"hypo_vorarlberg_bank_ag"
  toJSON (PostPaymentMethodsRequestBodyEps'Bank'
PostPaymentMethodsRequestBodyEps'Bank'EnumMarchfelderBank) = Value
"marchfelder_bank"
  toJSON (PostPaymentMethodsRequestBodyEps'Bank'
PostPaymentMethodsRequestBodyEps'Bank'EnumOberbankAg) = Value
"oberbank_ag"
  toJSON (PostPaymentMethodsRequestBodyEps'Bank'
PostPaymentMethodsRequestBodyEps'Bank'EnumRaiffeisenBankengruppeOsterreich) = Value
"raiffeisen_bankengruppe_osterreich"
  toJSON (PostPaymentMethodsRequestBodyEps'Bank'
PostPaymentMethodsRequestBodyEps'Bank'EnumSchoellerbankAg) = Value
"schoellerbank_ag"
  toJSON (PostPaymentMethodsRequestBodyEps'Bank'
PostPaymentMethodsRequestBodyEps'Bank'EnumSpardaBankWien) = Value
"sparda_bank_wien"
  toJSON (PostPaymentMethodsRequestBodyEps'Bank'
PostPaymentMethodsRequestBodyEps'Bank'EnumVolksbankGruppe) = Value
"volksbank_gruppe"
  toJSON (PostPaymentMethodsRequestBodyEps'Bank'
PostPaymentMethodsRequestBodyEps'Bank'EnumVolkskreditbankAg) = Value
"volkskreditbank_ag"
  toJSON (PostPaymentMethodsRequestBodyEps'Bank'
PostPaymentMethodsRequestBodyEps'Bank'EnumVrBankBraunau) = Value
"vr_bank_braunau"

instance Data.Aeson.Types.FromJSON.FromJSON PostPaymentMethodsRequestBodyEps'Bank' where
  parseJSON :: Value -> Parser PostPaymentMethodsRequestBodyEps'Bank'
parseJSON Value
val =
    PostPaymentMethodsRequestBodyEps'Bank'
-> Parser PostPaymentMethodsRequestBodyEps'Bank'
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
"arzte_und_apotheker_bank" -> PostPaymentMethodsRequestBodyEps'Bank'
PostPaymentMethodsRequestBodyEps'Bank'EnumArzteUndApothekerBank
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"austrian_anadi_bank_ag" -> PostPaymentMethodsRequestBodyEps'Bank'
PostPaymentMethodsRequestBodyEps'Bank'EnumAustrianAnadiBankAg
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"bank_austria" -> PostPaymentMethodsRequestBodyEps'Bank'
PostPaymentMethodsRequestBodyEps'Bank'EnumBankAustria
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"bankhaus_carl_spangler" -> PostPaymentMethodsRequestBodyEps'Bank'
PostPaymentMethodsRequestBodyEps'Bank'EnumBankhausCarlSpangler
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"bankhaus_schelhammer_und_schattera_ag" -> PostPaymentMethodsRequestBodyEps'Bank'
PostPaymentMethodsRequestBodyEps'Bank'EnumBankhausSchelhammerUndSchatteraAg
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"bawag_psk_ag" -> PostPaymentMethodsRequestBodyEps'Bank'
PostPaymentMethodsRequestBodyEps'Bank'EnumBawagPskAg
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"bks_bank_ag" -> PostPaymentMethodsRequestBodyEps'Bank'
PostPaymentMethodsRequestBodyEps'Bank'EnumBksBankAg
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"brull_kallmus_bank_ag" -> PostPaymentMethodsRequestBodyEps'Bank'
PostPaymentMethodsRequestBodyEps'Bank'EnumBrullKallmusBankAg
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"btv_vier_lander_bank" -> PostPaymentMethodsRequestBodyEps'Bank'
PostPaymentMethodsRequestBodyEps'Bank'EnumBtvVierLanderBank
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"capital_bank_grawe_gruppe_ag" -> PostPaymentMethodsRequestBodyEps'Bank'
PostPaymentMethodsRequestBodyEps'Bank'EnumCapitalBankGraweGruppeAg
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"dolomitenbank" -> PostPaymentMethodsRequestBodyEps'Bank'
PostPaymentMethodsRequestBodyEps'Bank'EnumDolomitenbank
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"easybank_ag" -> PostPaymentMethodsRequestBodyEps'Bank'
PostPaymentMethodsRequestBodyEps'Bank'EnumEasybankAg
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"erste_bank_und_sparkassen" -> PostPaymentMethodsRequestBodyEps'Bank'
PostPaymentMethodsRequestBodyEps'Bank'EnumErsteBankUndSparkassen
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"hypo_alpeadriabank_international_ag" -> PostPaymentMethodsRequestBodyEps'Bank'
PostPaymentMethodsRequestBodyEps'Bank'EnumHypoAlpeadriabankInternationalAg
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"hypo_bank_burgenland_aktiengesellschaft" -> PostPaymentMethodsRequestBodyEps'Bank'
PostPaymentMethodsRequestBodyEps'Bank'EnumHypoBankBurgenlandAktiengesellschaft
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"hypo_noe_lb_fur_niederosterreich_u_wien" -> PostPaymentMethodsRequestBodyEps'Bank'
PostPaymentMethodsRequestBodyEps'Bank'EnumHypoNoeLbFurNiederosterreichUWien
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"hypo_oberosterreich_salzburg_steiermark" -> PostPaymentMethodsRequestBodyEps'Bank'
PostPaymentMethodsRequestBodyEps'Bank'EnumHypoOberosterreichSalzburgSteiermark
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"hypo_tirol_bank_ag" -> PostPaymentMethodsRequestBodyEps'Bank'
PostPaymentMethodsRequestBodyEps'Bank'EnumHypoTirolBankAg
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"hypo_vorarlberg_bank_ag" -> PostPaymentMethodsRequestBodyEps'Bank'
PostPaymentMethodsRequestBodyEps'Bank'EnumHypoVorarlbergBankAg
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"marchfelder_bank" -> PostPaymentMethodsRequestBodyEps'Bank'
PostPaymentMethodsRequestBodyEps'Bank'EnumMarchfelderBank
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"oberbank_ag" -> PostPaymentMethodsRequestBodyEps'Bank'
PostPaymentMethodsRequestBodyEps'Bank'EnumOberbankAg
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"raiffeisen_bankengruppe_osterreich" -> PostPaymentMethodsRequestBodyEps'Bank'
PostPaymentMethodsRequestBodyEps'Bank'EnumRaiffeisenBankengruppeOsterreich
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"schoellerbank_ag" -> PostPaymentMethodsRequestBodyEps'Bank'
PostPaymentMethodsRequestBodyEps'Bank'EnumSchoellerbankAg
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"sparda_bank_wien" -> PostPaymentMethodsRequestBodyEps'Bank'
PostPaymentMethodsRequestBodyEps'Bank'EnumSpardaBankWien
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"volksbank_gruppe" -> PostPaymentMethodsRequestBodyEps'Bank'
PostPaymentMethodsRequestBodyEps'Bank'EnumVolksbankGruppe
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"volkskreditbank_ag" -> PostPaymentMethodsRequestBodyEps'Bank'
PostPaymentMethodsRequestBodyEps'Bank'EnumVolkskreditbankAg
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"vr_bank_braunau" -> PostPaymentMethodsRequestBodyEps'Bank'
PostPaymentMethodsRequestBodyEps'Bank'EnumVrBankBraunau
            | Bool
GHC.Base.otherwise -> Value -> PostPaymentMethodsRequestBodyEps'Bank'
PostPaymentMethodsRequestBodyEps'Bank'Other Value
val
      )

-- | Defines the object schema located at @paths.\/v1\/payment_methods.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.fpx@ in the specification.
--
-- If this is an \`fpx\` PaymentMethod, this hash contains details about the FPX payment method.
data PostPaymentMethodsRequestBodyFpx' = PostPaymentMethodsRequestBodyFpx'
  { -- | bank
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PostPaymentMethodsRequestBodyFpx'
-> PostPaymentMethodsRequestBodyFpx'Bank'
postPaymentMethodsRequestBodyFpx'Bank :: PostPaymentMethodsRequestBodyFpx'Bank'
  }
  deriving
    ( Int -> PostPaymentMethodsRequestBodyFpx' -> ShowS
[PostPaymentMethodsRequestBodyFpx'] -> ShowS
PostPaymentMethodsRequestBodyFpx' -> String
(Int -> PostPaymentMethodsRequestBodyFpx' -> ShowS)
-> (PostPaymentMethodsRequestBodyFpx' -> String)
-> ([PostPaymentMethodsRequestBodyFpx'] -> ShowS)
-> Show PostPaymentMethodsRequestBodyFpx'
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PostPaymentMethodsRequestBodyFpx'] -> ShowS
$cshowList :: [PostPaymentMethodsRequestBodyFpx'] -> ShowS
show :: PostPaymentMethodsRequestBodyFpx' -> String
$cshow :: PostPaymentMethodsRequestBodyFpx' -> String
showsPrec :: Int -> PostPaymentMethodsRequestBodyFpx' -> ShowS
$cshowsPrec :: Int -> PostPaymentMethodsRequestBodyFpx' -> ShowS
GHC.Show.Show,
      PostPaymentMethodsRequestBodyFpx'
-> PostPaymentMethodsRequestBodyFpx' -> Bool
(PostPaymentMethodsRequestBodyFpx'
 -> PostPaymentMethodsRequestBodyFpx' -> Bool)
-> (PostPaymentMethodsRequestBodyFpx'
    -> PostPaymentMethodsRequestBodyFpx' -> Bool)
-> Eq PostPaymentMethodsRequestBodyFpx'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostPaymentMethodsRequestBodyFpx'
-> PostPaymentMethodsRequestBodyFpx' -> Bool
$c/= :: PostPaymentMethodsRequestBodyFpx'
-> PostPaymentMethodsRequestBodyFpx' -> Bool
== :: PostPaymentMethodsRequestBodyFpx'
-> PostPaymentMethodsRequestBodyFpx' -> Bool
$c== :: PostPaymentMethodsRequestBodyFpx'
-> PostPaymentMethodsRequestBodyFpx' -> Bool
GHC.Classes.Eq
    )

instance Data.Aeson.Types.ToJSON.ToJSON PostPaymentMethodsRequestBodyFpx' where
  toJSON :: PostPaymentMethodsRequestBodyFpx' -> Value
toJSON PostPaymentMethodsRequestBodyFpx'
obj = [Pair] -> Value
Data.Aeson.Types.Internal.object (Text
"bank" Text -> PostPaymentMethodsRequestBodyFpx'Bank' -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentMethodsRequestBodyFpx'
-> PostPaymentMethodsRequestBodyFpx'Bank'
postPaymentMethodsRequestBodyFpx'Bank PostPaymentMethodsRequestBodyFpx'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: PostPaymentMethodsRequestBodyFpx' -> Encoding
toEncoding PostPaymentMethodsRequestBodyFpx'
obj = Series -> Encoding
Data.Aeson.Encoding.Internal.pairs (Text
"bank" Text -> PostPaymentMethodsRequestBodyFpx'Bank' -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentMethodsRequestBodyFpx'
-> PostPaymentMethodsRequestBodyFpx'Bank'
postPaymentMethodsRequestBodyFpx'Bank PostPaymentMethodsRequestBodyFpx'
obj)

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

-- | Create a new 'PostPaymentMethodsRequestBodyFpx'' with all required fields.
mkPostPaymentMethodsRequestBodyFpx' ::
  -- | 'postPaymentMethodsRequestBodyFpx'Bank'
  PostPaymentMethodsRequestBodyFpx'Bank' ->
  PostPaymentMethodsRequestBodyFpx'
mkPostPaymentMethodsRequestBodyFpx' :: PostPaymentMethodsRequestBodyFpx'Bank'
-> PostPaymentMethodsRequestBodyFpx'
mkPostPaymentMethodsRequestBodyFpx' PostPaymentMethodsRequestBodyFpx'Bank'
postPaymentMethodsRequestBodyFpx'Bank = PostPaymentMethodsRequestBodyFpx' :: PostPaymentMethodsRequestBodyFpx'Bank'
-> PostPaymentMethodsRequestBodyFpx'
PostPaymentMethodsRequestBodyFpx' {postPaymentMethodsRequestBodyFpx'Bank :: PostPaymentMethodsRequestBodyFpx'Bank'
postPaymentMethodsRequestBodyFpx'Bank = PostPaymentMethodsRequestBodyFpx'Bank'
postPaymentMethodsRequestBodyFpx'Bank}

-- | Defines the enum schema located at @paths.\/v1\/payment_methods.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.fpx.properties.bank@ in the specification.
data PostPaymentMethodsRequestBodyFpx'Bank'
  = -- | This case is used if the value encountered during decoding does not match any of the provided cases in the specification.
    PostPaymentMethodsRequestBodyFpx'Bank'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.
    PostPaymentMethodsRequestBodyFpx'Bank'Typed Data.Text.Internal.Text
  | -- | Represents the JSON value @"affin_bank"@
    PostPaymentMethodsRequestBodyFpx'Bank'EnumAffinBank
  | -- | Represents the JSON value @"alliance_bank"@
    PostPaymentMethodsRequestBodyFpx'Bank'EnumAllianceBank
  | -- | Represents the JSON value @"ambank"@
    PostPaymentMethodsRequestBodyFpx'Bank'EnumAmbank
  | -- | Represents the JSON value @"bank_islam"@
    PostPaymentMethodsRequestBodyFpx'Bank'EnumBankIslam
  | -- | Represents the JSON value @"bank_muamalat"@
    PostPaymentMethodsRequestBodyFpx'Bank'EnumBankMuamalat
  | -- | Represents the JSON value @"bank_rakyat"@
    PostPaymentMethodsRequestBodyFpx'Bank'EnumBankRakyat
  | -- | Represents the JSON value @"bsn"@
    PostPaymentMethodsRequestBodyFpx'Bank'EnumBsn
  | -- | Represents the JSON value @"cimb"@
    PostPaymentMethodsRequestBodyFpx'Bank'EnumCimb
  | -- | Represents the JSON value @"deutsche_bank"@
    PostPaymentMethodsRequestBodyFpx'Bank'EnumDeutscheBank
  | -- | Represents the JSON value @"hong_leong_bank"@
    PostPaymentMethodsRequestBodyFpx'Bank'EnumHongLeongBank
  | -- | Represents the JSON value @"hsbc"@
    PostPaymentMethodsRequestBodyFpx'Bank'EnumHsbc
  | -- | Represents the JSON value @"kfh"@
    PostPaymentMethodsRequestBodyFpx'Bank'EnumKfh
  | -- | Represents the JSON value @"maybank2e"@
    PostPaymentMethodsRequestBodyFpx'Bank'EnumMaybank2e
  | -- | Represents the JSON value @"maybank2u"@
    PostPaymentMethodsRequestBodyFpx'Bank'EnumMaybank2u
  | -- | Represents the JSON value @"ocbc"@
    PostPaymentMethodsRequestBodyFpx'Bank'EnumOcbc
  | -- | Represents the JSON value @"pb_enterprise"@
    PostPaymentMethodsRequestBodyFpx'Bank'EnumPbEnterprise
  | -- | Represents the JSON value @"public_bank"@
    PostPaymentMethodsRequestBodyFpx'Bank'EnumPublicBank
  | -- | Represents the JSON value @"rhb"@
    PostPaymentMethodsRequestBodyFpx'Bank'EnumRhb
  | -- | Represents the JSON value @"standard_chartered"@
    PostPaymentMethodsRequestBodyFpx'Bank'EnumStandardChartered
  | -- | Represents the JSON value @"uob"@
    PostPaymentMethodsRequestBodyFpx'Bank'EnumUob
  deriving (Int -> PostPaymentMethodsRequestBodyFpx'Bank' -> ShowS
[PostPaymentMethodsRequestBodyFpx'Bank'] -> ShowS
PostPaymentMethodsRequestBodyFpx'Bank' -> String
(Int -> PostPaymentMethodsRequestBodyFpx'Bank' -> ShowS)
-> (PostPaymentMethodsRequestBodyFpx'Bank' -> String)
-> ([PostPaymentMethodsRequestBodyFpx'Bank'] -> ShowS)
-> Show PostPaymentMethodsRequestBodyFpx'Bank'
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PostPaymentMethodsRequestBodyFpx'Bank'] -> ShowS
$cshowList :: [PostPaymentMethodsRequestBodyFpx'Bank'] -> ShowS
show :: PostPaymentMethodsRequestBodyFpx'Bank' -> String
$cshow :: PostPaymentMethodsRequestBodyFpx'Bank' -> String
showsPrec :: Int -> PostPaymentMethodsRequestBodyFpx'Bank' -> ShowS
$cshowsPrec :: Int -> PostPaymentMethodsRequestBodyFpx'Bank' -> ShowS
GHC.Show.Show, PostPaymentMethodsRequestBodyFpx'Bank'
-> PostPaymentMethodsRequestBodyFpx'Bank' -> Bool
(PostPaymentMethodsRequestBodyFpx'Bank'
 -> PostPaymentMethodsRequestBodyFpx'Bank' -> Bool)
-> (PostPaymentMethodsRequestBodyFpx'Bank'
    -> PostPaymentMethodsRequestBodyFpx'Bank' -> Bool)
-> Eq PostPaymentMethodsRequestBodyFpx'Bank'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostPaymentMethodsRequestBodyFpx'Bank'
-> PostPaymentMethodsRequestBodyFpx'Bank' -> Bool
$c/= :: PostPaymentMethodsRequestBodyFpx'Bank'
-> PostPaymentMethodsRequestBodyFpx'Bank' -> Bool
== :: PostPaymentMethodsRequestBodyFpx'Bank'
-> PostPaymentMethodsRequestBodyFpx'Bank' -> Bool
$c== :: PostPaymentMethodsRequestBodyFpx'Bank'
-> PostPaymentMethodsRequestBodyFpx'Bank' -> Bool
GHC.Classes.Eq)

instance Data.Aeson.Types.ToJSON.ToJSON PostPaymentMethodsRequestBodyFpx'Bank' where
  toJSON :: PostPaymentMethodsRequestBodyFpx'Bank' -> Value
toJSON (PostPaymentMethodsRequestBodyFpx'Bank'Other Value
val) = Value
val
  toJSON (PostPaymentMethodsRequestBodyFpx'Bank'Typed Text
val) = Text -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON Text
val
  toJSON (PostPaymentMethodsRequestBodyFpx'Bank'
PostPaymentMethodsRequestBodyFpx'Bank'EnumAffinBank) = Value
"affin_bank"
  toJSON (PostPaymentMethodsRequestBodyFpx'Bank'
PostPaymentMethodsRequestBodyFpx'Bank'EnumAllianceBank) = Value
"alliance_bank"
  toJSON (PostPaymentMethodsRequestBodyFpx'Bank'
PostPaymentMethodsRequestBodyFpx'Bank'EnumAmbank) = Value
"ambank"
  toJSON (PostPaymentMethodsRequestBodyFpx'Bank'
PostPaymentMethodsRequestBodyFpx'Bank'EnumBankIslam) = Value
"bank_islam"
  toJSON (PostPaymentMethodsRequestBodyFpx'Bank'
PostPaymentMethodsRequestBodyFpx'Bank'EnumBankMuamalat) = Value
"bank_muamalat"
  toJSON (PostPaymentMethodsRequestBodyFpx'Bank'
PostPaymentMethodsRequestBodyFpx'Bank'EnumBankRakyat) = Value
"bank_rakyat"
  toJSON (PostPaymentMethodsRequestBodyFpx'Bank'
PostPaymentMethodsRequestBodyFpx'Bank'EnumBsn) = Value
"bsn"
  toJSON (PostPaymentMethodsRequestBodyFpx'Bank'
PostPaymentMethodsRequestBodyFpx'Bank'EnumCimb) = Value
"cimb"
  toJSON (PostPaymentMethodsRequestBodyFpx'Bank'
PostPaymentMethodsRequestBodyFpx'Bank'EnumDeutscheBank) = Value
"deutsche_bank"
  toJSON (PostPaymentMethodsRequestBodyFpx'Bank'
PostPaymentMethodsRequestBodyFpx'Bank'EnumHongLeongBank) = Value
"hong_leong_bank"
  toJSON (PostPaymentMethodsRequestBodyFpx'Bank'
PostPaymentMethodsRequestBodyFpx'Bank'EnumHsbc) = Value
"hsbc"
  toJSON (PostPaymentMethodsRequestBodyFpx'Bank'
PostPaymentMethodsRequestBodyFpx'Bank'EnumKfh) = Value
"kfh"
  toJSON (PostPaymentMethodsRequestBodyFpx'Bank'
PostPaymentMethodsRequestBodyFpx'Bank'EnumMaybank2e) = Value
"maybank2e"
  toJSON (PostPaymentMethodsRequestBodyFpx'Bank'
PostPaymentMethodsRequestBodyFpx'Bank'EnumMaybank2u) = Value
"maybank2u"
  toJSON (PostPaymentMethodsRequestBodyFpx'Bank'
PostPaymentMethodsRequestBodyFpx'Bank'EnumOcbc) = Value
"ocbc"
  toJSON (PostPaymentMethodsRequestBodyFpx'Bank'
PostPaymentMethodsRequestBodyFpx'Bank'EnumPbEnterprise) = Value
"pb_enterprise"
  toJSON (PostPaymentMethodsRequestBodyFpx'Bank'
PostPaymentMethodsRequestBodyFpx'Bank'EnumPublicBank) = Value
"public_bank"
  toJSON (PostPaymentMethodsRequestBodyFpx'Bank'
PostPaymentMethodsRequestBodyFpx'Bank'EnumRhb) = Value
"rhb"
  toJSON (PostPaymentMethodsRequestBodyFpx'Bank'
PostPaymentMethodsRequestBodyFpx'Bank'EnumStandardChartered) = Value
"standard_chartered"
  toJSON (PostPaymentMethodsRequestBodyFpx'Bank'
PostPaymentMethodsRequestBodyFpx'Bank'EnumUob) = Value
"uob"

instance Data.Aeson.Types.FromJSON.FromJSON PostPaymentMethodsRequestBodyFpx'Bank' where
  parseJSON :: Value -> Parser PostPaymentMethodsRequestBodyFpx'Bank'
parseJSON Value
val =
    PostPaymentMethodsRequestBodyFpx'Bank'
-> Parser PostPaymentMethodsRequestBodyFpx'Bank'
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
"affin_bank" -> PostPaymentMethodsRequestBodyFpx'Bank'
PostPaymentMethodsRequestBodyFpx'Bank'EnumAffinBank
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"alliance_bank" -> PostPaymentMethodsRequestBodyFpx'Bank'
PostPaymentMethodsRequestBodyFpx'Bank'EnumAllianceBank
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"ambank" -> PostPaymentMethodsRequestBodyFpx'Bank'
PostPaymentMethodsRequestBodyFpx'Bank'EnumAmbank
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"bank_islam" -> PostPaymentMethodsRequestBodyFpx'Bank'
PostPaymentMethodsRequestBodyFpx'Bank'EnumBankIslam
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"bank_muamalat" -> PostPaymentMethodsRequestBodyFpx'Bank'
PostPaymentMethodsRequestBodyFpx'Bank'EnumBankMuamalat
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"bank_rakyat" -> PostPaymentMethodsRequestBodyFpx'Bank'
PostPaymentMethodsRequestBodyFpx'Bank'EnumBankRakyat
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"bsn" -> PostPaymentMethodsRequestBodyFpx'Bank'
PostPaymentMethodsRequestBodyFpx'Bank'EnumBsn
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"cimb" -> PostPaymentMethodsRequestBodyFpx'Bank'
PostPaymentMethodsRequestBodyFpx'Bank'EnumCimb
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"deutsche_bank" -> PostPaymentMethodsRequestBodyFpx'Bank'
PostPaymentMethodsRequestBodyFpx'Bank'EnumDeutscheBank
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"hong_leong_bank" -> PostPaymentMethodsRequestBodyFpx'Bank'
PostPaymentMethodsRequestBodyFpx'Bank'EnumHongLeongBank
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"hsbc" -> PostPaymentMethodsRequestBodyFpx'Bank'
PostPaymentMethodsRequestBodyFpx'Bank'EnumHsbc
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"kfh" -> PostPaymentMethodsRequestBodyFpx'Bank'
PostPaymentMethodsRequestBodyFpx'Bank'EnumKfh
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"maybank2e" -> PostPaymentMethodsRequestBodyFpx'Bank'
PostPaymentMethodsRequestBodyFpx'Bank'EnumMaybank2e
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"maybank2u" -> PostPaymentMethodsRequestBodyFpx'Bank'
PostPaymentMethodsRequestBodyFpx'Bank'EnumMaybank2u
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"ocbc" -> PostPaymentMethodsRequestBodyFpx'Bank'
PostPaymentMethodsRequestBodyFpx'Bank'EnumOcbc
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"pb_enterprise" -> PostPaymentMethodsRequestBodyFpx'Bank'
PostPaymentMethodsRequestBodyFpx'Bank'EnumPbEnterprise
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"public_bank" -> PostPaymentMethodsRequestBodyFpx'Bank'
PostPaymentMethodsRequestBodyFpx'Bank'EnumPublicBank
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"rhb" -> PostPaymentMethodsRequestBodyFpx'Bank'
PostPaymentMethodsRequestBodyFpx'Bank'EnumRhb
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"standard_chartered" -> PostPaymentMethodsRequestBodyFpx'Bank'
PostPaymentMethodsRequestBodyFpx'Bank'EnumStandardChartered
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"uob" -> PostPaymentMethodsRequestBodyFpx'Bank'
PostPaymentMethodsRequestBodyFpx'Bank'EnumUob
            | Bool
GHC.Base.otherwise -> Value -> PostPaymentMethodsRequestBodyFpx'Bank'
PostPaymentMethodsRequestBodyFpx'Bank'Other Value
val
      )

-- | Defines the object schema located at @paths.\/v1\/payment_methods.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.ideal@ in the specification.
--
-- If this is an \`ideal\` PaymentMethod, this hash contains details about the iDEAL payment method.
data PostPaymentMethodsRequestBodyIdeal' = PostPaymentMethodsRequestBodyIdeal'
  { -- | bank
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PostPaymentMethodsRequestBodyIdeal'
-> Maybe PostPaymentMethodsRequestBodyIdeal'Bank'
postPaymentMethodsRequestBodyIdeal'Bank :: (GHC.Maybe.Maybe PostPaymentMethodsRequestBodyIdeal'Bank')
  }
  deriving
    ( Int -> PostPaymentMethodsRequestBodyIdeal' -> ShowS
[PostPaymentMethodsRequestBodyIdeal'] -> ShowS
PostPaymentMethodsRequestBodyIdeal' -> String
(Int -> PostPaymentMethodsRequestBodyIdeal' -> ShowS)
-> (PostPaymentMethodsRequestBodyIdeal' -> String)
-> ([PostPaymentMethodsRequestBodyIdeal'] -> ShowS)
-> Show PostPaymentMethodsRequestBodyIdeal'
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PostPaymentMethodsRequestBodyIdeal'] -> ShowS
$cshowList :: [PostPaymentMethodsRequestBodyIdeal'] -> ShowS
show :: PostPaymentMethodsRequestBodyIdeal' -> String
$cshow :: PostPaymentMethodsRequestBodyIdeal' -> String
showsPrec :: Int -> PostPaymentMethodsRequestBodyIdeal' -> ShowS
$cshowsPrec :: Int -> PostPaymentMethodsRequestBodyIdeal' -> ShowS
GHC.Show.Show,
      PostPaymentMethodsRequestBodyIdeal'
-> PostPaymentMethodsRequestBodyIdeal' -> Bool
(PostPaymentMethodsRequestBodyIdeal'
 -> PostPaymentMethodsRequestBodyIdeal' -> Bool)
-> (PostPaymentMethodsRequestBodyIdeal'
    -> PostPaymentMethodsRequestBodyIdeal' -> Bool)
-> Eq PostPaymentMethodsRequestBodyIdeal'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostPaymentMethodsRequestBodyIdeal'
-> PostPaymentMethodsRequestBodyIdeal' -> Bool
$c/= :: PostPaymentMethodsRequestBodyIdeal'
-> PostPaymentMethodsRequestBodyIdeal' -> Bool
== :: PostPaymentMethodsRequestBodyIdeal'
-> PostPaymentMethodsRequestBodyIdeal' -> Bool
$c== :: PostPaymentMethodsRequestBodyIdeal'
-> PostPaymentMethodsRequestBodyIdeal' -> Bool
GHC.Classes.Eq
    )

instance Data.Aeson.Types.ToJSON.ToJSON PostPaymentMethodsRequestBodyIdeal' where
  toJSON :: PostPaymentMethodsRequestBodyIdeal' -> Value
toJSON PostPaymentMethodsRequestBodyIdeal'
obj = [Pair] -> Value
Data.Aeson.Types.Internal.object (Text
"bank" Text -> Maybe PostPaymentMethodsRequestBodyIdeal'Bank' -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentMethodsRequestBodyIdeal'
-> Maybe PostPaymentMethodsRequestBodyIdeal'Bank'
postPaymentMethodsRequestBodyIdeal'Bank PostPaymentMethodsRequestBodyIdeal'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: PostPaymentMethodsRequestBodyIdeal' -> Encoding
toEncoding PostPaymentMethodsRequestBodyIdeal'
obj = Series -> Encoding
Data.Aeson.Encoding.Internal.pairs (Text
"bank" Text -> Maybe PostPaymentMethodsRequestBodyIdeal'Bank' -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentMethodsRequestBodyIdeal'
-> Maybe PostPaymentMethodsRequestBodyIdeal'Bank'
postPaymentMethodsRequestBodyIdeal'Bank PostPaymentMethodsRequestBodyIdeal'
obj)

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

-- | Create a new 'PostPaymentMethodsRequestBodyIdeal'' with all required fields.
mkPostPaymentMethodsRequestBodyIdeal' :: PostPaymentMethodsRequestBodyIdeal'
mkPostPaymentMethodsRequestBodyIdeal' :: PostPaymentMethodsRequestBodyIdeal'
mkPostPaymentMethodsRequestBodyIdeal' = PostPaymentMethodsRequestBodyIdeal' :: Maybe PostPaymentMethodsRequestBodyIdeal'Bank'
-> PostPaymentMethodsRequestBodyIdeal'
PostPaymentMethodsRequestBodyIdeal' {postPaymentMethodsRequestBodyIdeal'Bank :: Maybe PostPaymentMethodsRequestBodyIdeal'Bank'
postPaymentMethodsRequestBodyIdeal'Bank = Maybe PostPaymentMethodsRequestBodyIdeal'Bank'
forall a. Maybe a
GHC.Maybe.Nothing}

-- | Defines the enum schema located at @paths.\/v1\/payment_methods.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.ideal.properties.bank@ in the specification.
data PostPaymentMethodsRequestBodyIdeal'Bank'
  = -- | This case is used if the value encountered during decoding does not match any of the provided cases in the specification.
    PostPaymentMethodsRequestBodyIdeal'Bank'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.
    PostPaymentMethodsRequestBodyIdeal'Bank'Typed Data.Text.Internal.Text
  | -- | Represents the JSON value @"abn_amro"@
    PostPaymentMethodsRequestBodyIdeal'Bank'EnumAbnAmro
  | -- | Represents the JSON value @"asn_bank"@
    PostPaymentMethodsRequestBodyIdeal'Bank'EnumAsnBank
  | -- | Represents the JSON value @"bunq"@
    PostPaymentMethodsRequestBodyIdeal'Bank'EnumBunq
  | -- | Represents the JSON value @"handelsbanken"@
    PostPaymentMethodsRequestBodyIdeal'Bank'EnumHandelsbanken
  | -- | Represents the JSON value @"ing"@
    PostPaymentMethodsRequestBodyIdeal'Bank'EnumIng
  | -- | Represents the JSON value @"knab"@
    PostPaymentMethodsRequestBodyIdeal'Bank'EnumKnab
  | -- | Represents the JSON value @"moneyou"@
    PostPaymentMethodsRequestBodyIdeal'Bank'EnumMoneyou
  | -- | Represents the JSON value @"rabobank"@
    PostPaymentMethodsRequestBodyIdeal'Bank'EnumRabobank
  | -- | Represents the JSON value @"regiobank"@
    PostPaymentMethodsRequestBodyIdeal'Bank'EnumRegiobank
  | -- | Represents the JSON value @"revolut"@
    PostPaymentMethodsRequestBodyIdeal'Bank'EnumRevolut
  | -- | Represents the JSON value @"sns_bank"@
    PostPaymentMethodsRequestBodyIdeal'Bank'EnumSnsBank
  | -- | Represents the JSON value @"triodos_bank"@
    PostPaymentMethodsRequestBodyIdeal'Bank'EnumTriodosBank
  | -- | Represents the JSON value @"van_lanschot"@
    PostPaymentMethodsRequestBodyIdeal'Bank'EnumVanLanschot
  deriving (Int -> PostPaymentMethodsRequestBodyIdeal'Bank' -> ShowS
[PostPaymentMethodsRequestBodyIdeal'Bank'] -> ShowS
PostPaymentMethodsRequestBodyIdeal'Bank' -> String
(Int -> PostPaymentMethodsRequestBodyIdeal'Bank' -> ShowS)
-> (PostPaymentMethodsRequestBodyIdeal'Bank' -> String)
-> ([PostPaymentMethodsRequestBodyIdeal'Bank'] -> ShowS)
-> Show PostPaymentMethodsRequestBodyIdeal'Bank'
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PostPaymentMethodsRequestBodyIdeal'Bank'] -> ShowS
$cshowList :: [PostPaymentMethodsRequestBodyIdeal'Bank'] -> ShowS
show :: PostPaymentMethodsRequestBodyIdeal'Bank' -> String
$cshow :: PostPaymentMethodsRequestBodyIdeal'Bank' -> String
showsPrec :: Int -> PostPaymentMethodsRequestBodyIdeal'Bank' -> ShowS
$cshowsPrec :: Int -> PostPaymentMethodsRequestBodyIdeal'Bank' -> ShowS
GHC.Show.Show, PostPaymentMethodsRequestBodyIdeal'Bank'
-> PostPaymentMethodsRequestBodyIdeal'Bank' -> Bool
(PostPaymentMethodsRequestBodyIdeal'Bank'
 -> PostPaymentMethodsRequestBodyIdeal'Bank' -> Bool)
-> (PostPaymentMethodsRequestBodyIdeal'Bank'
    -> PostPaymentMethodsRequestBodyIdeal'Bank' -> Bool)
-> Eq PostPaymentMethodsRequestBodyIdeal'Bank'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostPaymentMethodsRequestBodyIdeal'Bank'
-> PostPaymentMethodsRequestBodyIdeal'Bank' -> Bool
$c/= :: PostPaymentMethodsRequestBodyIdeal'Bank'
-> PostPaymentMethodsRequestBodyIdeal'Bank' -> Bool
== :: PostPaymentMethodsRequestBodyIdeal'Bank'
-> PostPaymentMethodsRequestBodyIdeal'Bank' -> Bool
$c== :: PostPaymentMethodsRequestBodyIdeal'Bank'
-> PostPaymentMethodsRequestBodyIdeal'Bank' -> Bool
GHC.Classes.Eq)

instance Data.Aeson.Types.ToJSON.ToJSON PostPaymentMethodsRequestBodyIdeal'Bank' where
  toJSON :: PostPaymentMethodsRequestBodyIdeal'Bank' -> Value
toJSON (PostPaymentMethodsRequestBodyIdeal'Bank'Other Value
val) = Value
val
  toJSON (PostPaymentMethodsRequestBodyIdeal'Bank'Typed Text
val) = Text -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON Text
val
  toJSON (PostPaymentMethodsRequestBodyIdeal'Bank'
PostPaymentMethodsRequestBodyIdeal'Bank'EnumAbnAmro) = Value
"abn_amro"
  toJSON (PostPaymentMethodsRequestBodyIdeal'Bank'
PostPaymentMethodsRequestBodyIdeal'Bank'EnumAsnBank) = Value
"asn_bank"
  toJSON (PostPaymentMethodsRequestBodyIdeal'Bank'
PostPaymentMethodsRequestBodyIdeal'Bank'EnumBunq) = Value
"bunq"
  toJSON (PostPaymentMethodsRequestBodyIdeal'Bank'
PostPaymentMethodsRequestBodyIdeal'Bank'EnumHandelsbanken) = Value
"handelsbanken"
  toJSON (PostPaymentMethodsRequestBodyIdeal'Bank'
PostPaymentMethodsRequestBodyIdeal'Bank'EnumIng) = Value
"ing"
  toJSON (PostPaymentMethodsRequestBodyIdeal'Bank'
PostPaymentMethodsRequestBodyIdeal'Bank'EnumKnab) = Value
"knab"
  toJSON (PostPaymentMethodsRequestBodyIdeal'Bank'
PostPaymentMethodsRequestBodyIdeal'Bank'EnumMoneyou) = Value
"moneyou"
  toJSON (PostPaymentMethodsRequestBodyIdeal'Bank'
PostPaymentMethodsRequestBodyIdeal'Bank'EnumRabobank) = Value
"rabobank"
  toJSON (PostPaymentMethodsRequestBodyIdeal'Bank'
PostPaymentMethodsRequestBodyIdeal'Bank'EnumRegiobank) = Value
"regiobank"
  toJSON (PostPaymentMethodsRequestBodyIdeal'Bank'
PostPaymentMethodsRequestBodyIdeal'Bank'EnumRevolut) = Value
"revolut"
  toJSON (PostPaymentMethodsRequestBodyIdeal'Bank'
PostPaymentMethodsRequestBodyIdeal'Bank'EnumSnsBank) = Value
"sns_bank"
  toJSON (PostPaymentMethodsRequestBodyIdeal'Bank'
PostPaymentMethodsRequestBodyIdeal'Bank'EnumTriodosBank) = Value
"triodos_bank"
  toJSON (PostPaymentMethodsRequestBodyIdeal'Bank'
PostPaymentMethodsRequestBodyIdeal'Bank'EnumVanLanschot) = Value
"van_lanschot"

instance Data.Aeson.Types.FromJSON.FromJSON PostPaymentMethodsRequestBodyIdeal'Bank' where
  parseJSON :: Value -> Parser PostPaymentMethodsRequestBodyIdeal'Bank'
parseJSON Value
val =
    PostPaymentMethodsRequestBodyIdeal'Bank'
-> Parser PostPaymentMethodsRequestBodyIdeal'Bank'
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
"abn_amro" -> PostPaymentMethodsRequestBodyIdeal'Bank'
PostPaymentMethodsRequestBodyIdeal'Bank'EnumAbnAmro
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"asn_bank" -> PostPaymentMethodsRequestBodyIdeal'Bank'
PostPaymentMethodsRequestBodyIdeal'Bank'EnumAsnBank
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"bunq" -> PostPaymentMethodsRequestBodyIdeal'Bank'
PostPaymentMethodsRequestBodyIdeal'Bank'EnumBunq
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"handelsbanken" -> PostPaymentMethodsRequestBodyIdeal'Bank'
PostPaymentMethodsRequestBodyIdeal'Bank'EnumHandelsbanken
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"ing" -> PostPaymentMethodsRequestBodyIdeal'Bank'
PostPaymentMethodsRequestBodyIdeal'Bank'EnumIng
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"knab" -> PostPaymentMethodsRequestBodyIdeal'Bank'
PostPaymentMethodsRequestBodyIdeal'Bank'EnumKnab
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"moneyou" -> PostPaymentMethodsRequestBodyIdeal'Bank'
PostPaymentMethodsRequestBodyIdeal'Bank'EnumMoneyou
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"rabobank" -> PostPaymentMethodsRequestBodyIdeal'Bank'
PostPaymentMethodsRequestBodyIdeal'Bank'EnumRabobank
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"regiobank" -> PostPaymentMethodsRequestBodyIdeal'Bank'
PostPaymentMethodsRequestBodyIdeal'Bank'EnumRegiobank
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"revolut" -> PostPaymentMethodsRequestBodyIdeal'Bank'
PostPaymentMethodsRequestBodyIdeal'Bank'EnumRevolut
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"sns_bank" -> PostPaymentMethodsRequestBodyIdeal'Bank'
PostPaymentMethodsRequestBodyIdeal'Bank'EnumSnsBank
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"triodos_bank" -> PostPaymentMethodsRequestBodyIdeal'Bank'
PostPaymentMethodsRequestBodyIdeal'Bank'EnumTriodosBank
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"van_lanschot" -> PostPaymentMethodsRequestBodyIdeal'Bank'
PostPaymentMethodsRequestBodyIdeal'Bank'EnumVanLanschot
            | Bool
GHC.Base.otherwise -> Value -> PostPaymentMethodsRequestBodyIdeal'Bank'
PostPaymentMethodsRequestBodyIdeal'Bank'Other Value
val
      )

-- | Defines the object schema located at @paths.\/v1\/payment_methods.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.p24@ in the specification.
--
-- If this is a \`p24\` PaymentMethod, this hash contains details about the P24 payment method.
data PostPaymentMethodsRequestBodyP24' = PostPaymentMethodsRequestBodyP24'
  { -- | bank
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PostPaymentMethodsRequestBodyP24'
-> Maybe PostPaymentMethodsRequestBodyP24'Bank'
postPaymentMethodsRequestBodyP24'Bank :: (GHC.Maybe.Maybe PostPaymentMethodsRequestBodyP24'Bank')
  }
  deriving
    ( Int -> PostPaymentMethodsRequestBodyP24' -> ShowS
[PostPaymentMethodsRequestBodyP24'] -> ShowS
PostPaymentMethodsRequestBodyP24' -> String
(Int -> PostPaymentMethodsRequestBodyP24' -> ShowS)
-> (PostPaymentMethodsRequestBodyP24' -> String)
-> ([PostPaymentMethodsRequestBodyP24'] -> ShowS)
-> Show PostPaymentMethodsRequestBodyP24'
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PostPaymentMethodsRequestBodyP24'] -> ShowS
$cshowList :: [PostPaymentMethodsRequestBodyP24'] -> ShowS
show :: PostPaymentMethodsRequestBodyP24' -> String
$cshow :: PostPaymentMethodsRequestBodyP24' -> String
showsPrec :: Int -> PostPaymentMethodsRequestBodyP24' -> ShowS
$cshowsPrec :: Int -> PostPaymentMethodsRequestBodyP24' -> ShowS
GHC.Show.Show,
      PostPaymentMethodsRequestBodyP24'
-> PostPaymentMethodsRequestBodyP24' -> Bool
(PostPaymentMethodsRequestBodyP24'
 -> PostPaymentMethodsRequestBodyP24' -> Bool)
-> (PostPaymentMethodsRequestBodyP24'
    -> PostPaymentMethodsRequestBodyP24' -> Bool)
-> Eq PostPaymentMethodsRequestBodyP24'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostPaymentMethodsRequestBodyP24'
-> PostPaymentMethodsRequestBodyP24' -> Bool
$c/= :: PostPaymentMethodsRequestBodyP24'
-> PostPaymentMethodsRequestBodyP24' -> Bool
== :: PostPaymentMethodsRequestBodyP24'
-> PostPaymentMethodsRequestBodyP24' -> Bool
$c== :: PostPaymentMethodsRequestBodyP24'
-> PostPaymentMethodsRequestBodyP24' -> Bool
GHC.Classes.Eq
    )

instance Data.Aeson.Types.ToJSON.ToJSON PostPaymentMethodsRequestBodyP24' where
  toJSON :: PostPaymentMethodsRequestBodyP24' -> Value
toJSON PostPaymentMethodsRequestBodyP24'
obj = [Pair] -> Value
Data.Aeson.Types.Internal.object (Text
"bank" Text -> Maybe PostPaymentMethodsRequestBodyP24'Bank' -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentMethodsRequestBodyP24'
-> Maybe PostPaymentMethodsRequestBodyP24'Bank'
postPaymentMethodsRequestBodyP24'Bank PostPaymentMethodsRequestBodyP24'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: PostPaymentMethodsRequestBodyP24' -> Encoding
toEncoding PostPaymentMethodsRequestBodyP24'
obj = Series -> Encoding
Data.Aeson.Encoding.Internal.pairs (Text
"bank" Text -> Maybe PostPaymentMethodsRequestBodyP24'Bank' -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentMethodsRequestBodyP24'
-> Maybe PostPaymentMethodsRequestBodyP24'Bank'
postPaymentMethodsRequestBodyP24'Bank PostPaymentMethodsRequestBodyP24'
obj)

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

-- | Create a new 'PostPaymentMethodsRequestBodyP24'' with all required fields.
mkPostPaymentMethodsRequestBodyP24' :: PostPaymentMethodsRequestBodyP24'
mkPostPaymentMethodsRequestBodyP24' :: PostPaymentMethodsRequestBodyP24'
mkPostPaymentMethodsRequestBodyP24' = PostPaymentMethodsRequestBodyP24' :: Maybe PostPaymentMethodsRequestBodyP24'Bank'
-> PostPaymentMethodsRequestBodyP24'
PostPaymentMethodsRequestBodyP24' {postPaymentMethodsRequestBodyP24'Bank :: Maybe PostPaymentMethodsRequestBodyP24'Bank'
postPaymentMethodsRequestBodyP24'Bank = Maybe PostPaymentMethodsRequestBodyP24'Bank'
forall a. Maybe a
GHC.Maybe.Nothing}

-- | Defines the enum schema located at @paths.\/v1\/payment_methods.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.p24.properties.bank@ in the specification.
data PostPaymentMethodsRequestBodyP24'Bank'
  = -- | This case is used if the value encountered during decoding does not match any of the provided cases in the specification.
    PostPaymentMethodsRequestBodyP24'Bank'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.
    PostPaymentMethodsRequestBodyP24'Bank'Typed Data.Text.Internal.Text
  | -- | Represents the JSON value @"alior_bank"@
    PostPaymentMethodsRequestBodyP24'Bank'EnumAliorBank
  | -- | Represents the JSON value @"bank_millennium"@
    PostPaymentMethodsRequestBodyP24'Bank'EnumBankMillennium
  | -- | Represents the JSON value @"bank_nowy_bfg_sa"@
    PostPaymentMethodsRequestBodyP24'Bank'EnumBankNowyBfgSa
  | -- | Represents the JSON value @"bank_pekao_sa"@
    PostPaymentMethodsRequestBodyP24'Bank'EnumBankPekaoSa
  | -- | Represents the JSON value @"banki_spbdzielcze"@
    PostPaymentMethodsRequestBodyP24'Bank'EnumBankiSpbdzielcze
  | -- | Represents the JSON value @"blik"@
    PostPaymentMethodsRequestBodyP24'Bank'EnumBlik
  | -- | Represents the JSON value @"bnp_paribas"@
    PostPaymentMethodsRequestBodyP24'Bank'EnumBnpParibas
  | -- | Represents the JSON value @"boz"@
    PostPaymentMethodsRequestBodyP24'Bank'EnumBoz
  | -- | Represents the JSON value @"citi_handlowy"@
    PostPaymentMethodsRequestBodyP24'Bank'EnumCitiHandlowy
  | -- | Represents the JSON value @"credit_agricole"@
    PostPaymentMethodsRequestBodyP24'Bank'EnumCreditAgricole
  | -- | Represents the JSON value @"envelobank"@
    PostPaymentMethodsRequestBodyP24'Bank'EnumEnvelobank
  | -- | Represents the JSON value @"etransfer_pocztowy24"@
    PostPaymentMethodsRequestBodyP24'Bank'EnumEtransferPocztowy24
  | -- | Represents the JSON value @"getin_bank"@
    PostPaymentMethodsRequestBodyP24'Bank'EnumGetinBank
  | -- | Represents the JSON value @"ideabank"@
    PostPaymentMethodsRequestBodyP24'Bank'EnumIdeabank
  | -- | Represents the JSON value @"ing"@
    PostPaymentMethodsRequestBodyP24'Bank'EnumIng
  | -- | Represents the JSON value @"inteligo"@
    PostPaymentMethodsRequestBodyP24'Bank'EnumInteligo
  | -- | Represents the JSON value @"mbank_mtransfer"@
    PostPaymentMethodsRequestBodyP24'Bank'EnumMbankMtransfer
  | -- | Represents the JSON value @"nest_przelew"@
    PostPaymentMethodsRequestBodyP24'Bank'EnumNestPrzelew
  | -- | Represents the JSON value @"noble_pay"@
    PostPaymentMethodsRequestBodyP24'Bank'EnumNoblePay
  | -- | Represents the JSON value @"pbac_z_ipko"@
    PostPaymentMethodsRequestBodyP24'Bank'EnumPbacZIpko
  | -- | Represents the JSON value @"plus_bank"@
    PostPaymentMethodsRequestBodyP24'Bank'EnumPlusBank
  | -- | Represents the JSON value @"santander_przelew24"@
    PostPaymentMethodsRequestBodyP24'Bank'EnumSantanderPrzelew24
  | -- | Represents the JSON value @"tmobile_usbugi_bankowe"@
    PostPaymentMethodsRequestBodyP24'Bank'EnumTmobileUsbugiBankowe
  | -- | Represents the JSON value @"toyota_bank"@
    PostPaymentMethodsRequestBodyP24'Bank'EnumToyotaBank
  | -- | Represents the JSON value @"volkswagen_bank"@
    PostPaymentMethodsRequestBodyP24'Bank'EnumVolkswagenBank
  deriving (Int -> PostPaymentMethodsRequestBodyP24'Bank' -> ShowS
[PostPaymentMethodsRequestBodyP24'Bank'] -> ShowS
PostPaymentMethodsRequestBodyP24'Bank' -> String
(Int -> PostPaymentMethodsRequestBodyP24'Bank' -> ShowS)
-> (PostPaymentMethodsRequestBodyP24'Bank' -> String)
-> ([PostPaymentMethodsRequestBodyP24'Bank'] -> ShowS)
-> Show PostPaymentMethodsRequestBodyP24'Bank'
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PostPaymentMethodsRequestBodyP24'Bank'] -> ShowS
$cshowList :: [PostPaymentMethodsRequestBodyP24'Bank'] -> ShowS
show :: PostPaymentMethodsRequestBodyP24'Bank' -> String
$cshow :: PostPaymentMethodsRequestBodyP24'Bank' -> String
showsPrec :: Int -> PostPaymentMethodsRequestBodyP24'Bank' -> ShowS
$cshowsPrec :: Int -> PostPaymentMethodsRequestBodyP24'Bank' -> ShowS
GHC.Show.Show, PostPaymentMethodsRequestBodyP24'Bank'
-> PostPaymentMethodsRequestBodyP24'Bank' -> Bool
(PostPaymentMethodsRequestBodyP24'Bank'
 -> PostPaymentMethodsRequestBodyP24'Bank' -> Bool)
-> (PostPaymentMethodsRequestBodyP24'Bank'
    -> PostPaymentMethodsRequestBodyP24'Bank' -> Bool)
-> Eq PostPaymentMethodsRequestBodyP24'Bank'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostPaymentMethodsRequestBodyP24'Bank'
-> PostPaymentMethodsRequestBodyP24'Bank' -> Bool
$c/= :: PostPaymentMethodsRequestBodyP24'Bank'
-> PostPaymentMethodsRequestBodyP24'Bank' -> Bool
== :: PostPaymentMethodsRequestBodyP24'Bank'
-> PostPaymentMethodsRequestBodyP24'Bank' -> Bool
$c== :: PostPaymentMethodsRequestBodyP24'Bank'
-> PostPaymentMethodsRequestBodyP24'Bank' -> Bool
GHC.Classes.Eq)

instance Data.Aeson.Types.ToJSON.ToJSON PostPaymentMethodsRequestBodyP24'Bank' where
  toJSON :: PostPaymentMethodsRequestBodyP24'Bank' -> Value
toJSON (PostPaymentMethodsRequestBodyP24'Bank'Other Value
val) = Value
val
  toJSON (PostPaymentMethodsRequestBodyP24'Bank'Typed Text
val) = Text -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON Text
val
  toJSON (PostPaymentMethodsRequestBodyP24'Bank'
PostPaymentMethodsRequestBodyP24'Bank'EnumAliorBank) = Value
"alior_bank"
  toJSON (PostPaymentMethodsRequestBodyP24'Bank'
PostPaymentMethodsRequestBodyP24'Bank'EnumBankMillennium) = Value
"bank_millennium"
  toJSON (PostPaymentMethodsRequestBodyP24'Bank'
PostPaymentMethodsRequestBodyP24'Bank'EnumBankNowyBfgSa) = Value
"bank_nowy_bfg_sa"
  toJSON (PostPaymentMethodsRequestBodyP24'Bank'
PostPaymentMethodsRequestBodyP24'Bank'EnumBankPekaoSa) = Value
"bank_pekao_sa"
  toJSON (PostPaymentMethodsRequestBodyP24'Bank'
PostPaymentMethodsRequestBodyP24'Bank'EnumBankiSpbdzielcze) = Value
"banki_spbdzielcze"
  toJSON (PostPaymentMethodsRequestBodyP24'Bank'
PostPaymentMethodsRequestBodyP24'Bank'EnumBlik) = Value
"blik"
  toJSON (PostPaymentMethodsRequestBodyP24'Bank'
PostPaymentMethodsRequestBodyP24'Bank'EnumBnpParibas) = Value
"bnp_paribas"
  toJSON (PostPaymentMethodsRequestBodyP24'Bank'
PostPaymentMethodsRequestBodyP24'Bank'EnumBoz) = Value
"boz"
  toJSON (PostPaymentMethodsRequestBodyP24'Bank'
PostPaymentMethodsRequestBodyP24'Bank'EnumCitiHandlowy) = Value
"citi_handlowy"
  toJSON (PostPaymentMethodsRequestBodyP24'Bank'
PostPaymentMethodsRequestBodyP24'Bank'EnumCreditAgricole) = Value
"credit_agricole"
  toJSON (PostPaymentMethodsRequestBodyP24'Bank'
PostPaymentMethodsRequestBodyP24'Bank'EnumEnvelobank) = Value
"envelobank"
  toJSON (PostPaymentMethodsRequestBodyP24'Bank'
PostPaymentMethodsRequestBodyP24'Bank'EnumEtransferPocztowy24) = Value
"etransfer_pocztowy24"
  toJSON (PostPaymentMethodsRequestBodyP24'Bank'
PostPaymentMethodsRequestBodyP24'Bank'EnumGetinBank) = Value
"getin_bank"
  toJSON (PostPaymentMethodsRequestBodyP24'Bank'
PostPaymentMethodsRequestBodyP24'Bank'EnumIdeabank) = Value
"ideabank"
  toJSON (PostPaymentMethodsRequestBodyP24'Bank'
PostPaymentMethodsRequestBodyP24'Bank'EnumIng) = Value
"ing"
  toJSON (PostPaymentMethodsRequestBodyP24'Bank'
PostPaymentMethodsRequestBodyP24'Bank'EnumInteligo) = Value
"inteligo"
  toJSON (PostPaymentMethodsRequestBodyP24'Bank'
PostPaymentMethodsRequestBodyP24'Bank'EnumMbankMtransfer) = Value
"mbank_mtransfer"
  toJSON (PostPaymentMethodsRequestBodyP24'Bank'
PostPaymentMethodsRequestBodyP24'Bank'EnumNestPrzelew) = Value
"nest_przelew"
  toJSON (PostPaymentMethodsRequestBodyP24'Bank'
PostPaymentMethodsRequestBodyP24'Bank'EnumNoblePay) = Value
"noble_pay"
  toJSON (PostPaymentMethodsRequestBodyP24'Bank'
PostPaymentMethodsRequestBodyP24'Bank'EnumPbacZIpko) = Value
"pbac_z_ipko"
  toJSON (PostPaymentMethodsRequestBodyP24'Bank'
PostPaymentMethodsRequestBodyP24'Bank'EnumPlusBank) = Value
"plus_bank"
  toJSON (PostPaymentMethodsRequestBodyP24'Bank'
PostPaymentMethodsRequestBodyP24'Bank'EnumSantanderPrzelew24) = Value
"santander_przelew24"
  toJSON (PostPaymentMethodsRequestBodyP24'Bank'
PostPaymentMethodsRequestBodyP24'Bank'EnumTmobileUsbugiBankowe) = Value
"tmobile_usbugi_bankowe"
  toJSON (PostPaymentMethodsRequestBodyP24'Bank'
PostPaymentMethodsRequestBodyP24'Bank'EnumToyotaBank) = Value
"toyota_bank"
  toJSON (PostPaymentMethodsRequestBodyP24'Bank'
PostPaymentMethodsRequestBodyP24'Bank'EnumVolkswagenBank) = Value
"volkswagen_bank"

instance Data.Aeson.Types.FromJSON.FromJSON PostPaymentMethodsRequestBodyP24'Bank' where
  parseJSON :: Value -> Parser PostPaymentMethodsRequestBodyP24'Bank'
parseJSON Value
val =
    PostPaymentMethodsRequestBodyP24'Bank'
-> Parser PostPaymentMethodsRequestBodyP24'Bank'
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
"alior_bank" -> PostPaymentMethodsRequestBodyP24'Bank'
PostPaymentMethodsRequestBodyP24'Bank'EnumAliorBank
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"bank_millennium" -> PostPaymentMethodsRequestBodyP24'Bank'
PostPaymentMethodsRequestBodyP24'Bank'EnumBankMillennium
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"bank_nowy_bfg_sa" -> PostPaymentMethodsRequestBodyP24'Bank'
PostPaymentMethodsRequestBodyP24'Bank'EnumBankNowyBfgSa
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"bank_pekao_sa" -> PostPaymentMethodsRequestBodyP24'Bank'
PostPaymentMethodsRequestBodyP24'Bank'EnumBankPekaoSa
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"banki_spbdzielcze" -> PostPaymentMethodsRequestBodyP24'Bank'
PostPaymentMethodsRequestBodyP24'Bank'EnumBankiSpbdzielcze
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"blik" -> PostPaymentMethodsRequestBodyP24'Bank'
PostPaymentMethodsRequestBodyP24'Bank'EnumBlik
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"bnp_paribas" -> PostPaymentMethodsRequestBodyP24'Bank'
PostPaymentMethodsRequestBodyP24'Bank'EnumBnpParibas
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"boz" -> PostPaymentMethodsRequestBodyP24'Bank'
PostPaymentMethodsRequestBodyP24'Bank'EnumBoz
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"citi_handlowy" -> PostPaymentMethodsRequestBodyP24'Bank'
PostPaymentMethodsRequestBodyP24'Bank'EnumCitiHandlowy
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"credit_agricole" -> PostPaymentMethodsRequestBodyP24'Bank'
PostPaymentMethodsRequestBodyP24'Bank'EnumCreditAgricole
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"envelobank" -> PostPaymentMethodsRequestBodyP24'Bank'
PostPaymentMethodsRequestBodyP24'Bank'EnumEnvelobank
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"etransfer_pocztowy24" -> PostPaymentMethodsRequestBodyP24'Bank'
PostPaymentMethodsRequestBodyP24'Bank'EnumEtransferPocztowy24
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"getin_bank" -> PostPaymentMethodsRequestBodyP24'Bank'
PostPaymentMethodsRequestBodyP24'Bank'EnumGetinBank
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"ideabank" -> PostPaymentMethodsRequestBodyP24'Bank'
PostPaymentMethodsRequestBodyP24'Bank'EnumIdeabank
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"ing" -> PostPaymentMethodsRequestBodyP24'Bank'
PostPaymentMethodsRequestBodyP24'Bank'EnumIng
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"inteligo" -> PostPaymentMethodsRequestBodyP24'Bank'
PostPaymentMethodsRequestBodyP24'Bank'EnumInteligo
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"mbank_mtransfer" -> PostPaymentMethodsRequestBodyP24'Bank'
PostPaymentMethodsRequestBodyP24'Bank'EnumMbankMtransfer
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"nest_przelew" -> PostPaymentMethodsRequestBodyP24'Bank'
PostPaymentMethodsRequestBodyP24'Bank'EnumNestPrzelew
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"noble_pay" -> PostPaymentMethodsRequestBodyP24'Bank'
PostPaymentMethodsRequestBodyP24'Bank'EnumNoblePay
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"pbac_z_ipko" -> PostPaymentMethodsRequestBodyP24'Bank'
PostPaymentMethodsRequestBodyP24'Bank'EnumPbacZIpko
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"plus_bank" -> PostPaymentMethodsRequestBodyP24'Bank'
PostPaymentMethodsRequestBodyP24'Bank'EnumPlusBank
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"santander_przelew24" -> PostPaymentMethodsRequestBodyP24'Bank'
PostPaymentMethodsRequestBodyP24'Bank'EnumSantanderPrzelew24
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"tmobile_usbugi_bankowe" -> PostPaymentMethodsRequestBodyP24'Bank'
PostPaymentMethodsRequestBodyP24'Bank'EnumTmobileUsbugiBankowe
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"toyota_bank" -> PostPaymentMethodsRequestBodyP24'Bank'
PostPaymentMethodsRequestBodyP24'Bank'EnumToyotaBank
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"volkswagen_bank" -> PostPaymentMethodsRequestBodyP24'Bank'
PostPaymentMethodsRequestBodyP24'Bank'EnumVolkswagenBank
            | Bool
GHC.Base.otherwise -> Value -> PostPaymentMethodsRequestBodyP24'Bank'
PostPaymentMethodsRequestBodyP24'Bank'Other Value
val
      )

-- | Defines the object schema located at @paths.\/v1\/payment_methods.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.sepa_debit@ in the specification.
--
-- If this is a \`sepa_debit\` PaymentMethod, this hash contains details about the SEPA debit bank account.
data PostPaymentMethodsRequestBodySepaDebit' = PostPaymentMethodsRequestBodySepaDebit'
  { -- | iban
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PostPaymentMethodsRequestBodySepaDebit' -> Text
postPaymentMethodsRequestBodySepaDebit'Iban :: Data.Text.Internal.Text
  }
  deriving
    ( Int -> PostPaymentMethodsRequestBodySepaDebit' -> ShowS
[PostPaymentMethodsRequestBodySepaDebit'] -> ShowS
PostPaymentMethodsRequestBodySepaDebit' -> String
(Int -> PostPaymentMethodsRequestBodySepaDebit' -> ShowS)
-> (PostPaymentMethodsRequestBodySepaDebit' -> String)
-> ([PostPaymentMethodsRequestBodySepaDebit'] -> ShowS)
-> Show PostPaymentMethodsRequestBodySepaDebit'
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PostPaymentMethodsRequestBodySepaDebit'] -> ShowS
$cshowList :: [PostPaymentMethodsRequestBodySepaDebit'] -> ShowS
show :: PostPaymentMethodsRequestBodySepaDebit' -> String
$cshow :: PostPaymentMethodsRequestBodySepaDebit' -> String
showsPrec :: Int -> PostPaymentMethodsRequestBodySepaDebit' -> ShowS
$cshowsPrec :: Int -> PostPaymentMethodsRequestBodySepaDebit' -> ShowS
GHC.Show.Show,
      PostPaymentMethodsRequestBodySepaDebit'
-> PostPaymentMethodsRequestBodySepaDebit' -> Bool
(PostPaymentMethodsRequestBodySepaDebit'
 -> PostPaymentMethodsRequestBodySepaDebit' -> Bool)
-> (PostPaymentMethodsRequestBodySepaDebit'
    -> PostPaymentMethodsRequestBodySepaDebit' -> Bool)
-> Eq PostPaymentMethodsRequestBodySepaDebit'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostPaymentMethodsRequestBodySepaDebit'
-> PostPaymentMethodsRequestBodySepaDebit' -> Bool
$c/= :: PostPaymentMethodsRequestBodySepaDebit'
-> PostPaymentMethodsRequestBodySepaDebit' -> Bool
== :: PostPaymentMethodsRequestBodySepaDebit'
-> PostPaymentMethodsRequestBodySepaDebit' -> Bool
$c== :: PostPaymentMethodsRequestBodySepaDebit'
-> PostPaymentMethodsRequestBodySepaDebit' -> Bool
GHC.Classes.Eq
    )

instance Data.Aeson.Types.ToJSON.ToJSON PostPaymentMethodsRequestBodySepaDebit' where
  toJSON :: PostPaymentMethodsRequestBodySepaDebit' -> Value
toJSON PostPaymentMethodsRequestBodySepaDebit'
obj = [Pair] -> Value
Data.Aeson.Types.Internal.object (Text
"iban" Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentMethodsRequestBodySepaDebit' -> Text
postPaymentMethodsRequestBodySepaDebit'Iban PostPaymentMethodsRequestBodySepaDebit'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: PostPaymentMethodsRequestBodySepaDebit' -> Encoding
toEncoding PostPaymentMethodsRequestBodySepaDebit'
obj = Series -> Encoding
Data.Aeson.Encoding.Internal.pairs (Text
"iban" Text -> Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentMethodsRequestBodySepaDebit' -> Text
postPaymentMethodsRequestBodySepaDebit'Iban PostPaymentMethodsRequestBodySepaDebit'
obj)

instance Data.Aeson.Types.FromJSON.FromJSON PostPaymentMethodsRequestBodySepaDebit' where
  parseJSON :: Value -> Parser PostPaymentMethodsRequestBodySepaDebit'
parseJSON = String
-> (Object -> Parser PostPaymentMethodsRequestBodySepaDebit')
-> Value
-> Parser PostPaymentMethodsRequestBodySepaDebit'
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.Aeson.Types.FromJSON.withObject String
"PostPaymentMethodsRequestBodySepaDebit'" (\Object
obj -> (Text -> PostPaymentMethodsRequestBodySepaDebit')
-> Parser (Text -> PostPaymentMethodsRequestBodySepaDebit')
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure Text -> PostPaymentMethodsRequestBodySepaDebit'
PostPaymentMethodsRequestBodySepaDebit' Parser (Text -> PostPaymentMethodsRequestBodySepaDebit')
-> Parser Text -> Parser PostPaymentMethodsRequestBodySepaDebit'
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
"iban"))

-- | Create a new 'PostPaymentMethodsRequestBodySepaDebit'' with all required fields.
mkPostPaymentMethodsRequestBodySepaDebit' ::
  -- | 'postPaymentMethodsRequestBodySepaDebit'Iban'
  Data.Text.Internal.Text ->
  PostPaymentMethodsRequestBodySepaDebit'
mkPostPaymentMethodsRequestBodySepaDebit' :: Text -> PostPaymentMethodsRequestBodySepaDebit'
mkPostPaymentMethodsRequestBodySepaDebit' Text
postPaymentMethodsRequestBodySepaDebit'Iban = PostPaymentMethodsRequestBodySepaDebit' :: Text -> PostPaymentMethodsRequestBodySepaDebit'
PostPaymentMethodsRequestBodySepaDebit' {postPaymentMethodsRequestBodySepaDebit'Iban :: Text
postPaymentMethodsRequestBodySepaDebit'Iban = Text
postPaymentMethodsRequestBodySepaDebit'Iban}

-- | Defines the object schema located at @paths.\/v1\/payment_methods.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.sofort@ in the specification.
--
-- If this is a \`sofort\` PaymentMethod, this hash contains details about the SOFORT payment method.
data PostPaymentMethodsRequestBodySofort' = PostPaymentMethodsRequestBodySofort'
  { -- | country
    PostPaymentMethodsRequestBodySofort'
-> PostPaymentMethodsRequestBodySofort'Country'
postPaymentMethodsRequestBodySofort'Country :: PostPaymentMethodsRequestBodySofort'Country'
  }
  deriving
    ( Int -> PostPaymentMethodsRequestBodySofort' -> ShowS
[PostPaymentMethodsRequestBodySofort'] -> ShowS
PostPaymentMethodsRequestBodySofort' -> String
(Int -> PostPaymentMethodsRequestBodySofort' -> ShowS)
-> (PostPaymentMethodsRequestBodySofort' -> String)
-> ([PostPaymentMethodsRequestBodySofort'] -> ShowS)
-> Show PostPaymentMethodsRequestBodySofort'
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PostPaymentMethodsRequestBodySofort'] -> ShowS
$cshowList :: [PostPaymentMethodsRequestBodySofort'] -> ShowS
show :: PostPaymentMethodsRequestBodySofort' -> String
$cshow :: PostPaymentMethodsRequestBodySofort' -> String
showsPrec :: Int -> PostPaymentMethodsRequestBodySofort' -> ShowS
$cshowsPrec :: Int -> PostPaymentMethodsRequestBodySofort' -> ShowS
GHC.Show.Show,
      PostPaymentMethodsRequestBodySofort'
-> PostPaymentMethodsRequestBodySofort' -> Bool
(PostPaymentMethodsRequestBodySofort'
 -> PostPaymentMethodsRequestBodySofort' -> Bool)
-> (PostPaymentMethodsRequestBodySofort'
    -> PostPaymentMethodsRequestBodySofort' -> Bool)
-> Eq PostPaymentMethodsRequestBodySofort'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostPaymentMethodsRequestBodySofort'
-> PostPaymentMethodsRequestBodySofort' -> Bool
$c/= :: PostPaymentMethodsRequestBodySofort'
-> PostPaymentMethodsRequestBodySofort' -> Bool
== :: PostPaymentMethodsRequestBodySofort'
-> PostPaymentMethodsRequestBodySofort' -> Bool
$c== :: PostPaymentMethodsRequestBodySofort'
-> PostPaymentMethodsRequestBodySofort' -> Bool
GHC.Classes.Eq
    )

instance Data.Aeson.Types.ToJSON.ToJSON PostPaymentMethodsRequestBodySofort' where
  toJSON :: PostPaymentMethodsRequestBodySofort' -> Value
toJSON PostPaymentMethodsRequestBodySofort'
obj = [Pair] -> Value
Data.Aeson.Types.Internal.object (Text
"country" Text -> PostPaymentMethodsRequestBodySofort'Country' -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentMethodsRequestBodySofort'
-> PostPaymentMethodsRequestBodySofort'Country'
postPaymentMethodsRequestBodySofort'Country PostPaymentMethodsRequestBodySofort'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: PostPaymentMethodsRequestBodySofort' -> Encoding
toEncoding PostPaymentMethodsRequestBodySofort'
obj = Series -> Encoding
Data.Aeson.Encoding.Internal.pairs (Text
"country" Text -> PostPaymentMethodsRequestBodySofort'Country' -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentMethodsRequestBodySofort'
-> PostPaymentMethodsRequestBodySofort'Country'
postPaymentMethodsRequestBodySofort'Country PostPaymentMethodsRequestBodySofort'
obj)

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

-- | Create a new 'PostPaymentMethodsRequestBodySofort'' with all required fields.
mkPostPaymentMethodsRequestBodySofort' ::
  -- | 'postPaymentMethodsRequestBodySofort'Country'
  PostPaymentMethodsRequestBodySofort'Country' ->
  PostPaymentMethodsRequestBodySofort'
mkPostPaymentMethodsRequestBodySofort' :: PostPaymentMethodsRequestBodySofort'Country'
-> PostPaymentMethodsRequestBodySofort'
mkPostPaymentMethodsRequestBodySofort' PostPaymentMethodsRequestBodySofort'Country'
postPaymentMethodsRequestBodySofort'Country = PostPaymentMethodsRequestBodySofort' :: PostPaymentMethodsRequestBodySofort'Country'
-> PostPaymentMethodsRequestBodySofort'
PostPaymentMethodsRequestBodySofort' {postPaymentMethodsRequestBodySofort'Country :: PostPaymentMethodsRequestBodySofort'Country'
postPaymentMethodsRequestBodySofort'Country = PostPaymentMethodsRequestBodySofort'Country'
postPaymentMethodsRequestBodySofort'Country}

-- | Defines the enum schema located at @paths.\/v1\/payment_methods.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.sofort.properties.country@ in the specification.
data PostPaymentMethodsRequestBodySofort'Country'
  = -- | This case is used if the value encountered during decoding does not match any of the provided cases in the specification.
    PostPaymentMethodsRequestBodySofort'Country'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.
    PostPaymentMethodsRequestBodySofort'Country'Typed Data.Text.Internal.Text
  | -- | Represents the JSON value @"AT"@
    PostPaymentMethodsRequestBodySofort'Country'EnumAT
  | -- | Represents the JSON value @"BE"@
    PostPaymentMethodsRequestBodySofort'Country'EnumBE
  | -- | Represents the JSON value @"DE"@
    PostPaymentMethodsRequestBodySofort'Country'EnumDE
  | -- | Represents the JSON value @"ES"@
    PostPaymentMethodsRequestBodySofort'Country'EnumES
  | -- | Represents the JSON value @"IT"@
    PostPaymentMethodsRequestBodySofort'Country'EnumIT
  | -- | Represents the JSON value @"NL"@
    PostPaymentMethodsRequestBodySofort'Country'EnumNL
  deriving (Int -> PostPaymentMethodsRequestBodySofort'Country' -> ShowS
[PostPaymentMethodsRequestBodySofort'Country'] -> ShowS
PostPaymentMethodsRequestBodySofort'Country' -> String
(Int -> PostPaymentMethodsRequestBodySofort'Country' -> ShowS)
-> (PostPaymentMethodsRequestBodySofort'Country' -> String)
-> ([PostPaymentMethodsRequestBodySofort'Country'] -> ShowS)
-> Show PostPaymentMethodsRequestBodySofort'Country'
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PostPaymentMethodsRequestBodySofort'Country'] -> ShowS
$cshowList :: [PostPaymentMethodsRequestBodySofort'Country'] -> ShowS
show :: PostPaymentMethodsRequestBodySofort'Country' -> String
$cshow :: PostPaymentMethodsRequestBodySofort'Country' -> String
showsPrec :: Int -> PostPaymentMethodsRequestBodySofort'Country' -> ShowS
$cshowsPrec :: Int -> PostPaymentMethodsRequestBodySofort'Country' -> ShowS
GHC.Show.Show, PostPaymentMethodsRequestBodySofort'Country'
-> PostPaymentMethodsRequestBodySofort'Country' -> Bool
(PostPaymentMethodsRequestBodySofort'Country'
 -> PostPaymentMethodsRequestBodySofort'Country' -> Bool)
-> (PostPaymentMethodsRequestBodySofort'Country'
    -> PostPaymentMethodsRequestBodySofort'Country' -> Bool)
-> Eq PostPaymentMethodsRequestBodySofort'Country'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostPaymentMethodsRequestBodySofort'Country'
-> PostPaymentMethodsRequestBodySofort'Country' -> Bool
$c/= :: PostPaymentMethodsRequestBodySofort'Country'
-> PostPaymentMethodsRequestBodySofort'Country' -> Bool
== :: PostPaymentMethodsRequestBodySofort'Country'
-> PostPaymentMethodsRequestBodySofort'Country' -> Bool
$c== :: PostPaymentMethodsRequestBodySofort'Country'
-> PostPaymentMethodsRequestBodySofort'Country' -> Bool
GHC.Classes.Eq)

instance Data.Aeson.Types.ToJSON.ToJSON PostPaymentMethodsRequestBodySofort'Country' where
  toJSON :: PostPaymentMethodsRequestBodySofort'Country' -> Value
toJSON (PostPaymentMethodsRequestBodySofort'Country'Other Value
val) = Value
val
  toJSON (PostPaymentMethodsRequestBodySofort'Country'Typed Text
val) = Text -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON Text
val
  toJSON (PostPaymentMethodsRequestBodySofort'Country'
PostPaymentMethodsRequestBodySofort'Country'EnumAT) = Value
"AT"
  toJSON (PostPaymentMethodsRequestBodySofort'Country'
PostPaymentMethodsRequestBodySofort'Country'EnumBE) = Value
"BE"
  toJSON (PostPaymentMethodsRequestBodySofort'Country'
PostPaymentMethodsRequestBodySofort'Country'EnumDE) = Value
"DE"
  toJSON (PostPaymentMethodsRequestBodySofort'Country'
PostPaymentMethodsRequestBodySofort'Country'EnumES) = Value
"ES"
  toJSON (PostPaymentMethodsRequestBodySofort'Country'
PostPaymentMethodsRequestBodySofort'Country'EnumIT) = Value
"IT"
  toJSON (PostPaymentMethodsRequestBodySofort'Country'
PostPaymentMethodsRequestBodySofort'Country'EnumNL) = Value
"NL"

instance Data.Aeson.Types.FromJSON.FromJSON PostPaymentMethodsRequestBodySofort'Country' where
  parseJSON :: Value -> Parser PostPaymentMethodsRequestBodySofort'Country'
parseJSON Value
val =
    PostPaymentMethodsRequestBodySofort'Country'
-> Parser PostPaymentMethodsRequestBodySofort'Country'
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
"AT" -> PostPaymentMethodsRequestBodySofort'Country'
PostPaymentMethodsRequestBodySofort'Country'EnumAT
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"BE" -> PostPaymentMethodsRequestBodySofort'Country'
PostPaymentMethodsRequestBodySofort'Country'EnumBE
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"DE" -> PostPaymentMethodsRequestBodySofort'Country'
PostPaymentMethodsRequestBodySofort'Country'EnumDE
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"ES" -> PostPaymentMethodsRequestBodySofort'Country'
PostPaymentMethodsRequestBodySofort'Country'EnumES
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"IT" -> PostPaymentMethodsRequestBodySofort'Country'
PostPaymentMethodsRequestBodySofort'Country'EnumIT
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"NL" -> PostPaymentMethodsRequestBodySofort'Country'
PostPaymentMethodsRequestBodySofort'Country'EnumNL
            | Bool
GHC.Base.otherwise -> Value -> PostPaymentMethodsRequestBodySofort'Country'
PostPaymentMethodsRequestBodySofort'Country'Other Value
val
      )

-- | Defines the enum schema located at @paths.\/v1\/payment_methods.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.type@ in the specification.
--
-- The type of the PaymentMethod. An additional hash is included on the PaymentMethod with a name matching this value. It contains additional information specific to the PaymentMethod type.
data PostPaymentMethodsRequestBodyType'
  = -- | This case is used if the value encountered during decoding does not match any of the provided cases in the specification.
    PostPaymentMethodsRequestBodyType'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.
    PostPaymentMethodsRequestBodyType'Typed Data.Text.Internal.Text
  | -- | Represents the JSON value @"acss_debit"@
    PostPaymentMethodsRequestBodyType'EnumAcssDebit
  | -- | Represents the JSON value @"afterpay_clearpay"@
    PostPaymentMethodsRequestBodyType'EnumAfterpayClearpay
  | -- | Represents the JSON value @"alipay"@
    PostPaymentMethodsRequestBodyType'EnumAlipay
  | -- | Represents the JSON value @"au_becs_debit"@
    PostPaymentMethodsRequestBodyType'EnumAuBecsDebit
  | -- | Represents the JSON value @"bacs_debit"@
    PostPaymentMethodsRequestBodyType'EnumBacsDebit
  | -- | Represents the JSON value @"bancontact"@
    PostPaymentMethodsRequestBodyType'EnumBancontact
  | -- | Represents the JSON value @"boleto"@
    PostPaymentMethodsRequestBodyType'EnumBoleto
  | -- | Represents the JSON value @"card"@
    PostPaymentMethodsRequestBodyType'EnumCard
  | -- | Represents the JSON value @"eps"@
    PostPaymentMethodsRequestBodyType'EnumEps
  | -- | Represents the JSON value @"fpx"@
    PostPaymentMethodsRequestBodyType'EnumFpx
  | -- | Represents the JSON value @"giropay"@
    PostPaymentMethodsRequestBodyType'EnumGiropay
  | -- | Represents the JSON value @"grabpay"@
    PostPaymentMethodsRequestBodyType'EnumGrabpay
  | -- | Represents the JSON value @"ideal"@
    PostPaymentMethodsRequestBodyType'EnumIdeal
  | -- | Represents the JSON value @"oxxo"@
    PostPaymentMethodsRequestBodyType'EnumOxxo
  | -- | Represents the JSON value @"p24"@
    PostPaymentMethodsRequestBodyType'EnumP24
  | -- | Represents the JSON value @"sepa_debit"@
    PostPaymentMethodsRequestBodyType'EnumSepaDebit
  | -- | Represents the JSON value @"sofort"@
    PostPaymentMethodsRequestBodyType'EnumSofort
  deriving (Int -> PostPaymentMethodsRequestBodyType' -> ShowS
[PostPaymentMethodsRequestBodyType'] -> ShowS
PostPaymentMethodsRequestBodyType' -> String
(Int -> PostPaymentMethodsRequestBodyType' -> ShowS)
-> (PostPaymentMethodsRequestBodyType' -> String)
-> ([PostPaymentMethodsRequestBodyType'] -> ShowS)
-> Show PostPaymentMethodsRequestBodyType'
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PostPaymentMethodsRequestBodyType'] -> ShowS
$cshowList :: [PostPaymentMethodsRequestBodyType'] -> ShowS
show :: PostPaymentMethodsRequestBodyType' -> String
$cshow :: PostPaymentMethodsRequestBodyType' -> String
showsPrec :: Int -> PostPaymentMethodsRequestBodyType' -> ShowS
$cshowsPrec :: Int -> PostPaymentMethodsRequestBodyType' -> ShowS
GHC.Show.Show, PostPaymentMethodsRequestBodyType'
-> PostPaymentMethodsRequestBodyType' -> Bool
(PostPaymentMethodsRequestBodyType'
 -> PostPaymentMethodsRequestBodyType' -> Bool)
-> (PostPaymentMethodsRequestBodyType'
    -> PostPaymentMethodsRequestBodyType' -> Bool)
-> Eq PostPaymentMethodsRequestBodyType'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostPaymentMethodsRequestBodyType'
-> PostPaymentMethodsRequestBodyType' -> Bool
$c/= :: PostPaymentMethodsRequestBodyType'
-> PostPaymentMethodsRequestBodyType' -> Bool
== :: PostPaymentMethodsRequestBodyType'
-> PostPaymentMethodsRequestBodyType' -> Bool
$c== :: PostPaymentMethodsRequestBodyType'
-> PostPaymentMethodsRequestBodyType' -> Bool
GHC.Classes.Eq)

instance Data.Aeson.Types.ToJSON.ToJSON PostPaymentMethodsRequestBodyType' where
  toJSON :: PostPaymentMethodsRequestBodyType' -> Value
toJSON (PostPaymentMethodsRequestBodyType'Other Value
val) = Value
val
  toJSON (PostPaymentMethodsRequestBodyType'Typed Text
val) = Text -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON Text
val
  toJSON (PostPaymentMethodsRequestBodyType'
PostPaymentMethodsRequestBodyType'EnumAcssDebit) = Value
"acss_debit"
  toJSON (PostPaymentMethodsRequestBodyType'
PostPaymentMethodsRequestBodyType'EnumAfterpayClearpay) = Value
"afterpay_clearpay"
  toJSON (PostPaymentMethodsRequestBodyType'
PostPaymentMethodsRequestBodyType'EnumAlipay) = Value
"alipay"
  toJSON (PostPaymentMethodsRequestBodyType'
PostPaymentMethodsRequestBodyType'EnumAuBecsDebit) = Value
"au_becs_debit"
  toJSON (PostPaymentMethodsRequestBodyType'
PostPaymentMethodsRequestBodyType'EnumBacsDebit) = Value
"bacs_debit"
  toJSON (PostPaymentMethodsRequestBodyType'
PostPaymentMethodsRequestBodyType'EnumBancontact) = Value
"bancontact"
  toJSON (PostPaymentMethodsRequestBodyType'
PostPaymentMethodsRequestBodyType'EnumBoleto) = Value
"boleto"
  toJSON (PostPaymentMethodsRequestBodyType'
PostPaymentMethodsRequestBodyType'EnumCard) = Value
"card"
  toJSON (PostPaymentMethodsRequestBodyType'
PostPaymentMethodsRequestBodyType'EnumEps) = Value
"eps"
  toJSON (PostPaymentMethodsRequestBodyType'
PostPaymentMethodsRequestBodyType'EnumFpx) = Value
"fpx"
  toJSON (PostPaymentMethodsRequestBodyType'
PostPaymentMethodsRequestBodyType'EnumGiropay) = Value
"giropay"
  toJSON (PostPaymentMethodsRequestBodyType'
PostPaymentMethodsRequestBodyType'EnumGrabpay) = Value
"grabpay"
  toJSON (PostPaymentMethodsRequestBodyType'
PostPaymentMethodsRequestBodyType'EnumIdeal) = Value
"ideal"
  toJSON (PostPaymentMethodsRequestBodyType'
PostPaymentMethodsRequestBodyType'EnumOxxo) = Value
"oxxo"
  toJSON (PostPaymentMethodsRequestBodyType'
PostPaymentMethodsRequestBodyType'EnumP24) = Value
"p24"
  toJSON (PostPaymentMethodsRequestBodyType'
PostPaymentMethodsRequestBodyType'EnumSepaDebit) = Value
"sepa_debit"
  toJSON (PostPaymentMethodsRequestBodyType'
PostPaymentMethodsRequestBodyType'EnumSofort) = Value
"sofort"

instance Data.Aeson.Types.FromJSON.FromJSON PostPaymentMethodsRequestBodyType' where
  parseJSON :: Value -> Parser PostPaymentMethodsRequestBodyType'
parseJSON Value
val =
    PostPaymentMethodsRequestBodyType'
-> Parser PostPaymentMethodsRequestBodyType'
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
"acss_debit" -> PostPaymentMethodsRequestBodyType'
PostPaymentMethodsRequestBodyType'EnumAcssDebit
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"afterpay_clearpay" -> PostPaymentMethodsRequestBodyType'
PostPaymentMethodsRequestBodyType'EnumAfterpayClearpay
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"alipay" -> PostPaymentMethodsRequestBodyType'
PostPaymentMethodsRequestBodyType'EnumAlipay
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"au_becs_debit" -> PostPaymentMethodsRequestBodyType'
PostPaymentMethodsRequestBodyType'EnumAuBecsDebit
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"bacs_debit" -> PostPaymentMethodsRequestBodyType'
PostPaymentMethodsRequestBodyType'EnumBacsDebit
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"bancontact" -> PostPaymentMethodsRequestBodyType'
PostPaymentMethodsRequestBodyType'EnumBancontact
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"boleto" -> PostPaymentMethodsRequestBodyType'
PostPaymentMethodsRequestBodyType'EnumBoleto
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"card" -> PostPaymentMethodsRequestBodyType'
PostPaymentMethodsRequestBodyType'EnumCard
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"eps" -> PostPaymentMethodsRequestBodyType'
PostPaymentMethodsRequestBodyType'EnumEps
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"fpx" -> PostPaymentMethodsRequestBodyType'
PostPaymentMethodsRequestBodyType'EnumFpx
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"giropay" -> PostPaymentMethodsRequestBodyType'
PostPaymentMethodsRequestBodyType'EnumGiropay
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"grabpay" -> PostPaymentMethodsRequestBodyType'
PostPaymentMethodsRequestBodyType'EnumGrabpay
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"ideal" -> PostPaymentMethodsRequestBodyType'
PostPaymentMethodsRequestBodyType'EnumIdeal
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"oxxo" -> PostPaymentMethodsRequestBodyType'
PostPaymentMethodsRequestBodyType'EnumOxxo
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"p24" -> PostPaymentMethodsRequestBodyType'
PostPaymentMethodsRequestBodyType'EnumP24
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"sepa_debit" -> PostPaymentMethodsRequestBodyType'
PostPaymentMethodsRequestBodyType'EnumSepaDebit
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"sofort" -> PostPaymentMethodsRequestBodyType'
PostPaymentMethodsRequestBodyType'EnumSofort
            | Bool
GHC.Base.otherwise -> Value -> PostPaymentMethodsRequestBodyType'
PostPaymentMethodsRequestBodyType'Other Value
val
      )

-- | Represents a response of the operation 'postPaymentMethods'.
--
-- 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), 'PostPaymentMethodsResponseError' is used.
data PostPaymentMethodsResponse
  = -- | Means either no matching case available or a parse error
    PostPaymentMethodsResponseError GHC.Base.String
  | -- | Successful response.
    PostPaymentMethodsResponse200 PaymentMethod
  | -- | Error response.
    PostPaymentMethodsResponseDefault Error
  deriving (Int -> PostPaymentMethodsResponse -> ShowS
[PostPaymentMethodsResponse] -> ShowS
PostPaymentMethodsResponse -> String
(Int -> PostPaymentMethodsResponse -> ShowS)
-> (PostPaymentMethodsResponse -> String)
-> ([PostPaymentMethodsResponse] -> ShowS)
-> Show PostPaymentMethodsResponse
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PostPaymentMethodsResponse] -> ShowS
$cshowList :: [PostPaymentMethodsResponse] -> ShowS
show :: PostPaymentMethodsResponse -> String
$cshow :: PostPaymentMethodsResponse -> String
showsPrec :: Int -> PostPaymentMethodsResponse -> ShowS
$cshowsPrec :: Int -> PostPaymentMethodsResponse -> ShowS
GHC.Show.Show, PostPaymentMethodsResponse -> PostPaymentMethodsResponse -> Bool
(PostPaymentMethodsResponse -> PostPaymentMethodsResponse -> Bool)
-> (PostPaymentMethodsResponse
    -> PostPaymentMethodsResponse -> Bool)
-> Eq PostPaymentMethodsResponse
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostPaymentMethodsResponse -> PostPaymentMethodsResponse -> Bool
$c/= :: PostPaymentMethodsResponse -> PostPaymentMethodsResponse -> Bool
== :: PostPaymentMethodsResponse -> PostPaymentMethodsResponse -> Bool
$c== :: PostPaymentMethodsResponse -> PostPaymentMethodsResponse -> Bool
GHC.Classes.Eq)