{-# 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 postPaymentIntentsIntentConfirm
module StripeAPI.Operations.PostPaymentIntentsIntentConfirm 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_intents/{intent}/confirm
--
-- \<p>Confirm that your customer intends to pay with current or provided
-- payment method. Upon confirmation, the PaymentIntent will attempt to initiate
-- a payment.\<\/p>
--
-- \<p>If the selected payment method requires additional authentication steps, the
-- PaymentIntent will transition to the \<code>requires_action\<\/code> status and
-- suggest additional actions via \<code>next_action\<\/code>. If payment fails,
-- the PaymentIntent will transition to the \<code>requires_payment_method\<\/code> status. If
-- payment succeeds, the PaymentIntent will transition to the \<code>succeeded\<\/code>
-- status (or \<code>requires_capture\<\/code>, if \<code>capture_method\<\/code> is set to \<code>manual\<\/code>).\<\/p>
--
-- \<p>If the \<code>confirmation_method\<\/code> is \<code>automatic\<\/code>, payment may be attempted
-- using our \<a href=\"\/docs\/stripe-js\/reference\#stripe-handle-card-payment\">client SDKs\<\/a>
-- and the PaymentIntent’s \<a href=\"\#payment_intent_object-client_secret\">client_secret\<\/a>.
-- After \<code>next_action\<\/code>s are handled by the client, no additional
-- confirmation is required to complete the payment.\<\/p>
--
-- \<p>If the \<code>confirmation_method\<\/code> is \<code>manual\<\/code>, all payment attempts must be
-- initiated using a secret key.
-- If any actions are required for the payment, the PaymentIntent will
-- return to the \<code>requires_confirmation\<\/code> state
-- after those actions are completed. Your server needs to then
-- explicitly re-confirm the PaymentIntent to initiate the next payment
-- attempt. Read the \<a href=\"\/docs\/payments\/payment-intents\/web-manual\">expanded documentation\<\/a>
-- to learn more about manual confirmation.\<\/p>
postPaymentIntentsIntentConfirm ::
  forall m.
  StripeAPI.Common.MonadHTTP m =>
  -- | intent | Constraints: Maximum length of 5000
  Data.Text.Internal.Text ->
  -- | The request body to send
  GHC.Maybe.Maybe PostPaymentIntentsIntentConfirmRequestBody ->
  -- | Monadic computation which returns the result of the operation
  StripeAPI.Common.ClientT m (Network.HTTP.Client.Types.Response PostPaymentIntentsIntentConfirmResponse)
postPaymentIntentsIntentConfirm :: Text
-> Maybe PostPaymentIntentsIntentConfirmRequestBody
-> ClientT m (Response PostPaymentIntentsIntentConfirmResponse)
postPaymentIntentsIntentConfirm
  Text
intent
  Maybe PostPaymentIntentsIntentConfirmRequestBody
body =
    (Response ByteString
 -> Response PostPaymentIntentsIntentConfirmResponse)
-> ClientT m (Response ByteString)
-> ClientT m (Response PostPaymentIntentsIntentConfirmResponse)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
GHC.Base.fmap
      ( \Response ByteString
response_0 ->
          (ByteString -> PostPaymentIntentsIntentConfirmResponse)
-> Response ByteString
-> Response PostPaymentIntentsIntentConfirmResponse
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
GHC.Base.fmap
            ( (String -> PostPaymentIntentsIntentConfirmResponse)
-> (PostPaymentIntentsIntentConfirmResponse
    -> PostPaymentIntentsIntentConfirmResponse)
-> Either String PostPaymentIntentsIntentConfirmResponse
-> PostPaymentIntentsIntentConfirmResponse
forall a c b. (a -> c) -> (b -> c) -> Either a b -> c
Data.Either.either String -> PostPaymentIntentsIntentConfirmResponse
PostPaymentIntentsIntentConfirmResponseError PostPaymentIntentsIntentConfirmResponse
-> PostPaymentIntentsIntentConfirmResponse
forall a. a -> a
GHC.Base.id
                (Either String PostPaymentIntentsIntentConfirmResponse
 -> PostPaymentIntentsIntentConfirmResponse)
-> (ByteString
    -> Either String PostPaymentIntentsIntentConfirmResponse)
-> ByteString
-> PostPaymentIntentsIntentConfirmResponse
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) ->
                                     PaymentIntent -> PostPaymentIntentsIntentConfirmResponse
PostPaymentIntentsIntentConfirmResponse200
                                       (PaymentIntent -> PostPaymentIntentsIntentConfirmResponse)
-> Either String PaymentIntent
-> Either String PostPaymentIntentsIntentConfirmResponse
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Data.Functor.<$> ( ByteString -> Either String PaymentIntent
forall a. FromJSON a => ByteString -> Either String a
Data.Aeson.eitherDecodeStrict ByteString
body ::
                                                            Data.Either.Either
                                                              GHC.Base.String
                                                              PaymentIntent
                                                        )
                                   | 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 -> PostPaymentIntentsIntentConfirmResponse
PostPaymentIntentsIntentConfirmResponseDefault
                                       (Error -> PostPaymentIntentsIntentConfirmResponse)
-> Either String Error
-> Either String PostPaymentIntentsIntentConfirmResponse
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 PostPaymentIntentsIntentConfirmResponse
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 PostPaymentIntentsIntentConfirmRequestBody
-> RequestBodyEncoding
-> ClientT m (Response ByteString)
forall (m :: * -> *) body.
(MonadHTTP m, ToJSON body) =>
Text
-> Text
-> [QueryParameter]
-> Maybe body
-> RequestBodyEncoding
-> ClientT m (Response ByteString)
StripeAPI.Common.doBodyCallWithConfigurationM (Text -> Text
Data.Text.toUpper (Text -> Text) -> Text -> Text
forall a b. (a -> b) -> a -> b
GHC.Base.$ String -> Text
Data.Text.pack String
"POST") (String -> Text
Data.Text.pack (String
"/v1/payment_intents/" String -> String -> String
forall a. [a] -> [a] -> [a]
GHC.Base.++ (ByteString -> String
Data.ByteString.Char8.unpack (Bool -> ByteString -> ByteString
Network.HTTP.Types.URI.urlEncode Bool
GHC.Types.True (ByteString -> ByteString) -> ByteString -> ByteString
forall a b. (a -> b) -> a -> b
GHC.Base.$ (String -> ByteString
Data.ByteString.Char8.pack (String -> ByteString) -> String -> ByteString
forall a b. (a -> b) -> a -> b
GHC.Base.$ Text -> String
forall a. StringifyModel a => a -> String
StripeAPI.Common.stringifyModel Text
intent)) String -> String -> String
forall a. [a] -> [a] -> [a]
GHC.Base.++ String
"/confirm"))) [QueryParameter]
forall a. Monoid a => a
GHC.Base.mempty Maybe PostPaymentIntentsIntentConfirmRequestBody
body RequestBodyEncoding
StripeAPI.Common.RequestBodyEncodingFormData)

-- | Defines the object schema located at @paths.\/v1\/payment_intents\/{intent}\/confirm.POST.requestBody.content.application\/x-www-form-urlencoded.schema@ in the specification.
data PostPaymentIntentsIntentConfirmRequestBody = PostPaymentIntentsIntentConfirmRequestBody
  { -- | client_secret: The client secret of the PaymentIntent.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PostPaymentIntentsIntentConfirmRequestBody -> Maybe Text
postPaymentIntentsIntentConfirmRequestBodyClientSecret :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | error_on_requires_action: Set to \`true\` to fail the payment attempt if the PaymentIntent transitions into \`requires_action\`. This parameter is intended for simpler integrations that do not handle customer actions, like [saving cards without authentication](https:\/\/stripe.com\/docs\/payments\/save-card-without-authentication).
    PostPaymentIntentsIntentConfirmRequestBody -> Maybe Bool
postPaymentIntentsIntentConfirmRequestBodyErrorOnRequiresAction :: (GHC.Maybe.Maybe GHC.Types.Bool),
    -- | expand: Specifies which fields in the response should be expanded.
    PostPaymentIntentsIntentConfirmRequestBody -> Maybe [Text]
postPaymentIntentsIntentConfirmRequestBodyExpand :: (GHC.Maybe.Maybe ([Data.Text.Internal.Text])),
    -- | mandate: ID of the mandate to be used for this payment.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PostPaymentIntentsIntentConfirmRequestBody -> Maybe Text
postPaymentIntentsIntentConfirmRequestBodyMandate :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | mandate_data: This hash contains details about the Mandate to create
    PostPaymentIntentsIntentConfirmRequestBody
-> Maybe PostPaymentIntentsIntentConfirmRequestBodyMandateData'
postPaymentIntentsIntentConfirmRequestBodyMandateData :: (GHC.Maybe.Maybe PostPaymentIntentsIntentConfirmRequestBodyMandateData'),
    -- | off_session: Set to \`true\` to indicate that the customer is not in your checkout flow during this payment attempt, and therefore is unable to authenticate. This parameter is intended for scenarios where you collect card details and [charge them later](https:\/\/stripe.com\/docs\/payments\/cards\/charging-saved-cards).
    PostPaymentIntentsIntentConfirmRequestBody
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyOffSession'Variants
postPaymentIntentsIntentConfirmRequestBodyOffSession :: (GHC.Maybe.Maybe PostPaymentIntentsIntentConfirmRequestBodyOffSession'Variants),
    -- | payment_method: ID of the payment method (a PaymentMethod, Card, or [compatible Source](https:\/\/stripe.com\/docs\/payments\/payment-methods\/transitioning\#compatibility) object) to attach to this PaymentIntent.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PostPaymentIntentsIntentConfirmRequestBody -> Maybe Text
postPaymentIntentsIntentConfirmRequestBodyPaymentMethod :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | payment_method_data: If provided, this hash will be used to create a PaymentMethod. The new PaymentMethod will appear
    -- in the [payment_method](https:\/\/stripe.com\/docs\/api\/payment_intents\/object\#payment_intent_object-payment_method)
    -- property on the PaymentIntent.
    PostPaymentIntentsIntentConfirmRequestBody
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData :: (GHC.Maybe.Maybe PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'),
    -- | payment_method_options: Payment-method-specific configuration for this PaymentIntent.
    PostPaymentIntentsIntentConfirmRequestBody
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions :: (GHC.Maybe.Maybe PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'),
    -- | payment_method_types: The list of payment method types (e.g. card) that this PaymentIntent is allowed to use.
    PostPaymentIntentsIntentConfirmRequestBody -> Maybe [Text]
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodTypes :: (GHC.Maybe.Maybe ([Data.Text.Internal.Text])),
    -- | receipt_email: Email address that the receipt for the resulting payment will be sent to. If \`receipt_email\` is specified for a payment in live mode, a receipt will be sent regardless of your [email settings](https:\/\/dashboard.stripe.com\/account\/emails).
    PostPaymentIntentsIntentConfirmRequestBody
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyReceiptEmail'Variants
postPaymentIntentsIntentConfirmRequestBodyReceiptEmail :: (GHC.Maybe.Maybe PostPaymentIntentsIntentConfirmRequestBodyReceiptEmail'Variants),
    -- | return_url: The URL to redirect your customer back to after they authenticate or cancel their payment on the payment method\'s app or site.
    -- If you\'d prefer to redirect to a mobile application, you can alternatively supply an application URI scheme.
    -- This parameter is only used for cards and other redirect-based payment methods.
    PostPaymentIntentsIntentConfirmRequestBody -> Maybe Text
postPaymentIntentsIntentConfirmRequestBodyReturnUrl :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | setup_future_usage: Indicates that you intend to make future payments with this PaymentIntent\'s payment method.
    --
    -- Providing this parameter will [attach the payment method](https:\/\/stripe.com\/docs\/payments\/save-during-payment) to the PaymentIntent\'s Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https:\/\/stripe.com\/docs\/api\/payment_methods\/attach) to a Customer after the transaction completes.
    --
    -- When processing card payments, Stripe also uses \`setup_future_usage\` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https:\/\/stripe.com\/docs\/strong-customer-authentication).
    --
    -- If \`setup_future_usage\` is already set and you are performing a request using a publishable key, you may only update the value from \`on_session\` to \`off_session\`.
    PostPaymentIntentsIntentConfirmRequestBody
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodySetupFutureUsage'
postPaymentIntentsIntentConfirmRequestBodySetupFutureUsage :: (GHC.Maybe.Maybe PostPaymentIntentsIntentConfirmRequestBodySetupFutureUsage'),
    -- | shipping: Shipping information for this PaymentIntent.
    PostPaymentIntentsIntentConfirmRequestBody
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyShipping'Variants
postPaymentIntentsIntentConfirmRequestBodyShipping :: (GHC.Maybe.Maybe PostPaymentIntentsIntentConfirmRequestBodyShipping'Variants),
    -- | use_stripe_sdk: Set to \`true\` only when using manual confirmation and the iOS or Android SDKs to handle additional authentication steps.
    PostPaymentIntentsIntentConfirmRequestBody -> Maybe Bool
postPaymentIntentsIntentConfirmRequestBodyUseStripeSdk :: (GHC.Maybe.Maybe GHC.Types.Bool)
  }
  deriving
    ( Int
-> PostPaymentIntentsIntentConfirmRequestBody -> String -> String
[PostPaymentIntentsIntentConfirmRequestBody] -> String -> String
PostPaymentIntentsIntentConfirmRequestBody -> String
(Int
 -> PostPaymentIntentsIntentConfirmRequestBody -> String -> String)
-> (PostPaymentIntentsIntentConfirmRequestBody -> String)
-> ([PostPaymentIntentsIntentConfirmRequestBody]
    -> String -> String)
-> Show PostPaymentIntentsIntentConfirmRequestBody
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostPaymentIntentsIntentConfirmRequestBody] -> String -> String
$cshowList :: [PostPaymentIntentsIntentConfirmRequestBody] -> String -> String
show :: PostPaymentIntentsIntentConfirmRequestBody -> String
$cshow :: PostPaymentIntentsIntentConfirmRequestBody -> String
showsPrec :: Int
-> PostPaymentIntentsIntentConfirmRequestBody -> String -> String
$cshowsPrec :: Int
-> PostPaymentIntentsIntentConfirmRequestBody -> String -> String
GHC.Show.Show,
      PostPaymentIntentsIntentConfirmRequestBody
-> PostPaymentIntentsIntentConfirmRequestBody -> Bool
(PostPaymentIntentsIntentConfirmRequestBody
 -> PostPaymentIntentsIntentConfirmRequestBody -> Bool)
-> (PostPaymentIntentsIntentConfirmRequestBody
    -> PostPaymentIntentsIntentConfirmRequestBody -> Bool)
-> Eq PostPaymentIntentsIntentConfirmRequestBody
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostPaymentIntentsIntentConfirmRequestBody
-> PostPaymentIntentsIntentConfirmRequestBody -> Bool
$c/= :: PostPaymentIntentsIntentConfirmRequestBody
-> PostPaymentIntentsIntentConfirmRequestBody -> Bool
== :: PostPaymentIntentsIntentConfirmRequestBody
-> PostPaymentIntentsIntentConfirmRequestBody -> Bool
$c== :: PostPaymentIntentsIntentConfirmRequestBody
-> PostPaymentIntentsIntentConfirmRequestBody -> Bool
GHC.Classes.Eq
    )

instance Data.Aeson.Types.ToJSON.ToJSON PostPaymentIntentsIntentConfirmRequestBody where
  toJSON :: PostPaymentIntentsIntentConfirmRequestBody -> Value
toJSON PostPaymentIntentsIntentConfirmRequestBody
obj = [Pair] -> Value
Data.Aeson.Types.Internal.object (Text
"client_secret" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentIntentsIntentConfirmRequestBody -> Maybe Text
postPaymentIntentsIntentConfirmRequestBodyClientSecret PostPaymentIntentsIntentConfirmRequestBody
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"error_on_requires_action" Text -> Maybe Bool -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentIntentsIntentConfirmRequestBody -> Maybe Bool
postPaymentIntentsIntentConfirmRequestBodyErrorOnRequiresAction PostPaymentIntentsIntentConfirmRequestBody
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..= PostPaymentIntentsIntentConfirmRequestBody -> Maybe [Text]
postPaymentIntentsIntentConfirmRequestBodyExpand PostPaymentIntentsIntentConfirmRequestBody
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"mandate" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentIntentsIntentConfirmRequestBody -> Maybe Text
postPaymentIntentsIntentConfirmRequestBodyMandate PostPaymentIntentsIntentConfirmRequestBody
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"mandate_data" Text
-> Maybe PostPaymentIntentsIntentConfirmRequestBodyMandateData'
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentIntentsIntentConfirmRequestBody
-> Maybe PostPaymentIntentsIntentConfirmRequestBodyMandateData'
postPaymentIntentsIntentConfirmRequestBodyMandateData PostPaymentIntentsIntentConfirmRequestBody
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"off_session" Text
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyOffSession'Variants
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentIntentsIntentConfirmRequestBody
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyOffSession'Variants
postPaymentIntentsIntentConfirmRequestBodyOffSession PostPaymentIntentsIntentConfirmRequestBody
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..= PostPaymentIntentsIntentConfirmRequestBody -> Maybe Text
postPaymentIntentsIntentConfirmRequestBodyPaymentMethod PostPaymentIntentsIntentConfirmRequestBody
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"payment_method_data" Text
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentIntentsIntentConfirmRequestBody
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData PostPaymentIntentsIntentConfirmRequestBody
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"payment_method_options" Text
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentIntentsIntentConfirmRequestBody
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions PostPaymentIntentsIntentConfirmRequestBody
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"payment_method_types" Text -> Maybe [Text] -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentIntentsIntentConfirmRequestBody -> Maybe [Text]
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodTypes PostPaymentIntentsIntentConfirmRequestBody
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"receipt_email" Text
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyReceiptEmail'Variants
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentIntentsIntentConfirmRequestBody
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyReceiptEmail'Variants
postPaymentIntentsIntentConfirmRequestBodyReceiptEmail PostPaymentIntentsIntentConfirmRequestBody
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"return_url" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentIntentsIntentConfirmRequestBody -> Maybe Text
postPaymentIntentsIntentConfirmRequestBodyReturnUrl PostPaymentIntentsIntentConfirmRequestBody
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"setup_future_usage" Text
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodySetupFutureUsage'
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentIntentsIntentConfirmRequestBody
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodySetupFutureUsage'
postPaymentIntentsIntentConfirmRequestBodySetupFutureUsage PostPaymentIntentsIntentConfirmRequestBody
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"shipping" Text
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyShipping'Variants
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentIntentsIntentConfirmRequestBody
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyShipping'Variants
postPaymentIntentsIntentConfirmRequestBodyShipping PostPaymentIntentsIntentConfirmRequestBody
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"use_stripe_sdk" Text -> Maybe Bool -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentIntentsIntentConfirmRequestBody -> Maybe Bool
postPaymentIntentsIntentConfirmRequestBodyUseStripeSdk PostPaymentIntentsIntentConfirmRequestBody
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: PostPaymentIntentsIntentConfirmRequestBody -> Encoding
toEncoding PostPaymentIntentsIntentConfirmRequestBody
obj = Series -> Encoding
Data.Aeson.Encoding.Internal.pairs ((Text
"client_secret" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentIntentsIntentConfirmRequestBody -> Maybe Text
postPaymentIntentsIntentConfirmRequestBodyClientSecret PostPaymentIntentsIntentConfirmRequestBody
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"error_on_requires_action" Text -> Maybe Bool -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentIntentsIntentConfirmRequestBody -> Maybe Bool
postPaymentIntentsIntentConfirmRequestBodyErrorOnRequiresAction PostPaymentIntentsIntentConfirmRequestBody
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..= PostPaymentIntentsIntentConfirmRequestBody -> Maybe [Text]
postPaymentIntentsIntentConfirmRequestBodyExpand PostPaymentIntentsIntentConfirmRequestBody
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"mandate" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentIntentsIntentConfirmRequestBody -> Maybe Text
postPaymentIntentsIntentConfirmRequestBodyMandate PostPaymentIntentsIntentConfirmRequestBody
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"mandate_data" Text
-> Maybe PostPaymentIntentsIntentConfirmRequestBodyMandateData'
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentIntentsIntentConfirmRequestBody
-> Maybe PostPaymentIntentsIntentConfirmRequestBodyMandateData'
postPaymentIntentsIntentConfirmRequestBodyMandateData PostPaymentIntentsIntentConfirmRequestBody
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"off_session" Text
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyOffSession'Variants
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentIntentsIntentConfirmRequestBody
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyOffSession'Variants
postPaymentIntentsIntentConfirmRequestBodyOffSession PostPaymentIntentsIntentConfirmRequestBody
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..= PostPaymentIntentsIntentConfirmRequestBody -> Maybe Text
postPaymentIntentsIntentConfirmRequestBodyPaymentMethod PostPaymentIntentsIntentConfirmRequestBody
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"payment_method_data" Text
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentIntentsIntentConfirmRequestBody
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData PostPaymentIntentsIntentConfirmRequestBody
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"payment_method_options" Text
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentIntentsIntentConfirmRequestBody
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions PostPaymentIntentsIntentConfirmRequestBody
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"payment_method_types" Text -> Maybe [Text] -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentIntentsIntentConfirmRequestBody -> Maybe [Text]
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodTypes PostPaymentIntentsIntentConfirmRequestBody
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"receipt_email" Text
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyReceiptEmail'Variants
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentIntentsIntentConfirmRequestBody
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyReceiptEmail'Variants
postPaymentIntentsIntentConfirmRequestBodyReceiptEmail PostPaymentIntentsIntentConfirmRequestBody
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"return_url" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentIntentsIntentConfirmRequestBody -> Maybe Text
postPaymentIntentsIntentConfirmRequestBodyReturnUrl PostPaymentIntentsIntentConfirmRequestBody
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"setup_future_usage" Text
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodySetupFutureUsage'
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentIntentsIntentConfirmRequestBody
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodySetupFutureUsage'
postPaymentIntentsIntentConfirmRequestBodySetupFutureUsage PostPaymentIntentsIntentConfirmRequestBody
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"shipping" Text
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyShipping'Variants
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentIntentsIntentConfirmRequestBody
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyShipping'Variants
postPaymentIntentsIntentConfirmRequestBodyShipping PostPaymentIntentsIntentConfirmRequestBody
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> (Text
"use_stripe_sdk" Text -> Maybe Bool -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentIntentsIntentConfirmRequestBody -> Maybe Bool
postPaymentIntentsIntentConfirmRequestBodyUseStripeSdk PostPaymentIntentsIntentConfirmRequestBody
obj)))))))))))))))

instance Data.Aeson.Types.FromJSON.FromJSON PostPaymentIntentsIntentConfirmRequestBody where
  parseJSON :: Value -> Parser PostPaymentIntentsIntentConfirmRequestBody
parseJSON = String
-> (Object -> Parser PostPaymentIntentsIntentConfirmRequestBody)
-> Value
-> Parser PostPaymentIntentsIntentConfirmRequestBody
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.Aeson.Types.FromJSON.withObject String
"PostPaymentIntentsIntentConfirmRequestBody" (\Object
obj -> (((((((((((((((Maybe Text
 -> Maybe Bool
 -> Maybe [Text]
 -> Maybe Text
 -> Maybe PostPaymentIntentsIntentConfirmRequestBodyMandateData'
 -> Maybe
      PostPaymentIntentsIntentConfirmRequestBodyOffSession'Variants
 -> Maybe Text
 -> Maybe
      PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'
 -> Maybe
      PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'
 -> Maybe [Text]
 -> Maybe
      PostPaymentIntentsIntentConfirmRequestBodyReceiptEmail'Variants
 -> Maybe Text
 -> Maybe
      PostPaymentIntentsIntentConfirmRequestBodySetupFutureUsage'
 -> Maybe
      PostPaymentIntentsIntentConfirmRequestBodyShipping'Variants
 -> Maybe Bool
 -> PostPaymentIntentsIntentConfirmRequestBody)
-> Parser
     (Maybe Text
      -> Maybe Bool
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe PostPaymentIntentsIntentConfirmRequestBodyMandateData'
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyOffSession'Variants
      -> Maybe Text
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'
      -> Maybe [Text]
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyReceiptEmail'Variants
      -> Maybe Text
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodySetupFutureUsage'
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyShipping'Variants
      -> Maybe Bool
      -> PostPaymentIntentsIntentConfirmRequestBody)
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure Maybe Text
-> Maybe Bool
-> Maybe [Text]
-> Maybe Text
-> Maybe PostPaymentIntentsIntentConfirmRequestBodyMandateData'
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyOffSession'Variants
-> Maybe Text
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'
-> Maybe [Text]
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyReceiptEmail'Variants
-> Maybe Text
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodySetupFutureUsage'
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyShipping'Variants
-> Maybe Bool
-> PostPaymentIntentsIntentConfirmRequestBody
PostPaymentIntentsIntentConfirmRequestBody Parser
  (Maybe Text
   -> Maybe Bool
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe PostPaymentIntentsIntentConfirmRequestBodyMandateData'
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyOffSession'Variants
   -> Maybe Text
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'
   -> Maybe [Text]
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyReceiptEmail'Variants
   -> Maybe Text
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodySetupFutureUsage'
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyShipping'Variants
   -> Maybe Bool
   -> PostPaymentIntentsIntentConfirmRequestBody)
-> Parser (Maybe Text)
-> Parser
     (Maybe Bool
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe PostPaymentIntentsIntentConfirmRequestBodyMandateData'
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyOffSession'Variants
      -> Maybe Text
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'
      -> Maybe [Text]
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyReceiptEmail'Variants
      -> Maybe Text
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodySetupFutureUsage'
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyShipping'Variants
      -> Maybe Bool
      -> PostPaymentIntentsIntentConfirmRequestBody)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"client_secret")) Parser
  (Maybe Bool
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe PostPaymentIntentsIntentConfirmRequestBodyMandateData'
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyOffSession'Variants
   -> Maybe Text
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'
   -> Maybe [Text]
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyReceiptEmail'Variants
   -> Maybe Text
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodySetupFutureUsage'
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyShipping'Variants
   -> Maybe Bool
   -> PostPaymentIntentsIntentConfirmRequestBody)
-> Parser (Maybe Bool)
-> Parser
     (Maybe [Text]
      -> Maybe Text
      -> Maybe PostPaymentIntentsIntentConfirmRequestBodyMandateData'
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyOffSession'Variants
      -> Maybe Text
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'
      -> Maybe [Text]
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyReceiptEmail'Variants
      -> Maybe Text
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodySetupFutureUsage'
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyShipping'Variants
      -> Maybe Bool
      -> PostPaymentIntentsIntentConfirmRequestBody)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"error_on_requires_action")) Parser
  (Maybe [Text]
   -> Maybe Text
   -> Maybe PostPaymentIntentsIntentConfirmRequestBodyMandateData'
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyOffSession'Variants
   -> Maybe Text
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'
   -> Maybe [Text]
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyReceiptEmail'Variants
   -> Maybe Text
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodySetupFutureUsage'
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyShipping'Variants
   -> Maybe Bool
   -> PostPaymentIntentsIntentConfirmRequestBody)
-> Parser (Maybe [Text])
-> Parser
     (Maybe Text
      -> Maybe PostPaymentIntentsIntentConfirmRequestBodyMandateData'
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyOffSession'Variants
      -> Maybe Text
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'
      -> Maybe [Text]
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyReceiptEmail'Variants
      -> Maybe Text
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodySetupFutureUsage'
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyShipping'Variants
      -> Maybe Bool
      -> PostPaymentIntentsIntentConfirmRequestBody)
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 Text
   -> Maybe PostPaymentIntentsIntentConfirmRequestBodyMandateData'
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyOffSession'Variants
   -> Maybe Text
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'
   -> Maybe [Text]
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyReceiptEmail'Variants
   -> Maybe Text
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodySetupFutureUsage'
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyShipping'Variants
   -> Maybe Bool
   -> PostPaymentIntentsIntentConfirmRequestBody)
-> Parser (Maybe Text)
-> Parser
     (Maybe PostPaymentIntentsIntentConfirmRequestBodyMandateData'
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyOffSession'Variants
      -> Maybe Text
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'
      -> Maybe [Text]
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyReceiptEmail'Variants
      -> Maybe Text
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodySetupFutureUsage'
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyShipping'Variants
      -> Maybe Bool
      -> PostPaymentIntentsIntentConfirmRequestBody)
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
"mandate")) Parser
  (Maybe PostPaymentIntentsIntentConfirmRequestBodyMandateData'
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyOffSession'Variants
   -> Maybe Text
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'
   -> Maybe [Text]
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyReceiptEmail'Variants
   -> Maybe Text
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodySetupFutureUsage'
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyShipping'Variants
   -> Maybe Bool
   -> PostPaymentIntentsIntentConfirmRequestBody)
-> Parser
     (Maybe PostPaymentIntentsIntentConfirmRequestBodyMandateData')
-> Parser
     (Maybe
        PostPaymentIntentsIntentConfirmRequestBodyOffSession'Variants
      -> Maybe Text
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'
      -> Maybe [Text]
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyReceiptEmail'Variants
      -> Maybe Text
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodySetupFutureUsage'
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyShipping'Variants
      -> Maybe Bool
      -> PostPaymentIntentsIntentConfirmRequestBody)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     (Maybe PostPaymentIntentsIntentConfirmRequestBodyMandateData')
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"mandate_data")) Parser
  (Maybe
     PostPaymentIntentsIntentConfirmRequestBodyOffSession'Variants
   -> Maybe Text
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'
   -> Maybe [Text]
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyReceiptEmail'Variants
   -> Maybe Text
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodySetupFutureUsage'
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyShipping'Variants
   -> Maybe Bool
   -> PostPaymentIntentsIntentConfirmRequestBody)
-> Parser
     (Maybe
        PostPaymentIntentsIntentConfirmRequestBodyOffSession'Variants)
-> Parser
     (Maybe Text
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'
      -> Maybe [Text]
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyReceiptEmail'Variants
      -> Maybe Text
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodySetupFutureUsage'
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyShipping'Variants
      -> Maybe Bool
      -> PostPaymentIntentsIntentConfirmRequestBody)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     (Maybe
        PostPaymentIntentsIntentConfirmRequestBodyOffSession'Variants)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"off_session")) Parser
  (Maybe Text
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'
   -> Maybe [Text]
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyReceiptEmail'Variants
   -> Maybe Text
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodySetupFutureUsage'
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyShipping'Variants
   -> Maybe Bool
   -> PostPaymentIntentsIntentConfirmRequestBody)
-> Parser (Maybe Text)
-> Parser
     (Maybe PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'
      -> Maybe [Text]
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyReceiptEmail'Variants
      -> Maybe Text
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodySetupFutureUsage'
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyShipping'Variants
      -> Maybe Bool
      -> PostPaymentIntentsIntentConfirmRequestBody)
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 PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'
   -> Maybe [Text]
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyReceiptEmail'Variants
   -> Maybe Text
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodySetupFutureUsage'
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyShipping'Variants
   -> Maybe Bool
   -> PostPaymentIntentsIntentConfirmRequestBody)
-> Parser
     (Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData')
-> Parser
     (Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'
      -> Maybe [Text]
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyReceiptEmail'Variants
      -> Maybe Text
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodySetupFutureUsage'
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyShipping'Variants
      -> Maybe Bool
      -> PostPaymentIntentsIntentConfirmRequestBody)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     (Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData')
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"payment_method_data")) Parser
  (Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'
   -> Maybe [Text]
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyReceiptEmail'Variants
   -> Maybe Text
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodySetupFutureUsage'
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyShipping'Variants
   -> Maybe Bool
   -> PostPaymentIntentsIntentConfirmRequestBody)
-> Parser
     (Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions')
-> Parser
     (Maybe [Text]
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyReceiptEmail'Variants
      -> Maybe Text
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodySetupFutureUsage'
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyShipping'Variants
      -> Maybe Bool
      -> PostPaymentIntentsIntentConfirmRequestBody)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     (Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions')
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"payment_method_options")) Parser
  (Maybe [Text]
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyReceiptEmail'Variants
   -> Maybe Text
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodySetupFutureUsage'
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyShipping'Variants
   -> Maybe Bool
   -> PostPaymentIntentsIntentConfirmRequestBody)
-> Parser (Maybe [Text])
-> Parser
     (Maybe
        PostPaymentIntentsIntentConfirmRequestBodyReceiptEmail'Variants
      -> Maybe Text
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodySetupFutureUsage'
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyShipping'Variants
      -> Maybe Bool
      -> PostPaymentIntentsIntentConfirmRequestBody)
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_types")) Parser
  (Maybe
     PostPaymentIntentsIntentConfirmRequestBodyReceiptEmail'Variants
   -> Maybe Text
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodySetupFutureUsage'
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyShipping'Variants
   -> Maybe Bool
   -> PostPaymentIntentsIntentConfirmRequestBody)
-> Parser
     (Maybe
        PostPaymentIntentsIntentConfirmRequestBodyReceiptEmail'Variants)
-> Parser
     (Maybe Text
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodySetupFutureUsage'
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyShipping'Variants
      -> Maybe Bool
      -> PostPaymentIntentsIntentConfirmRequestBody)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     (Maybe
        PostPaymentIntentsIntentConfirmRequestBodyReceiptEmail'Variants)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"receipt_email")) Parser
  (Maybe Text
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodySetupFutureUsage'
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyShipping'Variants
   -> Maybe Bool
   -> PostPaymentIntentsIntentConfirmRequestBody)
-> Parser (Maybe Text)
-> Parser
     (Maybe PostPaymentIntentsIntentConfirmRequestBodySetupFutureUsage'
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyShipping'Variants
      -> Maybe Bool
      -> PostPaymentIntentsIntentConfirmRequestBody)
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
"return_url")) Parser
  (Maybe PostPaymentIntentsIntentConfirmRequestBodySetupFutureUsage'
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyShipping'Variants
   -> Maybe Bool
   -> PostPaymentIntentsIntentConfirmRequestBody)
-> Parser
     (Maybe PostPaymentIntentsIntentConfirmRequestBodySetupFutureUsage')
-> Parser
     (Maybe PostPaymentIntentsIntentConfirmRequestBodyShipping'Variants
      -> Maybe Bool -> PostPaymentIntentsIntentConfirmRequestBody)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     (Maybe PostPaymentIntentsIntentConfirmRequestBodySetupFutureUsage')
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"setup_future_usage")) Parser
  (Maybe PostPaymentIntentsIntentConfirmRequestBodyShipping'Variants
   -> Maybe Bool -> PostPaymentIntentsIntentConfirmRequestBody)
-> Parser
     (Maybe PostPaymentIntentsIntentConfirmRequestBodyShipping'Variants)
-> Parser
     (Maybe Bool -> PostPaymentIntentsIntentConfirmRequestBody)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     (Maybe PostPaymentIntentsIntentConfirmRequestBodyShipping'Variants)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"shipping")) Parser (Maybe Bool -> PostPaymentIntentsIntentConfirmRequestBody)
-> Parser (Maybe Bool)
-> Parser PostPaymentIntentsIntentConfirmRequestBody
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"use_stripe_sdk"))

-- | Create a new 'PostPaymentIntentsIntentConfirmRequestBody' with all required fields.
mkPostPaymentIntentsIntentConfirmRequestBody :: PostPaymentIntentsIntentConfirmRequestBody
mkPostPaymentIntentsIntentConfirmRequestBody :: PostPaymentIntentsIntentConfirmRequestBody
mkPostPaymentIntentsIntentConfirmRequestBody =
  PostPaymentIntentsIntentConfirmRequestBody :: Maybe Text
-> Maybe Bool
-> Maybe [Text]
-> Maybe Text
-> Maybe PostPaymentIntentsIntentConfirmRequestBodyMandateData'
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyOffSession'Variants
-> Maybe Text
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'
-> Maybe [Text]
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyReceiptEmail'Variants
-> Maybe Text
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodySetupFutureUsage'
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyShipping'Variants
-> Maybe Bool
-> PostPaymentIntentsIntentConfirmRequestBody
PostPaymentIntentsIntentConfirmRequestBody
    { postPaymentIntentsIntentConfirmRequestBodyClientSecret :: Maybe Text
postPaymentIntentsIntentConfirmRequestBodyClientSecret = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      postPaymentIntentsIntentConfirmRequestBodyErrorOnRequiresAction :: Maybe Bool
postPaymentIntentsIntentConfirmRequestBodyErrorOnRequiresAction = Maybe Bool
forall a. Maybe a
GHC.Maybe.Nothing,
      postPaymentIntentsIntentConfirmRequestBodyExpand :: Maybe [Text]
postPaymentIntentsIntentConfirmRequestBodyExpand = Maybe [Text]
forall a. Maybe a
GHC.Maybe.Nothing,
      postPaymentIntentsIntentConfirmRequestBodyMandate :: Maybe Text
postPaymentIntentsIntentConfirmRequestBodyMandate = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      postPaymentIntentsIntentConfirmRequestBodyMandateData :: Maybe PostPaymentIntentsIntentConfirmRequestBodyMandateData'
postPaymentIntentsIntentConfirmRequestBodyMandateData = Maybe PostPaymentIntentsIntentConfirmRequestBodyMandateData'
forall a. Maybe a
GHC.Maybe.Nothing,
      postPaymentIntentsIntentConfirmRequestBodyOffSession :: Maybe PostPaymentIntentsIntentConfirmRequestBodyOffSession'Variants
postPaymentIntentsIntentConfirmRequestBodyOffSession = Maybe PostPaymentIntentsIntentConfirmRequestBodyOffSession'Variants
forall a. Maybe a
GHC.Maybe.Nothing,
      postPaymentIntentsIntentConfirmRequestBodyPaymentMethod :: Maybe Text
postPaymentIntentsIntentConfirmRequestBodyPaymentMethod = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData :: Maybe PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData = Maybe PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'
forall a. Maybe a
GHC.Maybe.Nothing,
      postPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions :: Maybe
  PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions = Maybe
  PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'
forall a. Maybe a
GHC.Maybe.Nothing,
      postPaymentIntentsIntentConfirmRequestBodyPaymentMethodTypes :: Maybe [Text]
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodTypes = Maybe [Text]
forall a. Maybe a
GHC.Maybe.Nothing,
      postPaymentIntentsIntentConfirmRequestBodyReceiptEmail :: Maybe
  PostPaymentIntentsIntentConfirmRequestBodyReceiptEmail'Variants
postPaymentIntentsIntentConfirmRequestBodyReceiptEmail = Maybe
  PostPaymentIntentsIntentConfirmRequestBodyReceiptEmail'Variants
forall a. Maybe a
GHC.Maybe.Nothing,
      postPaymentIntentsIntentConfirmRequestBodyReturnUrl :: Maybe Text
postPaymentIntentsIntentConfirmRequestBodyReturnUrl = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      postPaymentIntentsIntentConfirmRequestBodySetupFutureUsage :: Maybe PostPaymentIntentsIntentConfirmRequestBodySetupFutureUsage'
postPaymentIntentsIntentConfirmRequestBodySetupFutureUsage = Maybe PostPaymentIntentsIntentConfirmRequestBodySetupFutureUsage'
forall a. Maybe a
GHC.Maybe.Nothing,
      postPaymentIntentsIntentConfirmRequestBodyShipping :: Maybe PostPaymentIntentsIntentConfirmRequestBodyShipping'Variants
postPaymentIntentsIntentConfirmRequestBodyShipping = Maybe PostPaymentIntentsIntentConfirmRequestBodyShipping'Variants
forall a. Maybe a
GHC.Maybe.Nothing,
      postPaymentIntentsIntentConfirmRequestBodyUseStripeSdk :: Maybe Bool
postPaymentIntentsIntentConfirmRequestBodyUseStripeSdk = Maybe Bool
forall a. Maybe a
GHC.Maybe.Nothing
    }

-- | Defines the object schema located at @paths.\/v1\/payment_intents\/{intent}\/confirm.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.mandate_data.anyOf@ in the specification.
--
-- This hash contains details about the Mandate to create
data PostPaymentIntentsIntentConfirmRequestBodyMandateData' = PostPaymentIntentsIntentConfirmRequestBodyMandateData'
  { -- | customer_acceptance
    PostPaymentIntentsIntentConfirmRequestBodyMandateData'
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'
postPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance :: (GHC.Maybe.Maybe PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance')
  }
  deriving
    ( Int
-> PostPaymentIntentsIntentConfirmRequestBodyMandateData'
-> String
-> String
[PostPaymentIntentsIntentConfirmRequestBodyMandateData']
-> String -> String
PostPaymentIntentsIntentConfirmRequestBodyMandateData' -> String
(Int
 -> PostPaymentIntentsIntentConfirmRequestBodyMandateData'
 -> String
 -> String)
-> (PostPaymentIntentsIntentConfirmRequestBodyMandateData'
    -> String)
-> ([PostPaymentIntentsIntentConfirmRequestBodyMandateData']
    -> String -> String)
-> Show PostPaymentIntentsIntentConfirmRequestBodyMandateData'
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostPaymentIntentsIntentConfirmRequestBodyMandateData']
-> String -> String
$cshowList :: [PostPaymentIntentsIntentConfirmRequestBodyMandateData']
-> String -> String
show :: PostPaymentIntentsIntentConfirmRequestBodyMandateData' -> String
$cshow :: PostPaymentIntentsIntentConfirmRequestBodyMandateData' -> String
showsPrec :: Int
-> PostPaymentIntentsIntentConfirmRequestBodyMandateData'
-> String
-> String
$cshowsPrec :: Int
-> PostPaymentIntentsIntentConfirmRequestBodyMandateData'
-> String
-> String
GHC.Show.Show,
      PostPaymentIntentsIntentConfirmRequestBodyMandateData'
-> PostPaymentIntentsIntentConfirmRequestBodyMandateData' -> Bool
(PostPaymentIntentsIntentConfirmRequestBodyMandateData'
 -> PostPaymentIntentsIntentConfirmRequestBodyMandateData' -> Bool)
-> (PostPaymentIntentsIntentConfirmRequestBodyMandateData'
    -> PostPaymentIntentsIntentConfirmRequestBodyMandateData' -> Bool)
-> Eq PostPaymentIntentsIntentConfirmRequestBodyMandateData'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostPaymentIntentsIntentConfirmRequestBodyMandateData'
-> PostPaymentIntentsIntentConfirmRequestBodyMandateData' -> Bool
$c/= :: PostPaymentIntentsIntentConfirmRequestBodyMandateData'
-> PostPaymentIntentsIntentConfirmRequestBodyMandateData' -> Bool
== :: PostPaymentIntentsIntentConfirmRequestBodyMandateData'
-> PostPaymentIntentsIntentConfirmRequestBodyMandateData' -> Bool
$c== :: PostPaymentIntentsIntentConfirmRequestBodyMandateData'
-> PostPaymentIntentsIntentConfirmRequestBodyMandateData' -> Bool
GHC.Classes.Eq
    )

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

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

-- | Create a new 'PostPaymentIntentsIntentConfirmRequestBodyMandateData'' with all required fields.
mkPostPaymentIntentsIntentConfirmRequestBodyMandateData' :: PostPaymentIntentsIntentConfirmRequestBodyMandateData'
mkPostPaymentIntentsIntentConfirmRequestBodyMandateData' :: PostPaymentIntentsIntentConfirmRequestBodyMandateData'
mkPostPaymentIntentsIntentConfirmRequestBodyMandateData' = PostPaymentIntentsIntentConfirmRequestBodyMandateData' :: Maybe
  PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'
-> PostPaymentIntentsIntentConfirmRequestBodyMandateData'
PostPaymentIntentsIntentConfirmRequestBodyMandateData' {postPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance :: Maybe
  PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'
postPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance = Maybe
  PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'
forall a. Maybe a
GHC.Maybe.Nothing}

-- | Defines the object schema located at @paths.\/v1\/payment_intents\/{intent}\/confirm.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.mandate_data.anyOf.properties.customer_acceptance@ in the specification.
data PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance' = PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'
  { -- | accepted_at
    PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'
-> Maybe Int
postPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'AcceptedAt :: (GHC.Maybe.Maybe GHC.Types.Int),
    -- | offline
    PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'
-> Maybe Object
postPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Offline :: (GHC.Maybe.Maybe Data.Aeson.Types.Internal.Object),
    -- | online
    PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Online'
postPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Online :: (GHC.Maybe.Maybe PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Online'),
    -- | type
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'
-> PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Type'
postPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Type :: PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Type'
  }
  deriving
    ( Int
-> PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'
-> String
-> String
[PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance']
-> String -> String
PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'
-> String
(Int
 -> PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'
 -> String
 -> String)
-> (PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'
    -> String)
-> ([PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance']
    -> String -> String)
-> Show
     PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance']
-> String -> String
$cshowList :: [PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance']
-> String -> String
show :: PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'
-> String
$cshow :: PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'
-> String
showsPrec :: Int
-> PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'
-> String
-> String
$cshowsPrec :: Int
-> PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'
-> String
-> String
GHC.Show.Show,
      PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'
-> PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'
-> Bool
(PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'
 -> PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'
 -> Bool)
-> (PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'
    -> PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'
    -> Bool)
-> Eq
     PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'
-> PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'
-> Bool
$c/= :: PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'
-> PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'
-> Bool
== :: PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'
-> PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'
-> Bool
$c== :: PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'
-> PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'
-> Bool
GHC.Classes.Eq
    )

instance Data.Aeson.Types.ToJSON.ToJSON PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance' where
  toJSON :: PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'
-> Value
toJSON PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'
obj = [Pair] -> Value
Data.Aeson.Types.Internal.object (Text
"accepted_at" Text -> Maybe Int -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'
-> Maybe Int
postPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'AcceptedAt PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"offline" Text -> Maybe Object -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'
-> Maybe Object
postPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Offline PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"online" Text
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Online'
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Online'
postPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Online PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"type" Text
-> PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Type'
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'
-> PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Type'
postPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Type PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'
-> Encoding
toEncoding PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'
obj = Series -> Encoding
Data.Aeson.Encoding.Internal.pairs ((Text
"accepted_at" Text -> Maybe Int -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'
-> Maybe Int
postPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'AcceptedAt PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"offline" Text -> Maybe Object -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'
-> Maybe Object
postPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Offline PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"online" Text
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Online'
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Online'
postPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Online PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> (Text
"type" Text
-> PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Type'
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'
-> PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Type'
postPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Type PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'
obj))))

instance Data.Aeson.Types.FromJSON.FromJSON PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance' where
  parseJSON :: Value
-> Parser
     PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'
parseJSON = String
-> (Object
    -> Parser
         PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance')
-> Value
-> Parser
     PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.Aeson.Types.FromJSON.withObject String
"PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'" (\Object
obj -> ((((Maybe Int
 -> Maybe Object
 -> Maybe
      PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Online'
 -> PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Type'
 -> PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance')
-> Parser
     (Maybe Int
      -> Maybe Object
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Online'
      -> PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Type'
      -> PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance')
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure Maybe Int
-> Maybe Object
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Online'
-> PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Type'
-> PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'
PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance' Parser
  (Maybe Int
   -> Maybe Object
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Online'
   -> PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Type'
   -> PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance')
-> Parser (Maybe Int)
-> Parser
     (Maybe Object
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Online'
      -> PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Type'
      -> PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance')
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
"accepted_at")) Parser
  (Maybe Object
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Online'
   -> PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Type'
   -> PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance')
-> Parser (Maybe Object)
-> Parser
     (Maybe
        PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Online'
      -> PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Type'
      -> PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance')
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
"offline")) Parser
  (Maybe
     PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Online'
   -> PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Type'
   -> PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance')
-> Parser
     (Maybe
        PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Online')
-> Parser
     (PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Type'
      -> PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     (Maybe
        PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Online')
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"online")) Parser
  (PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Type'
   -> PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance')
-> Parser
     PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Type'
-> Parser
     PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Type'
forall a. FromJSON a => Object -> Text -> Parser a
Data.Aeson.Types.FromJSON..: Text
"type"))

-- | Create a new 'PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'' with all required fields.
mkPostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance' ::
  -- | 'postPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Type'
  PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Type' ->
  PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'
mkPostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance' :: PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Type'
-> PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'
mkPostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance' PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Type'
postPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Type =
  PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance' :: Maybe Int
-> Maybe Object
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Online'
-> PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Type'
-> PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'
PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'
    { postPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'AcceptedAt :: Maybe Int
postPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'AcceptedAt = Maybe Int
forall a. Maybe a
GHC.Maybe.Nothing,
      postPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Offline :: Maybe Object
postPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Offline = Maybe Object
forall a. Maybe a
GHC.Maybe.Nothing,
      postPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Online :: Maybe
  PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Online'
postPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Online = Maybe
  PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Online'
forall a. Maybe a
GHC.Maybe.Nothing,
      postPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Type :: PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Type'
postPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Type = PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Type'
postPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Type
    }

-- | Defines the object schema located at @paths.\/v1\/payment_intents\/{intent}\/confirm.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.mandate_data.anyOf.properties.customer_acceptance.properties.online@ in the specification.
data PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Online' = PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Online'
  { -- | ip_address
    PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Online'
-> Text
postPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Online'IpAddress :: Data.Text.Internal.Text,
    -- | user_agent
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Online'
-> Text
postPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Online'UserAgent :: Data.Text.Internal.Text
  }
  deriving
    ( Int
-> PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Online'
-> String
-> String
[PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Online']
-> String -> String
PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Online'
-> String
(Int
 -> PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Online'
 -> String
 -> String)
-> (PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Online'
    -> String)
-> ([PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Online']
    -> String -> String)
-> Show
     PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Online'
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Online']
-> String -> String
$cshowList :: [PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Online']
-> String -> String
show :: PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Online'
-> String
$cshow :: PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Online'
-> String
showsPrec :: Int
-> PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Online'
-> String
-> String
$cshowsPrec :: Int
-> PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Online'
-> String
-> String
GHC.Show.Show,
      PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Online'
-> PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Online'
-> Bool
(PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Online'
 -> PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Online'
 -> Bool)
-> (PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Online'
    -> PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Online'
    -> Bool)
-> Eq
     PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Online'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Online'
-> PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Online'
-> Bool
$c/= :: PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Online'
-> PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Online'
-> Bool
== :: PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Online'
-> PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Online'
-> Bool
$c== :: PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Online'
-> PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Online'
-> Bool
GHC.Classes.Eq
    )

instance Data.Aeson.Types.ToJSON.ToJSON PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Online' where
  toJSON :: PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Online'
-> Value
toJSON PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Online'
obj = [Pair] -> Value
Data.Aeson.Types.Internal.object (Text
"ip_address" Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Online'
-> Text
postPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Online'IpAddress PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Online'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"user_agent" Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Online'
-> Text
postPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Online'UserAgent PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Online'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Online'
-> Encoding
toEncoding PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Online'
obj = Series -> Encoding
Data.Aeson.Encoding.Internal.pairs ((Text
"ip_address" Text -> Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Online'
-> Text
postPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Online'IpAddress PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Online'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> (Text
"user_agent" Text -> Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Online'
-> Text
postPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Online'UserAgent PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Online'
obj))

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

-- | Create a new 'PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Online'' with all required fields.
mkPostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Online' ::
  -- | 'postPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Online'IpAddress'
  Data.Text.Internal.Text ->
  -- | 'postPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Online'UserAgent'
  Data.Text.Internal.Text ->
  PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Online'
mkPostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Online' :: Text
-> Text
-> PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Online'
mkPostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Online' Text
postPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Online'IpAddress Text
postPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Online'UserAgent =
  PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Online' :: Text
-> Text
-> PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Online'
PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Online'
    { postPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Online'IpAddress :: Text
postPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Online'IpAddress = Text
postPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Online'IpAddress,
      postPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Online'UserAgent :: Text
postPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Online'UserAgent = Text
postPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Online'UserAgent
    }

-- | Defines the enum schema located at @paths.\/v1\/payment_intents\/{intent}\/confirm.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.mandate_data.anyOf.properties.customer_acceptance.properties.type@ in the specification.
data PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Type'
  = -- | This case is used if the value encountered during decoding does not match any of the provided cases in the specification.
    PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Type'Other Data.Aeson.Types.Internal.Value
  | -- | This constructor can be used to send values to the server which are not present in the specification yet.
    PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Type'Typed Data.Text.Internal.Text
  | -- | Represents the JSON value @"offline"@
    PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Type'EnumOffline
  | -- | Represents the JSON value @"online"@
    PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Type'EnumOnline
  deriving (Int
-> PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Type'
-> String
-> String
[PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Type']
-> String -> String
PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Type'
-> String
(Int
 -> PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Type'
 -> String
 -> String)
-> (PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Type'
    -> String)
-> ([PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Type']
    -> String -> String)
-> Show
     PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Type'
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Type']
-> String -> String
$cshowList :: [PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Type']
-> String -> String
show :: PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Type'
-> String
$cshow :: PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Type'
-> String
showsPrec :: Int
-> PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Type'
-> String
-> String
$cshowsPrec :: Int
-> PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Type'
-> String
-> String
GHC.Show.Show, PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Type'
-> PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Type'
-> Bool
(PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Type'
 -> PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Type'
 -> Bool)
-> (PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Type'
    -> PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Type'
    -> Bool)
-> Eq
     PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Type'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Type'
-> PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Type'
-> Bool
$c/= :: PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Type'
-> PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Type'
-> Bool
== :: PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Type'
-> PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Type'
-> Bool
$c== :: PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Type'
-> PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Type'
-> Bool
GHC.Classes.Eq)

instance Data.Aeson.Types.ToJSON.ToJSON PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Type' where
  toJSON :: PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Type'
-> Value
toJSON (PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Type'Other Value
val) = Value
val
  toJSON (PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Type'Typed Text
val) = Text -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON Text
val
  toJSON (PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Type'
PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Type'EnumOffline) = Value
"offline"
  toJSON (PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Type'
PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Type'EnumOnline) = Value
"online"

instance Data.Aeson.Types.FromJSON.FromJSON PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Type' where
  parseJSON :: Value
-> Parser
     PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Type'
parseJSON Value
val =
    PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Type'
-> Parser
     PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Type'
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure
      ( if
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"offline" -> PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Type'
PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Type'EnumOffline
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"online" -> PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Type'
PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Type'EnumOnline
            | Bool
GHC.Base.otherwise -> Value
-> PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Type'
PostPaymentIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Type'Other Value
val
      )

-- | Defines the enum schema located at @paths.\/v1\/payment_intents\/{intent}\/confirm.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.off_session.anyOf@ in the specification.
data PostPaymentIntentsIntentConfirmRequestBodyOffSession'OneOf2
  = -- | This case is used if the value encountered during decoding does not match any of the provided cases in the specification.
    PostPaymentIntentsIntentConfirmRequestBodyOffSession'OneOf2Other Data.Aeson.Types.Internal.Value
  | -- | This constructor can be used to send values to the server which are not present in the specification yet.
    PostPaymentIntentsIntentConfirmRequestBodyOffSession'OneOf2Typed Data.Text.Internal.Text
  | -- | Represents the JSON value @"one_off"@
    PostPaymentIntentsIntentConfirmRequestBodyOffSession'OneOf2EnumOneOff
  | -- | Represents the JSON value @"recurring"@
    PostPaymentIntentsIntentConfirmRequestBodyOffSession'OneOf2EnumRecurring
  deriving (Int
-> PostPaymentIntentsIntentConfirmRequestBodyOffSession'OneOf2
-> String
-> String
[PostPaymentIntentsIntentConfirmRequestBodyOffSession'OneOf2]
-> String -> String
PostPaymentIntentsIntentConfirmRequestBodyOffSession'OneOf2
-> String
(Int
 -> PostPaymentIntentsIntentConfirmRequestBodyOffSession'OneOf2
 -> String
 -> String)
-> (PostPaymentIntentsIntentConfirmRequestBodyOffSession'OneOf2
    -> String)
-> ([PostPaymentIntentsIntentConfirmRequestBodyOffSession'OneOf2]
    -> String -> String)
-> Show PostPaymentIntentsIntentConfirmRequestBodyOffSession'OneOf2
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostPaymentIntentsIntentConfirmRequestBodyOffSession'OneOf2]
-> String -> String
$cshowList :: [PostPaymentIntentsIntentConfirmRequestBodyOffSession'OneOf2]
-> String -> String
show :: PostPaymentIntentsIntentConfirmRequestBodyOffSession'OneOf2
-> String
$cshow :: PostPaymentIntentsIntentConfirmRequestBodyOffSession'OneOf2
-> String
showsPrec :: Int
-> PostPaymentIntentsIntentConfirmRequestBodyOffSession'OneOf2
-> String
-> String
$cshowsPrec :: Int
-> PostPaymentIntentsIntentConfirmRequestBodyOffSession'OneOf2
-> String
-> String
GHC.Show.Show, PostPaymentIntentsIntentConfirmRequestBodyOffSession'OneOf2
-> PostPaymentIntentsIntentConfirmRequestBodyOffSession'OneOf2
-> Bool
(PostPaymentIntentsIntentConfirmRequestBodyOffSession'OneOf2
 -> PostPaymentIntentsIntentConfirmRequestBodyOffSession'OneOf2
 -> Bool)
-> (PostPaymentIntentsIntentConfirmRequestBodyOffSession'OneOf2
    -> PostPaymentIntentsIntentConfirmRequestBodyOffSession'OneOf2
    -> Bool)
-> Eq PostPaymentIntentsIntentConfirmRequestBodyOffSession'OneOf2
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostPaymentIntentsIntentConfirmRequestBodyOffSession'OneOf2
-> PostPaymentIntentsIntentConfirmRequestBodyOffSession'OneOf2
-> Bool
$c/= :: PostPaymentIntentsIntentConfirmRequestBodyOffSession'OneOf2
-> PostPaymentIntentsIntentConfirmRequestBodyOffSession'OneOf2
-> Bool
== :: PostPaymentIntentsIntentConfirmRequestBodyOffSession'OneOf2
-> PostPaymentIntentsIntentConfirmRequestBodyOffSession'OneOf2
-> Bool
$c== :: PostPaymentIntentsIntentConfirmRequestBodyOffSession'OneOf2
-> PostPaymentIntentsIntentConfirmRequestBodyOffSession'OneOf2
-> Bool
GHC.Classes.Eq)

instance Data.Aeson.Types.ToJSON.ToJSON PostPaymentIntentsIntentConfirmRequestBodyOffSession'OneOf2 where
  toJSON :: PostPaymentIntentsIntentConfirmRequestBodyOffSession'OneOf2
-> Value
toJSON (PostPaymentIntentsIntentConfirmRequestBodyOffSession'OneOf2Other Value
val) = Value
val
  toJSON (PostPaymentIntentsIntentConfirmRequestBodyOffSession'OneOf2Typed Text
val) = Text -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON Text
val
  toJSON (PostPaymentIntentsIntentConfirmRequestBodyOffSession'OneOf2
PostPaymentIntentsIntentConfirmRequestBodyOffSession'OneOf2EnumOneOff) = Value
"one_off"
  toJSON (PostPaymentIntentsIntentConfirmRequestBodyOffSession'OneOf2
PostPaymentIntentsIntentConfirmRequestBodyOffSession'OneOf2EnumRecurring) = Value
"recurring"

instance Data.Aeson.Types.FromJSON.FromJSON PostPaymentIntentsIntentConfirmRequestBodyOffSession'OneOf2 where
  parseJSON :: Value
-> Parser
     PostPaymentIntentsIntentConfirmRequestBodyOffSession'OneOf2
parseJSON Value
val =
    PostPaymentIntentsIntentConfirmRequestBodyOffSession'OneOf2
-> Parser
     PostPaymentIntentsIntentConfirmRequestBodyOffSession'OneOf2
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
"one_off" -> PostPaymentIntentsIntentConfirmRequestBodyOffSession'OneOf2
PostPaymentIntentsIntentConfirmRequestBodyOffSession'OneOf2EnumOneOff
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"recurring" -> PostPaymentIntentsIntentConfirmRequestBodyOffSession'OneOf2
PostPaymentIntentsIntentConfirmRequestBodyOffSession'OneOf2EnumRecurring
            | Bool
GHC.Base.otherwise -> Value
-> PostPaymentIntentsIntentConfirmRequestBodyOffSession'OneOf2
PostPaymentIntentsIntentConfirmRequestBodyOffSession'OneOf2Other Value
val
      )

-- | Defines the oneOf schema located at @paths.\/v1\/payment_intents\/{intent}\/confirm.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.off_session.anyOf@ in the specification.
--
-- Set to \`true\` to indicate that the customer is not in your checkout flow during this payment attempt, and therefore is unable to authenticate. This parameter is intended for scenarios where you collect card details and [charge them later](https:\/\/stripe.com\/docs\/payments\/cards\/charging-saved-cards).
data PostPaymentIntentsIntentConfirmRequestBodyOffSession'Variants
  = PostPaymentIntentsIntentConfirmRequestBodyOffSession'Bool GHC.Types.Bool
  | PostPaymentIntentsIntentConfirmRequestBodyOffSession'PostPaymentIntentsIntentConfirmRequestBodyOffSession'OneOf2 PostPaymentIntentsIntentConfirmRequestBodyOffSession'OneOf2
  deriving (Int
-> PostPaymentIntentsIntentConfirmRequestBodyOffSession'Variants
-> String
-> String
[PostPaymentIntentsIntentConfirmRequestBodyOffSession'Variants]
-> String -> String
PostPaymentIntentsIntentConfirmRequestBodyOffSession'Variants
-> String
(Int
 -> PostPaymentIntentsIntentConfirmRequestBodyOffSession'Variants
 -> String
 -> String)
-> (PostPaymentIntentsIntentConfirmRequestBodyOffSession'Variants
    -> String)
-> ([PostPaymentIntentsIntentConfirmRequestBodyOffSession'Variants]
    -> String -> String)
-> Show
     PostPaymentIntentsIntentConfirmRequestBodyOffSession'Variants
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostPaymentIntentsIntentConfirmRequestBodyOffSession'Variants]
-> String -> String
$cshowList :: [PostPaymentIntentsIntentConfirmRequestBodyOffSession'Variants]
-> String -> String
show :: PostPaymentIntentsIntentConfirmRequestBodyOffSession'Variants
-> String
$cshow :: PostPaymentIntentsIntentConfirmRequestBodyOffSession'Variants
-> String
showsPrec :: Int
-> PostPaymentIntentsIntentConfirmRequestBodyOffSession'Variants
-> String
-> String
$cshowsPrec :: Int
-> PostPaymentIntentsIntentConfirmRequestBodyOffSession'Variants
-> String
-> String
GHC.Show.Show, PostPaymentIntentsIntentConfirmRequestBodyOffSession'Variants
-> PostPaymentIntentsIntentConfirmRequestBodyOffSession'Variants
-> Bool
(PostPaymentIntentsIntentConfirmRequestBodyOffSession'Variants
 -> PostPaymentIntentsIntentConfirmRequestBodyOffSession'Variants
 -> Bool)
-> (PostPaymentIntentsIntentConfirmRequestBodyOffSession'Variants
    -> PostPaymentIntentsIntentConfirmRequestBodyOffSession'Variants
    -> Bool)
-> Eq PostPaymentIntentsIntentConfirmRequestBodyOffSession'Variants
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostPaymentIntentsIntentConfirmRequestBodyOffSession'Variants
-> PostPaymentIntentsIntentConfirmRequestBodyOffSession'Variants
-> Bool
$c/= :: PostPaymentIntentsIntentConfirmRequestBodyOffSession'Variants
-> PostPaymentIntentsIntentConfirmRequestBodyOffSession'Variants
-> Bool
== :: PostPaymentIntentsIntentConfirmRequestBodyOffSession'Variants
-> PostPaymentIntentsIntentConfirmRequestBodyOffSession'Variants
-> Bool
$c== :: PostPaymentIntentsIntentConfirmRequestBodyOffSession'Variants
-> PostPaymentIntentsIntentConfirmRequestBodyOffSession'Variants
-> Bool
GHC.Classes.Eq)

instance Data.Aeson.Types.ToJSON.ToJSON PostPaymentIntentsIntentConfirmRequestBodyOffSession'Variants where
  toJSON :: PostPaymentIntentsIntentConfirmRequestBodyOffSession'Variants
-> Value
toJSON (PostPaymentIntentsIntentConfirmRequestBodyOffSession'Bool Bool
a) = Bool -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON Bool
a
  toJSON (PostPaymentIntentsIntentConfirmRequestBodyOffSession'PostPaymentIntentsIntentConfirmRequestBodyOffSession'OneOf2 PostPaymentIntentsIntentConfirmRequestBodyOffSession'OneOf2
a) = PostPaymentIntentsIntentConfirmRequestBodyOffSession'OneOf2
-> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON PostPaymentIntentsIntentConfirmRequestBodyOffSession'OneOf2
a

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

-- | Defines the object schema located at @paths.\/v1\/payment_intents\/{intent}\/confirm.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.payment_method_data@ in the specification.
--
-- If provided, this hash will be used to create a PaymentMethod. The new PaymentMethod will appear
-- in the [payment_method](https:\/\/stripe.com\/docs\/api\/payment_intents\/object\#payment_intent_object-payment_method)
-- property on the PaymentIntent.
data PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData' = PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'
  { -- | acss_debit
    PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AcssDebit'
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AcssDebit :: (GHC.Maybe.Maybe PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AcssDebit'),
    -- | afterpay_clearpay
    PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'
-> Maybe Object
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AfterpayClearpay :: (GHC.Maybe.Maybe Data.Aeson.Types.Internal.Object),
    -- | alipay
    PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'
-> Maybe Object
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Alipay :: (GHC.Maybe.Maybe Data.Aeson.Types.Internal.Object),
    -- | au_becs_debit
    PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AuBecsDebit'
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AuBecsDebit :: (GHC.Maybe.Maybe PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AuBecsDebit'),
    -- | bacs_debit
    PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'BacsDebit'
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'BacsDebit :: (GHC.Maybe.Maybe PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'BacsDebit'),
    -- | bancontact
    PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'
-> Maybe Object
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Bancontact :: (GHC.Maybe.Maybe Data.Aeson.Types.Internal.Object),
    -- | billing_details
    PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'BillingDetails'
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'BillingDetails :: (GHC.Maybe.Maybe PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'BillingDetails'),
    -- | boleto
    PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Boleto'
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Boleto :: (GHC.Maybe.Maybe PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Boleto'),
    -- | eps
    PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Eps'
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Eps :: (GHC.Maybe.Maybe PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Eps'),
    -- | fpx
    PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Fpx'
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Fpx :: (GHC.Maybe.Maybe PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Fpx'),
    -- | giropay
    PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'
-> Maybe Object
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Giropay :: (GHC.Maybe.Maybe Data.Aeson.Types.Internal.Object),
    -- | grabpay
    PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'
-> Maybe Object
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Grabpay :: (GHC.Maybe.Maybe Data.Aeson.Types.Internal.Object),
    -- | ideal
    PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Ideal'
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Ideal :: (GHC.Maybe.Maybe PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Ideal'),
    -- | interac_present
    PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'
-> Maybe Object
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'InteracPresent :: (GHC.Maybe.Maybe Data.Aeson.Types.Internal.Object),
    -- | metadata
    PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'
-> Maybe Object
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Metadata :: (GHC.Maybe.Maybe Data.Aeson.Types.Internal.Object),
    -- | oxxo
    PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'
-> Maybe Object
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Oxxo :: (GHC.Maybe.Maybe Data.Aeson.Types.Internal.Object),
    -- | p24
    PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'P24'
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'P24 :: (GHC.Maybe.Maybe PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'P24'),
    -- | sepa_debit
    PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'SepaDebit'
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'SepaDebit :: (GHC.Maybe.Maybe PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'SepaDebit'),
    -- | sofort
    PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Sofort'
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Sofort :: (GHC.Maybe.Maybe PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Sofort'),
    -- | type
    PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Type'
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Type :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Type'
  }
  deriving
    ( Int
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'
-> String
-> String
[PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData']
-> String -> String
PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'
-> String
(Int
 -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'
 -> String
 -> String)
-> (PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'
    -> String)
-> ([PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData']
    -> String -> String)
-> Show
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData']
-> String -> String
$cshowList :: [PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData']
-> String -> String
show :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'
-> String
$cshow :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'
-> String
showsPrec :: Int
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'
-> String
-> String
$cshowsPrec :: Int
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'
-> String
-> String
GHC.Show.Show,
      PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'
-> Bool
(PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'
 -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'
 -> Bool)
-> (PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'
    -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'
    -> Bool)
-> Eq PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'
-> Bool
$c/= :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'
-> Bool
== :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'
-> Bool
$c== :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'
-> Bool
GHC.Classes.Eq
    )

instance Data.Aeson.Types.ToJSON.ToJSON PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData' where
  toJSON :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'
-> Value
toJSON PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'
obj = [Pair] -> Value
Data.Aeson.Types.Internal.object (Text
"acss_debit" Text
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AcssDebit'
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AcssDebit'
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AcssDebit PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'
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..= PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'
-> Maybe Object
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AfterpayClearpay PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'
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..= PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'
-> Maybe Object
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Alipay PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"au_becs_debit" Text
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AuBecsDebit'
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AuBecsDebit'
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AuBecsDebit PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"bacs_debit" Text
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'BacsDebit'
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'BacsDebit'
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'BacsDebit PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'
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..= PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'
-> Maybe Object
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Bancontact PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"billing_details" Text
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'BillingDetails'
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'BillingDetails'
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'BillingDetails PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"boleto" Text
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Boleto'
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Boleto'
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Boleto PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"eps" Text
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Eps'
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Eps'
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Eps PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"fpx" Text
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Fpx'
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Fpx'
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Fpx PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'
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..= PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'
-> Maybe Object
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Giropay PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'
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..= PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'
-> Maybe Object
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Grabpay PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"ideal" Text
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Ideal'
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Ideal'
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Ideal PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'
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..= PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'
-> Maybe Object
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'InteracPresent PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'
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..= PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'
-> Maybe Object
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Metadata PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'
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..= PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'
-> Maybe Object
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Oxxo PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"p24" Text
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'P24'
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'P24'
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'P24 PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"sepa_debit" Text
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'SepaDebit'
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'SepaDebit'
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'SepaDebit PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"sofort" Text
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Sofort'
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Sofort'
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Sofort PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"type" Text
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Type'
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Type'
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Type PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'
-> Encoding
toEncoding PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'
obj = Series -> Encoding
Data.Aeson.Encoding.Internal.pairs ((Text
"acss_debit" Text
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AcssDebit'
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AcssDebit'
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AcssDebit PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'
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..= PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'
-> Maybe Object
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AfterpayClearpay PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'
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..= PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'
-> Maybe Object
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Alipay PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"au_becs_debit" Text
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AuBecsDebit'
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AuBecsDebit'
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AuBecsDebit PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"bacs_debit" Text
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'BacsDebit'
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'BacsDebit'
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'BacsDebit PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'
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..= PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'
-> Maybe Object
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Bancontact PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"billing_details" Text
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'BillingDetails'
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'BillingDetails'
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'BillingDetails PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"boleto" Text
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Boleto'
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Boleto'
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Boleto PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"eps" Text
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Eps'
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Eps'
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Eps PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"fpx" Text
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Fpx'
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Fpx'
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Fpx PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'
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..= PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'
-> Maybe Object
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Giropay PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'
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..= PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'
-> Maybe Object
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Grabpay PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"ideal" Text
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Ideal'
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Ideal'
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Ideal PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'
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..= PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'
-> Maybe Object
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'InteracPresent PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'
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..= PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'
-> Maybe Object
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Metadata PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'
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..= PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'
-> Maybe Object
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Oxxo PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"p24" Text
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'P24'
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'P24'
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'P24 PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"sepa_debit" Text
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'SepaDebit'
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'SepaDebit'
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'SepaDebit PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"sofort" Text
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Sofort'
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Sofort'
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Sofort PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> (Text
"type" Text
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Type'
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Type'
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Type PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'
obj))))))))))))))))))))

instance Data.Aeson.Types.FromJSON.FromJSON PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData' where
  parseJSON :: Value
-> Parser
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'
parseJSON = String
-> (Object
    -> Parser
         PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData')
-> Value
-> Parser
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.Aeson.Types.FromJSON.withObject String
"PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'" (\Object
obj -> ((((((((((((((((((((Maybe
   PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AcssDebit'
 -> Maybe Object
 -> Maybe Object
 -> Maybe
      PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AuBecsDebit'
 -> Maybe
      PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'BacsDebit'
 -> Maybe Object
 -> Maybe
      PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'BillingDetails'
 -> Maybe
      PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Boleto'
 -> Maybe
      PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Eps'
 -> Maybe
      PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Fpx'
 -> Maybe Object
 -> Maybe Object
 -> Maybe
      PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Ideal'
 -> Maybe Object
 -> Maybe Object
 -> Maybe Object
 -> Maybe
      PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'P24'
 -> Maybe
      PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'SepaDebit'
 -> Maybe
      PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Sofort'
 -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Type'
 -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData')
-> Parser
     (Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AcssDebit'
      -> Maybe Object
      -> Maybe Object
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AuBecsDebit'
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'BacsDebit'
      -> Maybe Object
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'BillingDetails'
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Boleto'
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Eps'
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Fpx'
      -> Maybe Object
      -> Maybe Object
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Ideal'
      -> Maybe Object
      -> Maybe Object
      -> Maybe Object
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'P24'
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'SepaDebit'
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Sofort'
      -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Type'
      -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData')
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure Maybe
  PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AcssDebit'
-> Maybe Object
-> Maybe Object
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AuBecsDebit'
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'BacsDebit'
-> Maybe Object
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'BillingDetails'
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Boleto'
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Eps'
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Fpx'
-> Maybe Object
-> Maybe Object
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Ideal'
-> Maybe Object
-> Maybe Object
-> Maybe Object
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'P24'
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'SepaDebit'
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Sofort'
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Type'
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'
PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData' Parser
  (Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AcssDebit'
   -> Maybe Object
   -> Maybe Object
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AuBecsDebit'
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'BacsDebit'
   -> Maybe Object
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'BillingDetails'
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Boleto'
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Eps'
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Fpx'
   -> Maybe Object
   -> Maybe Object
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Ideal'
   -> Maybe Object
   -> Maybe Object
   -> Maybe Object
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'P24'
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'SepaDebit'
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Sofort'
   -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Type'
   -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData')
-> Parser
     (Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AcssDebit')
-> Parser
     (Maybe Object
      -> Maybe Object
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AuBecsDebit'
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'BacsDebit'
      -> Maybe Object
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'BillingDetails'
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Boleto'
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Eps'
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Fpx'
      -> Maybe Object
      -> Maybe Object
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Ideal'
      -> Maybe Object
      -> Maybe Object
      -> Maybe Object
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'P24'
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'SepaDebit'
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Sofort'
      -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Type'
      -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     (Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AcssDebit')
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"acss_debit")) Parser
  (Maybe Object
   -> Maybe Object
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AuBecsDebit'
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'BacsDebit'
   -> Maybe Object
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'BillingDetails'
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Boleto'
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Eps'
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Fpx'
   -> Maybe Object
   -> Maybe Object
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Ideal'
   -> Maybe Object
   -> Maybe Object
   -> Maybe Object
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'P24'
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'SepaDebit'
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Sofort'
   -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Type'
   -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData')
-> Parser (Maybe Object)
-> Parser
     (Maybe Object
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AuBecsDebit'
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'BacsDebit'
      -> Maybe Object
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'BillingDetails'
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Boleto'
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Eps'
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Fpx'
      -> Maybe Object
      -> Maybe Object
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Ideal'
      -> Maybe Object
      -> Maybe Object
      -> Maybe Object
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'P24'
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'SepaDebit'
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Sofort'
      -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Type'
      -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData')
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
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AuBecsDebit'
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'BacsDebit'
   -> Maybe Object
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'BillingDetails'
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Boleto'
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Eps'
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Fpx'
   -> Maybe Object
   -> Maybe Object
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Ideal'
   -> Maybe Object
   -> Maybe Object
   -> Maybe Object
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'P24'
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'SepaDebit'
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Sofort'
   -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Type'
   -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData')
-> Parser (Maybe Object)
-> Parser
     (Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AuBecsDebit'
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'BacsDebit'
      -> Maybe Object
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'BillingDetails'
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Boleto'
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Eps'
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Fpx'
      -> Maybe Object
      -> Maybe Object
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Ideal'
      -> Maybe Object
      -> Maybe Object
      -> Maybe Object
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'P24'
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'SepaDebit'
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Sofort'
      -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Type'
      -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData')
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
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AuBecsDebit'
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'BacsDebit'
   -> Maybe Object
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'BillingDetails'
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Boleto'
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Eps'
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Fpx'
   -> Maybe Object
   -> Maybe Object
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Ideal'
   -> Maybe Object
   -> Maybe Object
   -> Maybe Object
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'P24'
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'SepaDebit'
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Sofort'
   -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Type'
   -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData')
-> Parser
     (Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AuBecsDebit')
-> Parser
     (Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'BacsDebit'
      -> Maybe Object
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'BillingDetails'
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Boleto'
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Eps'
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Fpx'
      -> Maybe Object
      -> Maybe Object
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Ideal'
      -> Maybe Object
      -> Maybe Object
      -> Maybe Object
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'P24'
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'SepaDebit'
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Sofort'
      -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Type'
      -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     (Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AuBecsDebit')
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"au_becs_debit")) Parser
  (Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'BacsDebit'
   -> Maybe Object
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'BillingDetails'
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Boleto'
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Eps'
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Fpx'
   -> Maybe Object
   -> Maybe Object
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Ideal'
   -> Maybe Object
   -> Maybe Object
   -> Maybe Object
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'P24'
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'SepaDebit'
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Sofort'
   -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Type'
   -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData')
-> Parser
     (Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'BacsDebit')
-> Parser
     (Maybe Object
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'BillingDetails'
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Boleto'
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Eps'
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Fpx'
      -> Maybe Object
      -> Maybe Object
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Ideal'
      -> Maybe Object
      -> Maybe Object
      -> Maybe Object
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'P24'
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'SepaDebit'
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Sofort'
      -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Type'
      -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     (Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'BacsDebit')
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"bacs_debit")) Parser
  (Maybe Object
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'BillingDetails'
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Boleto'
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Eps'
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Fpx'
   -> Maybe Object
   -> Maybe Object
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Ideal'
   -> Maybe Object
   -> Maybe Object
   -> Maybe Object
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'P24'
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'SepaDebit'
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Sofort'
   -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Type'
   -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData')
-> Parser (Maybe Object)
-> Parser
     (Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'BillingDetails'
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Boleto'
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Eps'
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Fpx'
      -> Maybe Object
      -> Maybe Object
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Ideal'
      -> Maybe Object
      -> Maybe Object
      -> Maybe Object
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'P24'
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'SepaDebit'
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Sofort'
      -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Type'
      -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData')
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
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'BillingDetails'
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Boleto'
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Eps'
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Fpx'
   -> Maybe Object
   -> Maybe Object
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Ideal'
   -> Maybe Object
   -> Maybe Object
   -> Maybe Object
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'P24'
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'SepaDebit'
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Sofort'
   -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Type'
   -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData')
-> Parser
     (Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'BillingDetails')
-> Parser
     (Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Boleto'
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Eps'
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Fpx'
      -> Maybe Object
      -> Maybe Object
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Ideal'
      -> Maybe Object
      -> Maybe Object
      -> Maybe Object
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'P24'
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'SepaDebit'
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Sofort'
      -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Type'
      -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     (Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'BillingDetails')
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"billing_details")) Parser
  (Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Boleto'
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Eps'
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Fpx'
   -> Maybe Object
   -> Maybe Object
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Ideal'
   -> Maybe Object
   -> Maybe Object
   -> Maybe Object
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'P24'
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'SepaDebit'
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Sofort'
   -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Type'
   -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData')
-> Parser
     (Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Boleto')
-> Parser
     (Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Eps'
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Fpx'
      -> Maybe Object
      -> Maybe Object
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Ideal'
      -> Maybe Object
      -> Maybe Object
      -> Maybe Object
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'P24'
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'SepaDebit'
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Sofort'
      -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Type'
      -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     (Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Boleto')
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"boleto")) Parser
  (Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Eps'
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Fpx'
   -> Maybe Object
   -> Maybe Object
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Ideal'
   -> Maybe Object
   -> Maybe Object
   -> Maybe Object
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'P24'
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'SepaDebit'
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Sofort'
   -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Type'
   -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData')
-> Parser
     (Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Eps')
-> Parser
     (Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Fpx'
      -> Maybe Object
      -> Maybe Object
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Ideal'
      -> Maybe Object
      -> Maybe Object
      -> Maybe Object
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'P24'
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'SepaDebit'
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Sofort'
      -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Type'
      -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     (Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Eps')
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"eps")) Parser
  (Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Fpx'
   -> Maybe Object
   -> Maybe Object
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Ideal'
   -> Maybe Object
   -> Maybe Object
   -> Maybe Object
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'P24'
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'SepaDebit'
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Sofort'
   -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Type'
   -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData')
-> Parser
     (Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Fpx')
-> Parser
     (Maybe Object
      -> Maybe Object
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Ideal'
      -> Maybe Object
      -> Maybe Object
      -> Maybe Object
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'P24'
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'SepaDebit'
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Sofort'
      -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Type'
      -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     (Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Fpx')
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"fpx")) Parser
  (Maybe Object
   -> Maybe Object
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Ideal'
   -> Maybe Object
   -> Maybe Object
   -> Maybe Object
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'P24'
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'SepaDebit'
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Sofort'
   -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Type'
   -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData')
-> Parser (Maybe Object)
-> Parser
     (Maybe Object
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Ideal'
      -> Maybe Object
      -> Maybe Object
      -> Maybe Object
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'P24'
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'SepaDebit'
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Sofort'
      -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Type'
      -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData')
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
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Ideal'
   -> Maybe Object
   -> Maybe Object
   -> Maybe Object
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'P24'
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'SepaDebit'
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Sofort'
   -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Type'
   -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData')
-> Parser (Maybe Object)
-> Parser
     (Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Ideal'
      -> Maybe Object
      -> Maybe Object
      -> Maybe Object
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'P24'
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'SepaDebit'
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Sofort'
      -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Type'
      -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData')
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
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Ideal'
   -> Maybe Object
   -> Maybe Object
   -> Maybe Object
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'P24'
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'SepaDebit'
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Sofort'
   -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Type'
   -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData')
-> Parser
     (Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Ideal')
-> Parser
     (Maybe Object
      -> Maybe Object
      -> Maybe Object
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'P24'
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'SepaDebit'
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Sofort'
      -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Type'
      -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     (Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Ideal')
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"ideal")) Parser
  (Maybe Object
   -> Maybe Object
   -> Maybe Object
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'P24'
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'SepaDebit'
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Sofort'
   -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Type'
   -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData')
-> Parser (Maybe Object)
-> Parser
     (Maybe Object
      -> Maybe Object
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'P24'
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'SepaDebit'
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Sofort'
      -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Type'
      -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData')
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
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'P24'
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'SepaDebit'
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Sofort'
   -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Type'
   -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData')
-> Parser (Maybe Object)
-> Parser
     (Maybe Object
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'P24'
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'SepaDebit'
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Sofort'
      -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Type'
      -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData')
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
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'P24'
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'SepaDebit'
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Sofort'
   -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Type'
   -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData')
-> Parser (Maybe Object)
-> Parser
     (Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'P24'
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'SepaDebit'
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Sofort'
      -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Type'
      -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData')
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
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'P24'
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'SepaDebit'
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Sofort'
   -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Type'
   -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData')
-> Parser
     (Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'P24')
-> Parser
     (Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'SepaDebit'
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Sofort'
      -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Type'
      -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     (Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'P24')
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"p24")) Parser
  (Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'SepaDebit'
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Sofort'
   -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Type'
   -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData')
-> Parser
     (Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'SepaDebit')
-> Parser
     (Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Sofort'
      -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Type'
      -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     (Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'SepaDebit')
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"sepa_debit")) Parser
  (Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Sofort'
   -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Type'
   -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData')
-> Parser
     (Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Sofort')
-> Parser
     (PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Type'
      -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     (Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Sofort')
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"sofort")) Parser
  (PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Type'
   -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData')
-> Parser
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Type'
-> Parser
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Type'
forall a. FromJSON a => Object -> Text -> Parser a
Data.Aeson.Types.FromJSON..: Text
"type"))

-- | Create a new 'PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'' with all required fields.
mkPostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData' ::
  -- | 'postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Type'
  PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Type' ->
  PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'
mkPostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData' :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Type'
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'
mkPostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData' PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Type'
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Type =
  PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData' :: Maybe
  PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AcssDebit'
-> Maybe Object
-> Maybe Object
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AuBecsDebit'
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'BacsDebit'
-> Maybe Object
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'BillingDetails'
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Boleto'
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Eps'
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Fpx'
-> Maybe Object
-> Maybe Object
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Ideal'
-> Maybe Object
-> Maybe Object
-> Maybe Object
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'P24'
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'SepaDebit'
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Sofort'
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Type'
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'
PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'
    { postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AcssDebit :: Maybe
  PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AcssDebit'
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AcssDebit = Maybe
  PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AcssDebit'
forall a. Maybe a
GHC.Maybe.Nothing,
      postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AfterpayClearpay :: Maybe Object
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AfterpayClearpay = Maybe Object
forall a. Maybe a
GHC.Maybe.Nothing,
      postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Alipay :: Maybe Object
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Alipay = Maybe Object
forall a. Maybe a
GHC.Maybe.Nothing,
      postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AuBecsDebit :: Maybe
  PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AuBecsDebit'
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AuBecsDebit = Maybe
  PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AuBecsDebit'
forall a. Maybe a
GHC.Maybe.Nothing,
      postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'BacsDebit :: Maybe
  PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'BacsDebit'
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'BacsDebit = Maybe
  PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'BacsDebit'
forall a. Maybe a
GHC.Maybe.Nothing,
      postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Bancontact :: Maybe Object
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Bancontact = Maybe Object
forall a. Maybe a
GHC.Maybe.Nothing,
      postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'BillingDetails :: Maybe
  PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'BillingDetails'
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'BillingDetails = Maybe
  PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'BillingDetails'
forall a. Maybe a
GHC.Maybe.Nothing,
      postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Boleto :: Maybe
  PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Boleto'
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Boleto = Maybe
  PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Boleto'
forall a. Maybe a
GHC.Maybe.Nothing,
      postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Eps :: Maybe
  PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Eps'
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Eps = Maybe
  PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Eps'
forall a. Maybe a
GHC.Maybe.Nothing,
      postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Fpx :: Maybe
  PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Fpx'
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Fpx = Maybe
  PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Fpx'
forall a. Maybe a
GHC.Maybe.Nothing,
      postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Giropay :: Maybe Object
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Giropay = Maybe Object
forall a. Maybe a
GHC.Maybe.Nothing,
      postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Grabpay :: Maybe Object
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Grabpay = Maybe Object
forall a. Maybe a
GHC.Maybe.Nothing,
      postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Ideal :: Maybe
  PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Ideal'
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Ideal = Maybe
  PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Ideal'
forall a. Maybe a
GHC.Maybe.Nothing,
      postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'InteracPresent :: Maybe Object
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'InteracPresent = Maybe Object
forall a. Maybe a
GHC.Maybe.Nothing,
      postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Metadata :: Maybe Object
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Metadata = Maybe Object
forall a. Maybe a
GHC.Maybe.Nothing,
      postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Oxxo :: Maybe Object
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Oxxo = Maybe Object
forall a. Maybe a
GHC.Maybe.Nothing,
      postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'P24 :: Maybe
  PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'P24'
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'P24 = Maybe
  PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'P24'
forall a. Maybe a
GHC.Maybe.Nothing,
      postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'SepaDebit :: Maybe
  PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'SepaDebit'
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'SepaDebit = Maybe
  PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'SepaDebit'
forall a. Maybe a
GHC.Maybe.Nothing,
      postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Sofort :: Maybe
  PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Sofort'
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Sofort = Maybe
  PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Sofort'
forall a. Maybe a
GHC.Maybe.Nothing,
      postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Type :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Type'
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Type = PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Type'
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Type
    }

-- | Defines the object schema located at @paths.\/v1\/payment_intents\/{intent}\/confirm.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.payment_method_data.properties.acss_debit@ in the specification.
data PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AcssDebit' = PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AcssDebit'
  { -- | account_number
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AcssDebit'
-> Text
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AcssDebit'AccountNumber :: Data.Text.Internal.Text,
    -- | institution_number
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AcssDebit'
-> Text
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AcssDebit'InstitutionNumber :: Data.Text.Internal.Text,
    -- | transit_number
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AcssDebit'
-> Text
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AcssDebit'TransitNumber :: Data.Text.Internal.Text
  }
  deriving
    ( Int
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AcssDebit'
-> String
-> String
[PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AcssDebit']
-> String -> String
PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AcssDebit'
-> String
(Int
 -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AcssDebit'
 -> String
 -> String)
-> (PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AcssDebit'
    -> String)
-> ([PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AcssDebit']
    -> String -> String)
-> Show
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AcssDebit'
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AcssDebit']
-> String -> String
$cshowList :: [PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AcssDebit']
-> String -> String
show :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AcssDebit'
-> String
$cshow :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AcssDebit'
-> String
showsPrec :: Int
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AcssDebit'
-> String
-> String
$cshowsPrec :: Int
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AcssDebit'
-> String
-> String
GHC.Show.Show,
      PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AcssDebit'
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AcssDebit'
-> Bool
(PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AcssDebit'
 -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AcssDebit'
 -> Bool)
-> (PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AcssDebit'
    -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AcssDebit'
    -> Bool)
-> Eq
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AcssDebit'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AcssDebit'
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AcssDebit'
-> Bool
$c/= :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AcssDebit'
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AcssDebit'
-> Bool
== :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AcssDebit'
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AcssDebit'
-> Bool
$c== :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AcssDebit'
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AcssDebit'
-> Bool
GHC.Classes.Eq
    )

instance Data.Aeson.Types.ToJSON.ToJSON PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AcssDebit' where
  toJSON :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AcssDebit'
-> Value
toJSON PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AcssDebit'
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..= PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AcssDebit'
-> Text
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AcssDebit'AccountNumber PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AcssDebit'
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..= PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AcssDebit'
-> Text
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AcssDebit'InstitutionNumber PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AcssDebit'
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..= PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AcssDebit'
-> Text
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AcssDebit'TransitNumber PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AcssDebit'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AcssDebit'
-> Encoding
toEncoding PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AcssDebit'
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..= PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AcssDebit'
-> Text
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AcssDebit'AccountNumber PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AcssDebit'
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..= PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AcssDebit'
-> Text
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AcssDebit'InstitutionNumber PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AcssDebit'
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..= PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AcssDebit'
-> Text
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AcssDebit'TransitNumber PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AcssDebit'
obj)))

instance Data.Aeson.Types.FromJSON.FromJSON PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AcssDebit' where
  parseJSON :: Value
-> Parser
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AcssDebit'
parseJSON = String
-> (Object
    -> Parser
         PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AcssDebit')
-> Value
-> Parser
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AcssDebit'
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.Aeson.Types.FromJSON.withObject String
"PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AcssDebit'" (\Object
obj -> (((Text
 -> Text
 -> Text
 -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AcssDebit')
-> Parser
     (Text
      -> Text
      -> Text
      -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AcssDebit')
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure Text
-> Text
-> Text
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AcssDebit'
PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AcssDebit' Parser
  (Text
   -> Text
   -> Text
   -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AcssDebit')
-> Parser Text
-> Parser
     (Text
      -> Text
      -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AcssDebit')
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
   -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AcssDebit')
-> Parser Text
-> Parser
     (Text
      -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AcssDebit')
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
   -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AcssDebit')
-> Parser Text
-> Parser
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AcssDebit'
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 'PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AcssDebit'' with all required fields.
mkPostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AcssDebit' ::
  -- | 'postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AcssDebit'AccountNumber'
  Data.Text.Internal.Text ->
  -- | 'postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AcssDebit'InstitutionNumber'
  Data.Text.Internal.Text ->
  -- | 'postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AcssDebit'TransitNumber'
  Data.Text.Internal.Text ->
  PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AcssDebit'
mkPostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AcssDebit' :: Text
-> Text
-> Text
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AcssDebit'
mkPostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AcssDebit' Text
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AcssDebit'AccountNumber Text
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AcssDebit'InstitutionNumber Text
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AcssDebit'TransitNumber =
  PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AcssDebit' :: Text
-> Text
-> Text
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AcssDebit'
PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AcssDebit'
    { postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AcssDebit'AccountNumber :: Text
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AcssDebit'AccountNumber = Text
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AcssDebit'AccountNumber,
      postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AcssDebit'InstitutionNumber :: Text
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AcssDebit'InstitutionNumber = Text
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AcssDebit'InstitutionNumber,
      postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AcssDebit'TransitNumber :: Text
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AcssDebit'TransitNumber = Text
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AcssDebit'TransitNumber
    }

-- | Defines the object schema located at @paths.\/v1\/payment_intents\/{intent}\/confirm.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.payment_method_data.properties.au_becs_debit@ in the specification.
data PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AuBecsDebit' = PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AuBecsDebit'
  { -- | account_number
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AuBecsDebit'
-> Text
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AuBecsDebit'AccountNumber :: Data.Text.Internal.Text,
    -- | bsb_number
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AuBecsDebit'
-> Text
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AuBecsDebit'BsbNumber :: Data.Text.Internal.Text
  }
  deriving
    ( Int
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AuBecsDebit'
-> String
-> String
[PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AuBecsDebit']
-> String -> String
PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AuBecsDebit'
-> String
(Int
 -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AuBecsDebit'
 -> String
 -> String)
-> (PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AuBecsDebit'
    -> String)
-> ([PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AuBecsDebit']
    -> String -> String)
-> Show
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AuBecsDebit'
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AuBecsDebit']
-> String -> String
$cshowList :: [PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AuBecsDebit']
-> String -> String
show :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AuBecsDebit'
-> String
$cshow :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AuBecsDebit'
-> String
showsPrec :: Int
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AuBecsDebit'
-> String
-> String
$cshowsPrec :: Int
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AuBecsDebit'
-> String
-> String
GHC.Show.Show,
      PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AuBecsDebit'
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AuBecsDebit'
-> Bool
(PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AuBecsDebit'
 -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AuBecsDebit'
 -> Bool)
-> (PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AuBecsDebit'
    -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AuBecsDebit'
    -> Bool)
-> Eq
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AuBecsDebit'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AuBecsDebit'
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AuBecsDebit'
-> Bool
$c/= :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AuBecsDebit'
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AuBecsDebit'
-> Bool
== :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AuBecsDebit'
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AuBecsDebit'
-> Bool
$c== :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AuBecsDebit'
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AuBecsDebit'
-> Bool
GHC.Classes.Eq
    )

instance Data.Aeson.Types.ToJSON.ToJSON PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AuBecsDebit' where
  toJSON :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AuBecsDebit'
-> Value
toJSON PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AuBecsDebit'
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..= PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AuBecsDebit'
-> Text
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AuBecsDebit'AccountNumber PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AuBecsDebit'
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..= PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AuBecsDebit'
-> Text
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AuBecsDebit'BsbNumber PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AuBecsDebit'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AuBecsDebit'
-> Encoding
toEncoding PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AuBecsDebit'
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..= PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AuBecsDebit'
-> Text
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AuBecsDebit'AccountNumber PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AuBecsDebit'
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..= PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AuBecsDebit'
-> Text
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AuBecsDebit'BsbNumber PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AuBecsDebit'
obj))

instance Data.Aeson.Types.FromJSON.FromJSON PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AuBecsDebit' where
  parseJSON :: Value
-> Parser
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AuBecsDebit'
parseJSON = String
-> (Object
    -> Parser
         PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AuBecsDebit')
-> Value
-> Parser
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AuBecsDebit'
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.Aeson.Types.FromJSON.withObject String
"PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AuBecsDebit'" (\Object
obj -> ((Text
 -> Text
 -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AuBecsDebit')
-> Parser
     (Text
      -> Text
      -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AuBecsDebit')
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure Text
-> Text
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AuBecsDebit'
PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AuBecsDebit' Parser
  (Text
   -> Text
   -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AuBecsDebit')
-> Parser Text
-> Parser
     (Text
      -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AuBecsDebit')
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
   -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AuBecsDebit')
-> Parser Text
-> Parser
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AuBecsDebit'
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 'PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AuBecsDebit'' with all required fields.
mkPostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AuBecsDebit' ::
  -- | 'postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AuBecsDebit'AccountNumber'
  Data.Text.Internal.Text ->
  -- | 'postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AuBecsDebit'BsbNumber'
  Data.Text.Internal.Text ->
  PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AuBecsDebit'
mkPostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AuBecsDebit' :: Text
-> Text
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AuBecsDebit'
mkPostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AuBecsDebit' Text
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AuBecsDebit'AccountNumber Text
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AuBecsDebit'BsbNumber =
  PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AuBecsDebit' :: Text
-> Text
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AuBecsDebit'
PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AuBecsDebit'
    { postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AuBecsDebit'AccountNumber :: Text
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AuBecsDebit'AccountNumber = Text
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AuBecsDebit'AccountNumber,
      postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AuBecsDebit'BsbNumber :: Text
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AuBecsDebit'BsbNumber = Text
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'AuBecsDebit'BsbNumber
    }

-- | Defines the object schema located at @paths.\/v1\/payment_intents\/{intent}\/confirm.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.payment_method_data.properties.bacs_debit@ in the specification.
data PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'BacsDebit' = PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'BacsDebit'
  { -- | account_number
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'BacsDebit'
-> Maybe Text
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'BacsDebit'AccountNumber :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | sort_code
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'BacsDebit'
-> Maybe Text
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'BacsDebit'SortCode :: (GHC.Maybe.Maybe Data.Text.Internal.Text)
  }
  deriving
    ( Int
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'BacsDebit'
-> String
-> String
[PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'BacsDebit']
-> String -> String
PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'BacsDebit'
-> String
(Int
 -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'BacsDebit'
 -> String
 -> String)
-> (PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'BacsDebit'
    -> String)
-> ([PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'BacsDebit']
    -> String -> String)
-> Show
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'BacsDebit'
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'BacsDebit']
-> String -> String
$cshowList :: [PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'BacsDebit']
-> String -> String
show :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'BacsDebit'
-> String
$cshow :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'BacsDebit'
-> String
showsPrec :: Int
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'BacsDebit'
-> String
-> String
$cshowsPrec :: Int
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'BacsDebit'
-> String
-> String
GHC.Show.Show,
      PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'BacsDebit'
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'BacsDebit'
-> Bool
(PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'BacsDebit'
 -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'BacsDebit'
 -> Bool)
-> (PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'BacsDebit'
    -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'BacsDebit'
    -> Bool)
-> Eq
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'BacsDebit'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'BacsDebit'
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'BacsDebit'
-> Bool
$c/= :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'BacsDebit'
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'BacsDebit'
-> Bool
== :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'BacsDebit'
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'BacsDebit'
-> Bool
$c== :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'BacsDebit'
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'BacsDebit'
-> Bool
GHC.Classes.Eq
    )

instance Data.Aeson.Types.ToJSON.ToJSON PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'BacsDebit' where
  toJSON :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'BacsDebit'
-> Value
toJSON PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'BacsDebit'
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..= PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'BacsDebit'
-> Maybe Text
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'BacsDebit'AccountNumber PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'BacsDebit'
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..= PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'BacsDebit'
-> Maybe Text
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'BacsDebit'SortCode PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'BacsDebit'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'BacsDebit'
-> Encoding
toEncoding PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'BacsDebit'
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..= PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'BacsDebit'
-> Maybe Text
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'BacsDebit'AccountNumber PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'BacsDebit'
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..= PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'BacsDebit'
-> Maybe Text
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'BacsDebit'SortCode PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'BacsDebit'
obj))

instance Data.Aeson.Types.FromJSON.FromJSON PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'BacsDebit' where
  parseJSON :: Value
-> Parser
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'BacsDebit'
parseJSON = String
-> (Object
    -> Parser
         PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'BacsDebit')
-> Value
-> Parser
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'BacsDebit'
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.Aeson.Types.FromJSON.withObject String
"PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'BacsDebit'" (\Object
obj -> ((Maybe Text
 -> Maybe Text
 -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'BacsDebit')
-> Parser
     (Maybe Text
      -> Maybe Text
      -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'BacsDebit')
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure Maybe Text
-> Maybe Text
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'BacsDebit'
PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'BacsDebit' Parser
  (Maybe Text
   -> Maybe Text
   -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'BacsDebit')
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'BacsDebit')
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
   -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'BacsDebit')
-> Parser (Maybe Text)
-> Parser
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'BacsDebit'
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 'PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'BacsDebit'' with all required fields.
mkPostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'BacsDebit' :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'BacsDebit'
mkPostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'BacsDebit' :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'BacsDebit'
mkPostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'BacsDebit' =
  PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'BacsDebit' :: Maybe Text
-> Maybe Text
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'BacsDebit'
PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'BacsDebit'
    { postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'BacsDebit'AccountNumber :: Maybe Text
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'BacsDebit'AccountNumber = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'BacsDebit'SortCode :: Maybe Text
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'BacsDebit'SortCode = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing
    }

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

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

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

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

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

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

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

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

instance Data.Aeson.Types.FromJSON.FromJSON PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'BillingDetails'Address'Variants where
  parseJSON :: Value
-> Parser
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'BillingDetails'Address'Variants
parseJSON Value
val =
    if
        | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"" -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'BillingDetails'Address'Variants
-> Parser
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'BillingDetails'Address'Variants
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'BillingDetails'Address'Variants
PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'BillingDetails'Address'EmptyString
        | Bool
GHC.Base.otherwise -> case (PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'BillingDetails'Address'OneOf1
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'BillingDetails'Address'Variants
PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'BillingDetails'Address'PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'BillingDetails'Address'OneOf1 (PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'BillingDetails'Address'OneOf1
 -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'BillingDetails'Address'Variants)
-> Result
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'BillingDetails'Address'OneOf1
-> Result
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'BillingDetails'Address'Variants
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Data.Functor.<$> Value
-> Result
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'BillingDetails'Address'OneOf1
forall a. FromJSON a => Value -> Result a
Data.Aeson.Types.FromJSON.fromJSON Value
val) Result
  PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'BillingDetails'Address'Variants
-> Result
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'BillingDetails'Address'Variants
-> Result
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'BillingDetails'Address'Variants
forall (f :: * -> *) a. Alternative f => f a -> f a -> f a
GHC.Base.<|> String
-> Result
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'BillingDetails'Address'Variants
forall a. String -> Result a
Data.Aeson.Types.Internal.Error String
"No variant matched" of
          Data.Aeson.Types.Internal.Success PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'BillingDetails'Address'Variants
a -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'BillingDetails'Address'Variants
-> Parser
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'BillingDetails'Address'Variants
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'BillingDetails'Address'Variants
a
          Data.Aeson.Types.Internal.Error String
a -> String
-> Parser
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'BillingDetails'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_intents\/{intent}\/confirm.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.payment_method_data.properties.boleto@ in the specification.
data PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Boleto' = PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Boleto'
  { -- | tax_id
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Boleto'
-> Text
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Boleto'TaxId :: Data.Text.Internal.Text
  }
  deriving
    ( Int
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Boleto'
-> String
-> String
[PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Boleto']
-> String -> String
PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Boleto'
-> String
(Int
 -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Boleto'
 -> String
 -> String)
-> (PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Boleto'
    -> String)
-> ([PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Boleto']
    -> String -> String)
-> Show
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Boleto'
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Boleto']
-> String -> String
$cshowList :: [PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Boleto']
-> String -> String
show :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Boleto'
-> String
$cshow :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Boleto'
-> String
showsPrec :: Int
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Boleto'
-> String
-> String
$cshowsPrec :: Int
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Boleto'
-> String
-> String
GHC.Show.Show,
      PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Boleto'
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Boleto'
-> Bool
(PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Boleto'
 -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Boleto'
 -> Bool)
-> (PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Boleto'
    -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Boleto'
    -> Bool)
-> Eq
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Boleto'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Boleto'
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Boleto'
-> Bool
$c/= :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Boleto'
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Boleto'
-> Bool
== :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Boleto'
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Boleto'
-> Bool
$c== :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Boleto'
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Boleto'
-> Bool
GHC.Classes.Eq
    )

instance Data.Aeson.Types.ToJSON.ToJSON PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Boleto' where
  toJSON :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Boleto'
-> Value
toJSON PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Boleto'
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..= PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Boleto'
-> Text
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Boleto'TaxId PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Boleto'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Boleto'
-> Encoding
toEncoding PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Boleto'
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..= PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Boleto'
-> Text
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Boleto'TaxId PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Boleto'
obj)

instance Data.Aeson.Types.FromJSON.FromJSON PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Boleto' where
  parseJSON :: Value
-> Parser
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Boleto'
parseJSON = String
-> (Object
    -> Parser
         PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Boleto')
-> Value
-> Parser
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Boleto'
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.Aeson.Types.FromJSON.withObject String
"PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Boleto'" (\Object
obj -> (Text
 -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Boleto')
-> Parser
     (Text
      -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Boleto')
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure Text
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Boleto'
PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Boleto' Parser
  (Text
   -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Boleto')
-> Parser Text
-> Parser
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Boleto'
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 'PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Boleto'' with all required fields.
mkPostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Boleto' ::
  -- | 'postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Boleto'TaxId'
  Data.Text.Internal.Text ->
  PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Boleto'
mkPostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Boleto' :: Text
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Boleto'
mkPostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Boleto' Text
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Boleto'TaxId = PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Boleto' :: Text
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Boleto'
PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Boleto' {postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Boleto'TaxId :: Text
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Boleto'TaxId = Text
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Boleto'TaxId}

-- | Defines the object schema located at @paths.\/v1\/payment_intents\/{intent}\/confirm.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.payment_method_data.properties.eps@ in the specification.
data PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Eps' = PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Eps'
  { -- | bank
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Eps'
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Eps'Bank'
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Eps'Bank :: (GHC.Maybe.Maybe PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Eps'Bank')
  }
  deriving
    ( Int
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Eps'
-> String
-> String
[PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Eps']
-> String -> String
PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Eps'
-> String
(Int
 -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Eps'
 -> String
 -> String)
-> (PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Eps'
    -> String)
-> ([PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Eps']
    -> String -> String)
-> Show
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Eps'
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Eps']
-> String -> String
$cshowList :: [PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Eps']
-> String -> String
show :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Eps'
-> String
$cshow :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Eps'
-> String
showsPrec :: Int
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Eps'
-> String
-> String
$cshowsPrec :: Int
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Eps'
-> String
-> String
GHC.Show.Show,
      PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Eps'
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Eps'
-> Bool
(PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Eps'
 -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Eps'
 -> Bool)
-> (PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Eps'
    -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Eps'
    -> Bool)
-> Eq
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Eps'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Eps'
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Eps'
-> Bool
$c/= :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Eps'
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Eps'
-> Bool
== :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Eps'
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Eps'
-> Bool
$c== :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Eps'
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Eps'
-> Bool
GHC.Classes.Eq
    )

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

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

-- | Create a new 'PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Eps'' with all required fields.
mkPostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Eps' :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Eps'
mkPostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Eps' :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Eps'
mkPostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Eps' = PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Eps' :: Maybe
  PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Eps'Bank'
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Eps'
PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Eps' {postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Eps'Bank :: Maybe
  PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Eps'Bank'
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Eps'Bank = Maybe
  PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Eps'Bank'
forall a. Maybe a
GHC.Maybe.Nothing}

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

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

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

-- | Defines the object schema located at @paths.\/v1\/payment_intents\/{intent}\/confirm.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.payment_method_data.properties.fpx@ in the specification.
data PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Fpx' = PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Fpx'
  { -- | bank
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Fpx'
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Fpx'Bank'
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Fpx'Bank :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Fpx'Bank'
  }
  deriving
    ( Int
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Fpx'
-> String
-> String
[PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Fpx']
-> String -> String
PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Fpx'
-> String
(Int
 -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Fpx'
 -> String
 -> String)
-> (PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Fpx'
    -> String)
-> ([PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Fpx']
    -> String -> String)
-> Show
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Fpx'
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Fpx']
-> String -> String
$cshowList :: [PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Fpx']
-> String -> String
show :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Fpx'
-> String
$cshow :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Fpx'
-> String
showsPrec :: Int
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Fpx'
-> String
-> String
$cshowsPrec :: Int
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Fpx'
-> String
-> String
GHC.Show.Show,
      PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Fpx'
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Fpx'
-> Bool
(PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Fpx'
 -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Fpx'
 -> Bool)
-> (PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Fpx'
    -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Fpx'
    -> Bool)
-> Eq
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Fpx'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Fpx'
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Fpx'
-> Bool
$c/= :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Fpx'
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Fpx'
-> Bool
== :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Fpx'
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Fpx'
-> Bool
$c== :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Fpx'
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Fpx'
-> Bool
GHC.Classes.Eq
    )

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

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

-- | Create a new 'PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Fpx'' with all required fields.
mkPostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Fpx' ::
  -- | 'postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Fpx'Bank'
  PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Fpx'Bank' ->
  PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Fpx'
mkPostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Fpx' :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Fpx'Bank'
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Fpx'
mkPostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Fpx' PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Fpx'Bank'
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Fpx'Bank = PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Fpx' :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Fpx'Bank'
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Fpx'
PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Fpx' {postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Fpx'Bank :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Fpx'Bank'
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Fpx'Bank = PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Fpx'Bank'
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Fpx'Bank}

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

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

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

-- | Defines the object schema located at @paths.\/v1\/payment_intents\/{intent}\/confirm.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.payment_method_data.properties.ideal@ in the specification.
data PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Ideal' = PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Ideal'
  { -- | bank
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Ideal'
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Ideal'Bank'
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Ideal'Bank :: (GHC.Maybe.Maybe PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Ideal'Bank')
  }
  deriving
    ( Int
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Ideal'
-> String
-> String
[PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Ideal']
-> String -> String
PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Ideal'
-> String
(Int
 -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Ideal'
 -> String
 -> String)
-> (PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Ideal'
    -> String)
-> ([PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Ideal']
    -> String -> String)
-> Show
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Ideal'
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Ideal']
-> String -> String
$cshowList :: [PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Ideal']
-> String -> String
show :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Ideal'
-> String
$cshow :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Ideal'
-> String
showsPrec :: Int
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Ideal'
-> String
-> String
$cshowsPrec :: Int
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Ideal'
-> String
-> String
GHC.Show.Show,
      PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Ideal'
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Ideal'
-> Bool
(PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Ideal'
 -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Ideal'
 -> Bool)
-> (PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Ideal'
    -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Ideal'
    -> Bool)
-> Eq
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Ideal'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Ideal'
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Ideal'
-> Bool
$c/= :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Ideal'
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Ideal'
-> Bool
== :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Ideal'
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Ideal'
-> Bool
$c== :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Ideal'
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Ideal'
-> Bool
GHC.Classes.Eq
    )

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

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

-- | Create a new 'PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Ideal'' with all required fields.
mkPostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Ideal' :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Ideal'
mkPostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Ideal' :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Ideal'
mkPostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Ideal' = PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Ideal' :: Maybe
  PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Ideal'Bank'
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Ideal'
PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Ideal' {postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Ideal'Bank :: Maybe
  PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Ideal'Bank'
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Ideal'Bank = Maybe
  PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Ideal'Bank'
forall a. Maybe a
GHC.Maybe.Nothing}

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

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

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

-- | Defines the object schema located at @paths.\/v1\/payment_intents\/{intent}\/confirm.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.payment_method_data.properties.p24@ in the specification.
data PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'P24' = PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'P24'
  { -- | bank
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'P24'
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'P24'Bank'
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'P24'Bank :: (GHC.Maybe.Maybe PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'P24'Bank')
  }
  deriving
    ( Int
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'P24'
-> String
-> String
[PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'P24']
-> String -> String
PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'P24'
-> String
(Int
 -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'P24'
 -> String
 -> String)
-> (PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'P24'
    -> String)
-> ([PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'P24']
    -> String -> String)
-> Show
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'P24'
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'P24']
-> String -> String
$cshowList :: [PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'P24']
-> String -> String
show :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'P24'
-> String
$cshow :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'P24'
-> String
showsPrec :: Int
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'P24'
-> String
-> String
$cshowsPrec :: Int
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'P24'
-> String
-> String
GHC.Show.Show,
      PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'P24'
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'P24'
-> Bool
(PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'P24'
 -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'P24'
 -> Bool)
-> (PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'P24'
    -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'P24'
    -> Bool)
-> Eq
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'P24'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'P24'
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'P24'
-> Bool
$c/= :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'P24'
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'P24'
-> Bool
== :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'P24'
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'P24'
-> Bool
$c== :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'P24'
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'P24'
-> Bool
GHC.Classes.Eq
    )

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

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

-- | Create a new 'PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'P24'' with all required fields.
mkPostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'P24' :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'P24'
mkPostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'P24' :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'P24'
mkPostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'P24' = PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'P24' :: Maybe
  PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'P24'Bank'
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'P24'
PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'P24' {postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'P24'Bank :: Maybe
  PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'P24'Bank'
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'P24'Bank = Maybe
  PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'P24'Bank'
forall a. Maybe a
GHC.Maybe.Nothing}

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

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

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

-- | Defines the object schema located at @paths.\/v1\/payment_intents\/{intent}\/confirm.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.payment_method_data.properties.sepa_debit@ in the specification.
data PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'SepaDebit' = PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'SepaDebit'
  { -- | iban
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'SepaDebit'
-> Text
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'SepaDebit'Iban :: Data.Text.Internal.Text
  }
  deriving
    ( Int
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'SepaDebit'
-> String
-> String
[PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'SepaDebit']
-> String -> String
PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'SepaDebit'
-> String
(Int
 -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'SepaDebit'
 -> String
 -> String)
-> (PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'SepaDebit'
    -> String)
-> ([PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'SepaDebit']
    -> String -> String)
-> Show
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'SepaDebit'
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'SepaDebit']
-> String -> String
$cshowList :: [PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'SepaDebit']
-> String -> String
show :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'SepaDebit'
-> String
$cshow :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'SepaDebit'
-> String
showsPrec :: Int
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'SepaDebit'
-> String
-> String
$cshowsPrec :: Int
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'SepaDebit'
-> String
-> String
GHC.Show.Show,
      PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'SepaDebit'
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'SepaDebit'
-> Bool
(PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'SepaDebit'
 -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'SepaDebit'
 -> Bool)
-> (PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'SepaDebit'
    -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'SepaDebit'
    -> Bool)
-> Eq
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'SepaDebit'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'SepaDebit'
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'SepaDebit'
-> Bool
$c/= :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'SepaDebit'
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'SepaDebit'
-> Bool
== :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'SepaDebit'
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'SepaDebit'
-> Bool
$c== :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'SepaDebit'
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'SepaDebit'
-> Bool
GHC.Classes.Eq
    )

instance Data.Aeson.Types.ToJSON.ToJSON PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'SepaDebit' where
  toJSON :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'SepaDebit'
-> Value
toJSON PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'SepaDebit'
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..= PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'SepaDebit'
-> Text
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'SepaDebit'Iban PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'SepaDebit'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'SepaDebit'
-> Encoding
toEncoding PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'SepaDebit'
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..= PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'SepaDebit'
-> Text
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'SepaDebit'Iban PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'SepaDebit'
obj)

instance Data.Aeson.Types.FromJSON.FromJSON PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'SepaDebit' where
  parseJSON :: Value
-> Parser
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'SepaDebit'
parseJSON = String
-> (Object
    -> Parser
         PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'SepaDebit')
-> Value
-> Parser
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'SepaDebit'
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.Aeson.Types.FromJSON.withObject String
"PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'SepaDebit'" (\Object
obj -> (Text
 -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'SepaDebit')
-> Parser
     (Text
      -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'SepaDebit')
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure Text
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'SepaDebit'
PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'SepaDebit' Parser
  (Text
   -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'SepaDebit')
-> Parser Text
-> Parser
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'SepaDebit'
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 'PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'SepaDebit'' with all required fields.
mkPostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'SepaDebit' ::
  -- | 'postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'SepaDebit'Iban'
  Data.Text.Internal.Text ->
  PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'SepaDebit'
mkPostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'SepaDebit' :: Text
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'SepaDebit'
mkPostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'SepaDebit' Text
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'SepaDebit'Iban = PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'SepaDebit' :: Text
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'SepaDebit'
PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'SepaDebit' {postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'SepaDebit'Iban :: Text
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'SepaDebit'Iban = Text
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'SepaDebit'Iban}

-- | Defines the object schema located at @paths.\/v1\/payment_intents\/{intent}\/confirm.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.payment_method_data.properties.sofort@ in the specification.
data PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Sofort' = PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Sofort'
  { -- | country
    PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Sofort'
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Sofort'Country'
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Sofort'Country :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Sofort'Country'
  }
  deriving
    ( Int
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Sofort'
-> String
-> String
[PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Sofort']
-> String -> String
PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Sofort'
-> String
(Int
 -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Sofort'
 -> String
 -> String)
-> (PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Sofort'
    -> String)
-> ([PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Sofort']
    -> String -> String)
-> Show
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Sofort'
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Sofort']
-> String -> String
$cshowList :: [PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Sofort']
-> String -> String
show :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Sofort'
-> String
$cshow :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Sofort'
-> String
showsPrec :: Int
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Sofort'
-> String
-> String
$cshowsPrec :: Int
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Sofort'
-> String
-> String
GHC.Show.Show,
      PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Sofort'
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Sofort'
-> Bool
(PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Sofort'
 -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Sofort'
 -> Bool)
-> (PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Sofort'
    -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Sofort'
    -> Bool)
-> Eq
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Sofort'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Sofort'
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Sofort'
-> Bool
$c/= :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Sofort'
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Sofort'
-> Bool
== :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Sofort'
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Sofort'
-> Bool
$c== :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Sofort'
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Sofort'
-> Bool
GHC.Classes.Eq
    )

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

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

-- | Create a new 'PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Sofort'' with all required fields.
mkPostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Sofort' ::
  -- | 'postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Sofort'Country'
  PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Sofort'Country' ->
  PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Sofort'
mkPostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Sofort' :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Sofort'Country'
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Sofort'
mkPostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Sofort' PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Sofort'Country'
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Sofort'Country = PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Sofort' :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Sofort'Country'
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Sofort'
PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Sofort' {postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Sofort'Country :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Sofort'Country'
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Sofort'Country = PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Sofort'Country'
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Sofort'Country}

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

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

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

-- | Defines the enum schema located at @paths.\/v1\/payment_intents\/{intent}\/confirm.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.payment_method_data.properties.type@ in the specification.
data PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Type'
  = -- | This case is used if the value encountered during decoding does not match any of the provided cases in the specification.
    PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Type'Other Data.Aeson.Types.Internal.Value
  | -- | This constructor can be used to send values to the server which are not present in the specification yet.
    PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Type'Typed Data.Text.Internal.Text
  | -- | Represents the JSON value @"acss_debit"@
    PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Type'EnumAcssDebit
  | -- | Represents the JSON value @"afterpay_clearpay"@
    PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Type'EnumAfterpayClearpay
  | -- | Represents the JSON value @"alipay"@
    PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Type'EnumAlipay
  | -- | Represents the JSON value @"au_becs_debit"@
    PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Type'EnumAuBecsDebit
  | -- | Represents the JSON value @"bacs_debit"@
    PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Type'EnumBacsDebit
  | -- | Represents the JSON value @"bancontact"@
    PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Type'EnumBancontact
  | -- | Represents the JSON value @"boleto"@
    PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Type'EnumBoleto
  | -- | Represents the JSON value @"eps"@
    PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Type'EnumEps
  | -- | Represents the JSON value @"fpx"@
    PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Type'EnumFpx
  | -- | Represents the JSON value @"giropay"@
    PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Type'EnumGiropay
  | -- | Represents the JSON value @"grabpay"@
    PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Type'EnumGrabpay
  | -- | Represents the JSON value @"ideal"@
    PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Type'EnumIdeal
  | -- | Represents the JSON value @"oxxo"@
    PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Type'EnumOxxo
  | -- | Represents the JSON value @"p24"@
    PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Type'EnumP24
  | -- | Represents the JSON value @"sepa_debit"@
    PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Type'EnumSepaDebit
  | -- | Represents the JSON value @"sofort"@
    PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Type'EnumSofort
  deriving (Int
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Type'
-> String
-> String
[PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Type']
-> String -> String
PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Type'
-> String
(Int
 -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Type'
 -> String
 -> String)
-> (PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Type'
    -> String)
-> ([PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Type']
    -> String -> String)
-> Show
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Type'
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Type']
-> String -> String
$cshowList :: [PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Type']
-> String -> String
show :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Type'
-> String
$cshow :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Type'
-> String
showsPrec :: Int
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Type'
-> String
-> String
$cshowsPrec :: Int
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Type'
-> String
-> String
GHC.Show.Show, PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Type'
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Type'
-> Bool
(PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Type'
 -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Type'
 -> Bool)
-> (PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Type'
    -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Type'
    -> Bool)
-> Eq
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Type'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Type'
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Type'
-> Bool
$c/= :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Type'
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Type'
-> Bool
== :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Type'
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Type'
-> Bool
$c== :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Type'
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Type'
-> Bool
GHC.Classes.Eq)

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

instance Data.Aeson.Types.FromJSON.FromJSON PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Type' where
  parseJSON :: Value
-> Parser
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Type'
parseJSON Value
val =
    PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Type'
-> Parser
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Type'
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure
      ( if
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"acss_debit" -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Type'
PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Type'EnumAcssDebit
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"afterpay_clearpay" -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Type'
PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Type'EnumAfterpayClearpay
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"alipay" -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Type'
PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Type'EnumAlipay
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"au_becs_debit" -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Type'
PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Type'EnumAuBecsDebit
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"bacs_debit" -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Type'
PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Type'EnumBacsDebit
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"bancontact" -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Type'
PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Type'EnumBancontact
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"boleto" -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Type'
PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Type'EnumBoleto
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"eps" -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Type'
PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Type'EnumEps
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"fpx" -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Type'
PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Type'EnumFpx
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"giropay" -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Type'
PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Type'EnumGiropay
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"grabpay" -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Type'
PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Type'EnumGrabpay
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"ideal" -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Type'
PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Type'EnumIdeal
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"oxxo" -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Type'
PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Type'EnumOxxo
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"p24" -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Type'
PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Type'EnumP24
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"sepa_debit" -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Type'
PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Type'EnumSepaDebit
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"sofort" -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Type'
PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Type'EnumSofort
            | Bool
GHC.Base.otherwise -> Value
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Type'
PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodData'Type'Other Value
val
      )

-- | Defines the object schema located at @paths.\/v1\/payment_intents\/{intent}\/confirm.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.payment_method_options@ in the specification.
--
-- Payment-method-specific configuration for this PaymentIntent.
data PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions' = PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'
  { -- | acss_debit
    PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'Variants
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit :: (GHC.Maybe.Maybe PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'Variants),
    -- | afterpay_clearpay
    PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AfterpayClearpay'Variants
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AfterpayClearpay :: (GHC.Maybe.Maybe PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AfterpayClearpay'Variants),
    -- | alipay
    PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Alipay'Variants
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Alipay :: (GHC.Maybe.Maybe PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Alipay'Variants),
    -- | bancontact
    PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Bancontact'Variants
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Bancontact :: (GHC.Maybe.Maybe PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Bancontact'Variants),
    -- | boleto
    PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Boleto'Variants
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Boleto :: (GHC.Maybe.Maybe PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Boleto'Variants),
    -- | card
    PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'Variants
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card :: (GHC.Maybe.Maybe PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'Variants),
    -- | card_present
    PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'CardPresent'Variants
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'CardPresent :: (GHC.Maybe.Maybe PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'CardPresent'Variants),
    -- | oxxo
    PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Oxxo'Variants
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Oxxo :: (GHC.Maybe.Maybe PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Oxxo'Variants),
    -- | p24
    PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'P24'Variants
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'P24 :: (GHC.Maybe.Maybe PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'P24'Variants),
    -- | sepa_debit
    PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'SepaDebit'Variants
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'SepaDebit :: (GHC.Maybe.Maybe PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'SepaDebit'Variants),
    -- | sofort
    PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'Variants
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort :: (GHC.Maybe.Maybe PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'Variants)
  }
  deriving
    ( Int
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'
-> String
-> String
[PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions']
-> String -> String
PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'
-> String
(Int
 -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'
 -> String
 -> String)
-> (PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'
    -> String)
-> ([PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions']
    -> String -> String)
-> Show
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions']
-> String -> String
$cshowList :: [PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions']
-> String -> String
show :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'
-> String
$cshow :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'
-> String
showsPrec :: Int
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'
-> String
-> String
$cshowsPrec :: Int
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'
-> String
-> String
GHC.Show.Show,
      PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'
-> Bool
(PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'
 -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'
 -> Bool)
-> (PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'
    -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'
    -> Bool)
-> Eq
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'
-> Bool
$c/= :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'
-> Bool
== :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'
-> Bool
$c== :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'
-> Bool
GHC.Classes.Eq
    )

instance Data.Aeson.Types.ToJSON.ToJSON PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions' where
  toJSON :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'
-> Value
toJSON PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'
obj = [Pair] -> Value
Data.Aeson.Types.Internal.object (Text
"acss_debit" Text
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'Variants
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'Variants
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"afterpay_clearpay" Text
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AfterpayClearpay'Variants
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AfterpayClearpay'Variants
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AfterpayClearpay PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"alipay" Text
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Alipay'Variants
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Alipay'Variants
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Alipay PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"bancontact" Text
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Bancontact'Variants
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Bancontact'Variants
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Bancontact PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"boleto" Text
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Boleto'Variants
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Boleto'Variants
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Boleto PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"card" Text
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'Variants
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'Variants
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"card_present" Text
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'CardPresent'Variants
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'CardPresent'Variants
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'CardPresent PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"oxxo" Text
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Oxxo'Variants
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Oxxo'Variants
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Oxxo PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"p24" Text
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'P24'Variants
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'P24'Variants
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'P24 PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"sepa_debit" Text
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'SepaDebit'Variants
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'SepaDebit'Variants
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'SepaDebit PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"sofort" Text
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'Variants
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'Variants
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'
-> Encoding
toEncoding PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'
obj = Series -> Encoding
Data.Aeson.Encoding.Internal.pairs ((Text
"acss_debit" Text
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'Variants
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'Variants
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"afterpay_clearpay" Text
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AfterpayClearpay'Variants
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AfterpayClearpay'Variants
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AfterpayClearpay PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"alipay" Text
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Alipay'Variants
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Alipay'Variants
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Alipay PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"bancontact" Text
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Bancontact'Variants
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Bancontact'Variants
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Bancontact PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"boleto" Text
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Boleto'Variants
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Boleto'Variants
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Boleto PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"card" Text
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'Variants
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'Variants
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"card_present" Text
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'CardPresent'Variants
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'CardPresent'Variants
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'CardPresent PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"oxxo" Text
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Oxxo'Variants
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Oxxo'Variants
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Oxxo PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"p24" Text
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'P24'Variants
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'P24'Variants
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'P24 PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"sepa_debit" Text
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'SepaDebit'Variants
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'SepaDebit'Variants
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'SepaDebit PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> (Text
"sofort" Text
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'Variants
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'Variants
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'
obj)))))))))))

instance Data.Aeson.Types.FromJSON.FromJSON PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions' where
  parseJSON :: Value
-> Parser
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'
parseJSON = String
-> (Object
    -> Parser
         PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions')
-> Value
-> Parser
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.Aeson.Types.FromJSON.withObject String
"PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'" (\Object
obj -> (((((((((((Maybe
   PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'Variants
 -> Maybe
      PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AfterpayClearpay'Variants
 -> Maybe
      PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Alipay'Variants
 -> Maybe
      PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Bancontact'Variants
 -> Maybe
      PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Boleto'Variants
 -> Maybe
      PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'Variants
 -> Maybe
      PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'CardPresent'Variants
 -> Maybe
      PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Oxxo'Variants
 -> Maybe
      PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'P24'Variants
 -> Maybe
      PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'SepaDebit'Variants
 -> Maybe
      PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'Variants
 -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions')
-> Parser
     (Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'Variants
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AfterpayClearpay'Variants
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Alipay'Variants
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Bancontact'Variants
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Boleto'Variants
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'Variants
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'CardPresent'Variants
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Oxxo'Variants
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'P24'Variants
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'SepaDebit'Variants
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'Variants
      -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions')
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure Maybe
  PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'Variants
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AfterpayClearpay'Variants
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Alipay'Variants
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Bancontact'Variants
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Boleto'Variants
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'Variants
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'CardPresent'Variants
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Oxxo'Variants
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'P24'Variants
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'SepaDebit'Variants
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'Variants
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'
PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions' Parser
  (Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'Variants
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AfterpayClearpay'Variants
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Alipay'Variants
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Bancontact'Variants
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Boleto'Variants
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'Variants
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'CardPresent'Variants
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Oxxo'Variants
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'P24'Variants
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'SepaDebit'Variants
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'Variants
   -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions')
-> Parser
     (Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'Variants)
-> Parser
     (Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AfterpayClearpay'Variants
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Alipay'Variants
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Bancontact'Variants
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Boleto'Variants
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'Variants
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'CardPresent'Variants
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Oxxo'Variants
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'P24'Variants
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'SepaDebit'Variants
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'Variants
      -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     (Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'Variants)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"acss_debit")) Parser
  (Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AfterpayClearpay'Variants
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Alipay'Variants
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Bancontact'Variants
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Boleto'Variants
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'Variants
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'CardPresent'Variants
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Oxxo'Variants
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'P24'Variants
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'SepaDebit'Variants
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'Variants
   -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions')
-> Parser
     (Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AfterpayClearpay'Variants)
-> Parser
     (Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Alipay'Variants
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Bancontact'Variants
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Boleto'Variants
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'Variants
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'CardPresent'Variants
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Oxxo'Variants
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'P24'Variants
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'SepaDebit'Variants
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'Variants
      -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     (Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AfterpayClearpay'Variants)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"afterpay_clearpay")) Parser
  (Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Alipay'Variants
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Bancontact'Variants
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Boleto'Variants
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'Variants
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'CardPresent'Variants
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Oxxo'Variants
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'P24'Variants
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'SepaDebit'Variants
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'Variants
   -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions')
-> Parser
     (Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Alipay'Variants)
-> Parser
     (Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Bancontact'Variants
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Boleto'Variants
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'Variants
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'CardPresent'Variants
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Oxxo'Variants
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'P24'Variants
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'SepaDebit'Variants
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'Variants
      -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     (Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Alipay'Variants)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"alipay")) Parser
  (Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Bancontact'Variants
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Boleto'Variants
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'Variants
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'CardPresent'Variants
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Oxxo'Variants
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'P24'Variants
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'SepaDebit'Variants
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'Variants
   -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions')
-> Parser
     (Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Bancontact'Variants)
-> Parser
     (Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Boleto'Variants
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'Variants
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'CardPresent'Variants
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Oxxo'Variants
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'P24'Variants
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'SepaDebit'Variants
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'Variants
      -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     (Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Bancontact'Variants)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"bancontact")) Parser
  (Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Boleto'Variants
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'Variants
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'CardPresent'Variants
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Oxxo'Variants
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'P24'Variants
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'SepaDebit'Variants
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'Variants
   -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions')
-> Parser
     (Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Boleto'Variants)
-> Parser
     (Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'Variants
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'CardPresent'Variants
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Oxxo'Variants
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'P24'Variants
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'SepaDebit'Variants
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'Variants
      -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     (Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Boleto'Variants)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"boleto")) Parser
  (Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'Variants
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'CardPresent'Variants
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Oxxo'Variants
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'P24'Variants
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'SepaDebit'Variants
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'Variants
   -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions')
-> Parser
     (Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'Variants)
-> Parser
     (Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'CardPresent'Variants
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Oxxo'Variants
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'P24'Variants
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'SepaDebit'Variants
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'Variants
      -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     (Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'Variants)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"card")) Parser
  (Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'CardPresent'Variants
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Oxxo'Variants
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'P24'Variants
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'SepaDebit'Variants
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'Variants
   -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions')
-> Parser
     (Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'CardPresent'Variants)
-> Parser
     (Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Oxxo'Variants
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'P24'Variants
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'SepaDebit'Variants
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'Variants
      -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     (Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'CardPresent'Variants)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"card_present")) Parser
  (Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Oxxo'Variants
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'P24'Variants
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'SepaDebit'Variants
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'Variants
   -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions')
-> Parser
     (Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Oxxo'Variants)
-> Parser
     (Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'P24'Variants
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'SepaDebit'Variants
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'Variants
      -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     (Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Oxxo'Variants)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"oxxo")) Parser
  (Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'P24'Variants
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'SepaDebit'Variants
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'Variants
   -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions')
-> Parser
     (Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'P24'Variants)
-> Parser
     (Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'SepaDebit'Variants
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'Variants
      -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     (Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'P24'Variants)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"p24")) Parser
  (Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'SepaDebit'Variants
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'Variants
   -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions')
-> Parser
     (Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'SepaDebit'Variants)
-> Parser
     (Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'Variants
      -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     (Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'SepaDebit'Variants)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"sepa_debit")) Parser
  (Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'Variants
   -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions')
-> Parser
     (Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'Variants)
-> Parser
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     (Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'Variants)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"sofort"))

-- | Create a new 'PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'' with all required fields.
mkPostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions' :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'
mkPostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions' :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'
mkPostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions' =
  PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions' :: Maybe
  PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'Variants
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AfterpayClearpay'Variants
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Alipay'Variants
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Bancontact'Variants
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Boleto'Variants
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'Variants
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'CardPresent'Variants
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Oxxo'Variants
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'P24'Variants
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'SepaDebit'Variants
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'Variants
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'
PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'
    { postPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit :: Maybe
  PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'Variants
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit = Maybe
  PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'Variants
forall a. Maybe a
GHC.Maybe.Nothing,
      postPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AfterpayClearpay :: Maybe
  PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AfterpayClearpay'Variants
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AfterpayClearpay = Maybe
  PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AfterpayClearpay'Variants
forall a. Maybe a
GHC.Maybe.Nothing,
      postPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Alipay :: Maybe
  PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Alipay'Variants
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Alipay = Maybe
  PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Alipay'Variants
forall a. Maybe a
GHC.Maybe.Nothing,
      postPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Bancontact :: Maybe
  PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Bancontact'Variants
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Bancontact = Maybe
  PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Bancontact'Variants
forall a. Maybe a
GHC.Maybe.Nothing,
      postPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Boleto :: Maybe
  PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Boleto'Variants
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Boleto = Maybe
  PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Boleto'Variants
forall a. Maybe a
GHC.Maybe.Nothing,
      postPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card :: Maybe
  PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'Variants
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card = Maybe
  PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'Variants
forall a. Maybe a
GHC.Maybe.Nothing,
      postPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'CardPresent :: Maybe
  PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'CardPresent'Variants
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'CardPresent = Maybe
  PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'CardPresent'Variants
forall a. Maybe a
GHC.Maybe.Nothing,
      postPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Oxxo :: Maybe
  PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Oxxo'Variants
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Oxxo = Maybe
  PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Oxxo'Variants
forall a. Maybe a
GHC.Maybe.Nothing,
      postPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'P24 :: Maybe
  PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'P24'Variants
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'P24 = Maybe
  PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'P24'Variants
forall a. Maybe a
GHC.Maybe.Nothing,
      postPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'SepaDebit :: Maybe
  PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'SepaDebit'Variants
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'SepaDebit = Maybe
  PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'SepaDebit'Variants
forall a. Maybe a
GHC.Maybe.Nothing,
      postPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort :: Maybe
  PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'Variants
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort = Maybe
  PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'Variants
forall a. Maybe a
GHC.Maybe.Nothing
    }

-- | Defines the object schema located at @paths.\/v1\/payment_intents\/{intent}\/confirm.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.payment_method_options.properties.acss_debit.anyOf@ in the specification.
data PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1 = PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1
  { -- | mandate_options
    PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions :: (GHC.Maybe.Maybe PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'),
    -- | verification_method
    PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1VerificationMethod'
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1VerificationMethod :: (GHC.Maybe.Maybe PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1VerificationMethod')
  }
  deriving
    ( Int
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1
-> String
-> String
[PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1]
-> String -> String
PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1
-> String
(Int
 -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1
 -> String
 -> String)
-> (PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1
    -> String)
-> ([PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1]
    -> String -> String)
-> Show
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1]
-> String -> String
$cshowList :: [PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1]
-> String -> String
show :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1
-> String
$cshow :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1
-> String
showsPrec :: Int
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1
-> String
-> String
$cshowsPrec :: Int
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1
-> String
-> String
GHC.Show.Show,
      PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1
-> Bool
(PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1
 -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1
 -> Bool)
-> (PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1
    -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1
    -> Bool)
-> Eq
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1
-> Bool
$c/= :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1
-> Bool
== :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1
-> Bool
$c== :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1
-> Bool
GHC.Classes.Eq
    )

instance Data.Aeson.Types.ToJSON.ToJSON PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1 where
  toJSON :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1
-> Value
toJSON PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1
obj = [Pair] -> Value
Data.Aeson.Types.Internal.object (Text
"mandate_options" Text
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"verification_method" Text
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1VerificationMethod'
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1VerificationMethod'
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1VerificationMethod PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1
-> Encoding
toEncoding PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1
obj = Series -> Encoding
Data.Aeson.Encoding.Internal.pairs ((Text
"mandate_options" Text
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> (Text
"verification_method" Text
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1VerificationMethod'
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1VerificationMethod'
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1VerificationMethod PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1
obj))

instance Data.Aeson.Types.FromJSON.FromJSON PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1 where
  parseJSON :: Value
-> Parser
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1
parseJSON = String
-> (Object
    -> Parser
         PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1)
-> Value
-> Parser
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.Aeson.Types.FromJSON.withObject String
"PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1" (\Object
obj -> ((Maybe
   PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'
 -> Maybe
      PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1VerificationMethod'
 -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1)
-> Parser
     (Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1VerificationMethod'
      -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1)
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure Maybe
  PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1VerificationMethod'
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1
PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1 Parser
  (Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1VerificationMethod'
   -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1)
-> Parser
     (Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions')
-> Parser
     (Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1VerificationMethod'
      -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     (Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions')
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"mandate_options")) Parser
  (Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1VerificationMethod'
   -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1)
-> Parser
     (Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1VerificationMethod')
-> Parser
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     (Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1VerificationMethod')
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"verification_method"))

-- | Create a new 'PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1' with all required fields.
mkPostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1 :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1
mkPostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1 :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1
mkPostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1 =
  PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1 :: Maybe
  PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1VerificationMethod'
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1
PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1
    { postPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions :: Maybe
  PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions = Maybe
  PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'
forall a. Maybe a
GHC.Maybe.Nothing,
      postPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1VerificationMethod :: Maybe
  PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1VerificationMethod'
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1VerificationMethod = Maybe
  PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1VerificationMethod'
forall a. Maybe a
GHC.Maybe.Nothing
    }

-- | Defines the object schema located at @paths.\/v1\/payment_intents\/{intent}\/confirm.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.payment_method_options.properties.acss_debit.anyOf.properties.mandate_options@ in the specification.
data PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions' = PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'
  { -- | custom_mandate_url
    PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'CustomMandateUrl'Variants
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'CustomMandateUrl :: (GHC.Maybe.Maybe PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'CustomMandateUrl'Variants),
    -- | interval_description
    --
    -- Constraints:
    --
    -- * Maximum length of 500
    PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'
-> Maybe Text
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'IntervalDescription :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | payment_schedule
    PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'PaymentSchedule'
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'PaymentSchedule :: (GHC.Maybe.Maybe PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'PaymentSchedule'),
    -- | transaction_type
    PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'TransactionType'
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'TransactionType :: (GHC.Maybe.Maybe PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'TransactionType')
  }
  deriving
    ( Int
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'
-> String
-> String
[PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions']
-> String -> String
PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'
-> String
(Int
 -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'
 -> String
 -> String)
-> (PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'
    -> String)
-> ([PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions']
    -> String -> String)
-> Show
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions']
-> String -> String
$cshowList :: [PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions']
-> String -> String
show :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'
-> String
$cshow :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'
-> String
showsPrec :: Int
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'
-> String
-> String
$cshowsPrec :: Int
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'
-> String
-> String
GHC.Show.Show,
      PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'
-> Bool
(PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'
 -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'
 -> Bool)
-> (PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'
    -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'
    -> Bool)
-> Eq
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'
-> Bool
$c/= :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'
-> Bool
== :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'
-> Bool
$c== :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'
-> Bool
GHC.Classes.Eq
    )

instance Data.Aeson.Types.ToJSON.ToJSON PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions' where
  toJSON :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'
-> Value
toJSON PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'
obj = [Pair] -> Value
Data.Aeson.Types.Internal.object (Text
"custom_mandate_url" Text
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'CustomMandateUrl'Variants
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'CustomMandateUrl'Variants
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'CustomMandateUrl PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"interval_description" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'
-> Maybe Text
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'IntervalDescription PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"payment_schedule" Text
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'PaymentSchedule'
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'PaymentSchedule'
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'PaymentSchedule PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"transaction_type" Text
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'TransactionType'
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'TransactionType'
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'TransactionType PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'
-> Encoding
toEncoding PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'
obj = Series -> Encoding
Data.Aeson.Encoding.Internal.pairs ((Text
"custom_mandate_url" Text
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'CustomMandateUrl'Variants
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'CustomMandateUrl'Variants
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'CustomMandateUrl PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"interval_description" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'
-> Maybe Text
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'IntervalDescription PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"payment_schedule" Text
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'PaymentSchedule'
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'PaymentSchedule'
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'PaymentSchedule PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> (Text
"transaction_type" Text
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'TransactionType'
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'TransactionType'
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'TransactionType PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'
obj))))

instance Data.Aeson.Types.FromJSON.FromJSON PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions' where
  parseJSON :: Value
-> Parser
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'
parseJSON = String
-> (Object
    -> Parser
         PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions')
-> Value
-> Parser
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.Aeson.Types.FromJSON.withObject String
"PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'" (\Object
obj -> ((((Maybe
   PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'CustomMandateUrl'Variants
 -> Maybe Text
 -> Maybe
      PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'PaymentSchedule'
 -> Maybe
      PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'TransactionType'
 -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions')
-> Parser
     (Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'CustomMandateUrl'Variants
      -> Maybe Text
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'PaymentSchedule'
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'TransactionType'
      -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions')
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure Maybe
  PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'CustomMandateUrl'Variants
-> Maybe Text
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'PaymentSchedule'
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'TransactionType'
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'
PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions' Parser
  (Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'CustomMandateUrl'Variants
   -> Maybe Text
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'PaymentSchedule'
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'TransactionType'
   -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions')
-> Parser
     (Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'CustomMandateUrl'Variants)
-> Parser
     (Maybe Text
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'PaymentSchedule'
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'TransactionType'
      -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     (Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'CustomMandateUrl'Variants)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"custom_mandate_url")) Parser
  (Maybe Text
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'PaymentSchedule'
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'TransactionType'
   -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions')
-> Parser (Maybe Text)
-> Parser
     (Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'PaymentSchedule'
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'TransactionType'
      -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions')
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
"interval_description")) Parser
  (Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'PaymentSchedule'
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'TransactionType'
   -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions')
-> Parser
     (Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'PaymentSchedule')
-> Parser
     (Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'TransactionType'
      -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     (Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'PaymentSchedule')
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"payment_schedule")) Parser
  (Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'TransactionType'
   -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions')
-> Parser
     (Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'TransactionType')
-> Parser
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     (Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'TransactionType')
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"transaction_type"))

-- | Create a new 'PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'' with all required fields.
mkPostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions' :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'
mkPostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions' :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'
mkPostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions' =
  PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions' :: Maybe
  PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'CustomMandateUrl'Variants
-> Maybe Text
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'PaymentSchedule'
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'TransactionType'
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'
PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'
    { postPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'CustomMandateUrl :: Maybe
  PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'CustomMandateUrl'Variants
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'CustomMandateUrl = Maybe
  PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'CustomMandateUrl'Variants
forall a. Maybe a
GHC.Maybe.Nothing,
      postPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'IntervalDescription :: Maybe Text
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'IntervalDescription = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      postPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'PaymentSchedule :: Maybe
  PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'PaymentSchedule'
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'PaymentSchedule = Maybe
  PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'PaymentSchedule'
forall a. Maybe a
GHC.Maybe.Nothing,
      postPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'TransactionType :: Maybe
  PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'TransactionType'
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'TransactionType = Maybe
  PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'TransactionType'
forall a. Maybe a
GHC.Maybe.Nothing
    }

-- | Defines the oneOf schema located at @paths.\/v1\/payment_intents\/{intent}\/confirm.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.payment_method_options.properties.acss_debit.anyOf.properties.mandate_options.properties.custom_mandate_url.anyOf@ in the specification.
data PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'CustomMandateUrl'Variants
  = -- | Represents the JSON value @""@
    PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'CustomMandateUrl'EmptyString
  | PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'CustomMandateUrl'Text Data.Text.Internal.Text
  deriving (Int
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'CustomMandateUrl'Variants
-> String
-> String
[PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'CustomMandateUrl'Variants]
-> String -> String
PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'CustomMandateUrl'Variants
-> String
(Int
 -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'CustomMandateUrl'Variants
 -> String
 -> String)
-> (PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'CustomMandateUrl'Variants
    -> String)
-> ([PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'CustomMandateUrl'Variants]
    -> String -> String)
-> Show
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'CustomMandateUrl'Variants
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'CustomMandateUrl'Variants]
-> String -> String
$cshowList :: [PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'CustomMandateUrl'Variants]
-> String -> String
show :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'CustomMandateUrl'Variants
-> String
$cshow :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'CustomMandateUrl'Variants
-> String
showsPrec :: Int
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'CustomMandateUrl'Variants
-> String
-> String
$cshowsPrec :: Int
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'CustomMandateUrl'Variants
-> String
-> String
GHC.Show.Show, PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'CustomMandateUrl'Variants
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'CustomMandateUrl'Variants
-> Bool
(PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'CustomMandateUrl'Variants
 -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'CustomMandateUrl'Variants
 -> Bool)
-> (PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'CustomMandateUrl'Variants
    -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'CustomMandateUrl'Variants
    -> Bool)
-> Eq
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'CustomMandateUrl'Variants
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'CustomMandateUrl'Variants
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'CustomMandateUrl'Variants
-> Bool
$c/= :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'CustomMandateUrl'Variants
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'CustomMandateUrl'Variants
-> Bool
== :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'CustomMandateUrl'Variants
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'CustomMandateUrl'Variants
-> Bool
$c== :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'CustomMandateUrl'Variants
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'CustomMandateUrl'Variants
-> Bool
GHC.Classes.Eq)

instance Data.Aeson.Types.ToJSON.ToJSON PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'CustomMandateUrl'Variants where
  toJSON :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'CustomMandateUrl'Variants
-> Value
toJSON (PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'CustomMandateUrl'Text Text
a) = Text -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON Text
a
  toJSON (PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'CustomMandateUrl'Variants
PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'CustomMandateUrl'EmptyString) = Value
""

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

-- | Defines the enum schema located at @paths.\/v1\/payment_intents\/{intent}\/confirm.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.payment_method_options.properties.acss_debit.anyOf.properties.mandate_options.properties.payment_schedule@ in the specification.
data PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'PaymentSchedule'
  = -- | This case is used if the value encountered during decoding does not match any of the provided cases in the specification.
    PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'PaymentSchedule'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.
    PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'PaymentSchedule'Typed Data.Text.Internal.Text
  | -- | Represents the JSON value @"combined"@
    PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'PaymentSchedule'EnumCombined
  | -- | Represents the JSON value @"interval"@
    PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'PaymentSchedule'EnumInterval
  | -- | Represents the JSON value @"sporadic"@
    PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'PaymentSchedule'EnumSporadic
  deriving (Int
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'PaymentSchedule'
-> String
-> String
[PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'PaymentSchedule']
-> String -> String
PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'PaymentSchedule'
-> String
(Int
 -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'PaymentSchedule'
 -> String
 -> String)
-> (PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'PaymentSchedule'
    -> String)
-> ([PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'PaymentSchedule']
    -> String -> String)
-> Show
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'PaymentSchedule'
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'PaymentSchedule']
-> String -> String
$cshowList :: [PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'PaymentSchedule']
-> String -> String
show :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'PaymentSchedule'
-> String
$cshow :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'PaymentSchedule'
-> String
showsPrec :: Int
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'PaymentSchedule'
-> String
-> String
$cshowsPrec :: Int
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'PaymentSchedule'
-> String
-> String
GHC.Show.Show, PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'PaymentSchedule'
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'PaymentSchedule'
-> Bool
(PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'PaymentSchedule'
 -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'PaymentSchedule'
 -> Bool)
-> (PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'PaymentSchedule'
    -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'PaymentSchedule'
    -> Bool)
-> Eq
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'PaymentSchedule'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'PaymentSchedule'
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'PaymentSchedule'
-> Bool
$c/= :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'PaymentSchedule'
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'PaymentSchedule'
-> Bool
== :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'PaymentSchedule'
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'PaymentSchedule'
-> Bool
$c== :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'PaymentSchedule'
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'PaymentSchedule'
-> Bool
GHC.Classes.Eq)

instance Data.Aeson.Types.ToJSON.ToJSON PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'PaymentSchedule' where
  toJSON :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'PaymentSchedule'
-> Value
toJSON (PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'PaymentSchedule'Other Value
val) = Value
val
  toJSON (PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'PaymentSchedule'Typed Text
val) = Text -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON Text
val
  toJSON (PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'PaymentSchedule'
PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'PaymentSchedule'EnumCombined) = Value
"combined"
  toJSON (PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'PaymentSchedule'
PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'PaymentSchedule'EnumInterval) = Value
"interval"
  toJSON (PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'PaymentSchedule'
PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'PaymentSchedule'EnumSporadic) = Value
"sporadic"

instance Data.Aeson.Types.FromJSON.FromJSON PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'PaymentSchedule' where
  parseJSON :: Value
-> Parser
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'PaymentSchedule'
parseJSON Value
val =
    PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'PaymentSchedule'
-> Parser
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'PaymentSchedule'
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
"combined" -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'PaymentSchedule'
PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'PaymentSchedule'EnumCombined
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"interval" -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'PaymentSchedule'
PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'PaymentSchedule'EnumInterval
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"sporadic" -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'PaymentSchedule'
PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'PaymentSchedule'EnumSporadic
            | Bool
GHC.Base.otherwise -> Value
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'PaymentSchedule'
PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'PaymentSchedule'Other Value
val
      )

-- | Defines the enum schema located at @paths.\/v1\/payment_intents\/{intent}\/confirm.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.payment_method_options.properties.acss_debit.anyOf.properties.mandate_options.properties.transaction_type@ in the specification.
data PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'TransactionType'
  = -- | This case is used if the value encountered during decoding does not match any of the provided cases in the specification.
    PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'TransactionType'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.
    PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'TransactionType'Typed Data.Text.Internal.Text
  | -- | Represents the JSON value @"business"@
    PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'TransactionType'EnumBusiness
  | -- | Represents the JSON value @"personal"@
    PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'TransactionType'EnumPersonal
  deriving (Int
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'TransactionType'
-> String
-> String
[PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'TransactionType']
-> String -> String
PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'TransactionType'
-> String
(Int
 -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'TransactionType'
 -> String
 -> String)
-> (PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'TransactionType'
    -> String)
-> ([PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'TransactionType']
    -> String -> String)
-> Show
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'TransactionType'
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'TransactionType']
-> String -> String
$cshowList :: [PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'TransactionType']
-> String -> String
show :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'TransactionType'
-> String
$cshow :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'TransactionType'
-> String
showsPrec :: Int
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'TransactionType'
-> String
-> String
$cshowsPrec :: Int
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'TransactionType'
-> String
-> String
GHC.Show.Show, PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'TransactionType'
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'TransactionType'
-> Bool
(PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'TransactionType'
 -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'TransactionType'
 -> Bool)
-> (PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'TransactionType'
    -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'TransactionType'
    -> Bool)
-> Eq
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'TransactionType'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'TransactionType'
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'TransactionType'
-> Bool
$c/= :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'TransactionType'
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'TransactionType'
-> Bool
== :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'TransactionType'
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'TransactionType'
-> Bool
$c== :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'TransactionType'
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'TransactionType'
-> Bool
GHC.Classes.Eq)

instance Data.Aeson.Types.ToJSON.ToJSON PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'TransactionType' where
  toJSON :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'TransactionType'
-> Value
toJSON (PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'TransactionType'Other Value
val) = Value
val
  toJSON (PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'TransactionType'Typed Text
val) = Text -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON Text
val
  toJSON (PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'TransactionType'
PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'TransactionType'EnumBusiness) = Value
"business"
  toJSON (PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'TransactionType'
PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'TransactionType'EnumPersonal) = Value
"personal"

instance Data.Aeson.Types.FromJSON.FromJSON PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'TransactionType' where
  parseJSON :: Value
-> Parser
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'TransactionType'
parseJSON Value
val =
    PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'TransactionType'
-> Parser
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'TransactionType'
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
"business" -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'TransactionType'
PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'TransactionType'EnumBusiness
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"personal" -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'TransactionType'
PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'TransactionType'EnumPersonal
            | Bool
GHC.Base.otherwise -> Value
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'TransactionType'
PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1MandateOptions'TransactionType'Other Value
val
      )

-- | Defines the enum schema located at @paths.\/v1\/payment_intents\/{intent}\/confirm.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.payment_method_options.properties.acss_debit.anyOf.properties.verification_method@ in the specification.
data PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1VerificationMethod'
  = -- | This case is used if the value encountered during decoding does not match any of the provided cases in the specification.
    PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1VerificationMethod'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.
    PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1VerificationMethod'Typed Data.Text.Internal.Text
  | -- | Represents the JSON value @"automatic"@
    PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1VerificationMethod'EnumAutomatic
  | -- | Represents the JSON value @"instant"@
    PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1VerificationMethod'EnumInstant
  | -- | Represents the JSON value @"microdeposits"@
    PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1VerificationMethod'EnumMicrodeposits
  deriving (Int
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1VerificationMethod'
-> String
-> String
[PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1VerificationMethod']
-> String -> String
PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1VerificationMethod'
-> String
(Int
 -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1VerificationMethod'
 -> String
 -> String)
-> (PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1VerificationMethod'
    -> String)
-> ([PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1VerificationMethod']
    -> String -> String)
-> Show
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1VerificationMethod'
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1VerificationMethod']
-> String -> String
$cshowList :: [PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1VerificationMethod']
-> String -> String
show :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1VerificationMethod'
-> String
$cshow :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1VerificationMethod'
-> String
showsPrec :: Int
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1VerificationMethod'
-> String
-> String
$cshowsPrec :: Int
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1VerificationMethod'
-> String
-> String
GHC.Show.Show, PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1VerificationMethod'
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1VerificationMethod'
-> Bool
(PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1VerificationMethod'
 -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1VerificationMethod'
 -> Bool)
-> (PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1VerificationMethod'
    -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1VerificationMethod'
    -> Bool)
-> Eq
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1VerificationMethod'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1VerificationMethod'
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1VerificationMethod'
-> Bool
$c/= :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1VerificationMethod'
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1VerificationMethod'
-> Bool
== :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1VerificationMethod'
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1VerificationMethod'
-> Bool
$c== :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1VerificationMethod'
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1VerificationMethod'
-> Bool
GHC.Classes.Eq)

instance Data.Aeson.Types.ToJSON.ToJSON PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1VerificationMethod' where
  toJSON :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1VerificationMethod'
-> Value
toJSON (PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1VerificationMethod'Other Value
val) = Value
val
  toJSON (PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1VerificationMethod'Typed Text
val) = Text -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON Text
val
  toJSON (PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1VerificationMethod'
PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1VerificationMethod'EnumAutomatic) = Value
"automatic"
  toJSON (PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1VerificationMethod'
PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1VerificationMethod'EnumInstant) = Value
"instant"
  toJSON (PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1VerificationMethod'
PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1VerificationMethod'EnumMicrodeposits) = Value
"microdeposits"

instance Data.Aeson.Types.FromJSON.FromJSON PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1VerificationMethod' where
  parseJSON :: Value
-> Parser
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1VerificationMethod'
parseJSON Value
val =
    PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1VerificationMethod'
-> Parser
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1VerificationMethod'
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
"automatic" -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1VerificationMethod'
PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1VerificationMethod'EnumAutomatic
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"instant" -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1VerificationMethod'
PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1VerificationMethod'EnumInstant
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"microdeposits" -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1VerificationMethod'
PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1VerificationMethod'EnumMicrodeposits
            | Bool
GHC.Base.otherwise -> Value
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1VerificationMethod'
PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'OneOf1VerificationMethod'Other Value
val
      )

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

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

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

-- | Defines the object schema located at @paths.\/v1\/payment_intents\/{intent}\/confirm.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.payment_method_options.properties.afterpay_clearpay.anyOf@ in the specification.
data PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AfterpayClearpay'OneOf1 = PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AfterpayClearpay'OneOf1
  { -- | reference
    --
    -- Constraints:
    --
    -- * Maximum length of 128
    PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AfterpayClearpay'OneOf1
-> Maybe Text
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AfterpayClearpay'OneOf1Reference :: (GHC.Maybe.Maybe Data.Text.Internal.Text)
  }
  deriving
    ( Int
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AfterpayClearpay'OneOf1
-> String
-> String
[PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AfterpayClearpay'OneOf1]
-> String -> String
PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AfterpayClearpay'OneOf1
-> String
(Int
 -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AfterpayClearpay'OneOf1
 -> String
 -> String)
-> (PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AfterpayClearpay'OneOf1
    -> String)
-> ([PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AfterpayClearpay'OneOf1]
    -> String -> String)
-> Show
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AfterpayClearpay'OneOf1
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AfterpayClearpay'OneOf1]
-> String -> String
$cshowList :: [PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AfterpayClearpay'OneOf1]
-> String -> String
show :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AfterpayClearpay'OneOf1
-> String
$cshow :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AfterpayClearpay'OneOf1
-> String
showsPrec :: Int
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AfterpayClearpay'OneOf1
-> String
-> String
$cshowsPrec :: Int
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AfterpayClearpay'OneOf1
-> String
-> String
GHC.Show.Show,
      PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AfterpayClearpay'OneOf1
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AfterpayClearpay'OneOf1
-> Bool
(PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AfterpayClearpay'OneOf1
 -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AfterpayClearpay'OneOf1
 -> Bool)
-> (PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AfterpayClearpay'OneOf1
    -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AfterpayClearpay'OneOf1
    -> Bool)
-> Eq
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AfterpayClearpay'OneOf1
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AfterpayClearpay'OneOf1
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AfterpayClearpay'OneOf1
-> Bool
$c/= :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AfterpayClearpay'OneOf1
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AfterpayClearpay'OneOf1
-> Bool
== :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AfterpayClearpay'OneOf1
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AfterpayClearpay'OneOf1
-> Bool
$c== :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AfterpayClearpay'OneOf1
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AfterpayClearpay'OneOf1
-> Bool
GHC.Classes.Eq
    )

instance Data.Aeson.Types.ToJSON.ToJSON PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AfterpayClearpay'OneOf1 where
  toJSON :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AfterpayClearpay'OneOf1
-> Value
toJSON PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AfterpayClearpay'OneOf1
obj = [Pair] -> Value
Data.Aeson.Types.Internal.object (Text
"reference" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AfterpayClearpay'OneOf1
-> Maybe Text
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AfterpayClearpay'OneOf1Reference PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AfterpayClearpay'OneOf1
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AfterpayClearpay'OneOf1
-> Encoding
toEncoding PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AfterpayClearpay'OneOf1
obj = Series -> Encoding
Data.Aeson.Encoding.Internal.pairs (Text
"reference" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AfterpayClearpay'OneOf1
-> Maybe Text
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AfterpayClearpay'OneOf1Reference PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AfterpayClearpay'OneOf1
obj)

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

-- | Create a new 'PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AfterpayClearpay'OneOf1' with all required fields.
mkPostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AfterpayClearpay'OneOf1 :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AfterpayClearpay'OneOf1
mkPostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AfterpayClearpay'OneOf1 :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AfterpayClearpay'OneOf1
mkPostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AfterpayClearpay'OneOf1 = PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AfterpayClearpay'OneOf1 :: Maybe Text
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AfterpayClearpay'OneOf1
PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AfterpayClearpay'OneOf1 {postPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AfterpayClearpay'OneOf1Reference :: Maybe Text
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'AfterpayClearpay'OneOf1Reference = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing}

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

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

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

-- | Defines the oneOf schema located at @paths.\/v1\/payment_intents\/{intent}\/confirm.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.payment_method_options.properties.alipay.anyOf@ in the specification.
data PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Alipay'Variants
  = -- | Represents the JSON value @""@
    PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Alipay'EmptyString
  | PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Alipay'Object Data.Aeson.Types.Internal.Object
  deriving (Int
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Alipay'Variants
-> String
-> String
[PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Alipay'Variants]
-> String -> String
PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Alipay'Variants
-> String
(Int
 -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Alipay'Variants
 -> String
 -> String)
-> (PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Alipay'Variants
    -> String)
-> ([PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Alipay'Variants]
    -> String -> String)
-> Show
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Alipay'Variants
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Alipay'Variants]
-> String -> String
$cshowList :: [PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Alipay'Variants]
-> String -> String
show :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Alipay'Variants
-> String
$cshow :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Alipay'Variants
-> String
showsPrec :: Int
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Alipay'Variants
-> String
-> String
$cshowsPrec :: Int
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Alipay'Variants
-> String
-> String
GHC.Show.Show, PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Alipay'Variants
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Alipay'Variants
-> Bool
(PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Alipay'Variants
 -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Alipay'Variants
 -> Bool)
-> (PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Alipay'Variants
    -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Alipay'Variants
    -> Bool)
-> Eq
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Alipay'Variants
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Alipay'Variants
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Alipay'Variants
-> Bool
$c/= :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Alipay'Variants
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Alipay'Variants
-> Bool
== :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Alipay'Variants
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Alipay'Variants
-> Bool
$c== :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Alipay'Variants
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Alipay'Variants
-> Bool
GHC.Classes.Eq)

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

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

-- | Defines the object schema located at @paths.\/v1\/payment_intents\/{intent}\/confirm.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.payment_method_options.properties.bancontact.anyOf@ in the specification.
data PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Bancontact'OneOf1 = PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Bancontact'OneOf1
  { -- | preferred_language
    PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Bancontact'OneOf1
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Bancontact'OneOf1PreferredLanguage'
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Bancontact'OneOf1PreferredLanguage :: (GHC.Maybe.Maybe PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Bancontact'OneOf1PreferredLanguage')
  }
  deriving
    ( Int
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Bancontact'OneOf1
-> String
-> String
[PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Bancontact'OneOf1]
-> String -> String
PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Bancontact'OneOf1
-> String
(Int
 -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Bancontact'OneOf1
 -> String
 -> String)
-> (PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Bancontact'OneOf1
    -> String)
-> ([PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Bancontact'OneOf1]
    -> String -> String)
-> Show
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Bancontact'OneOf1
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Bancontact'OneOf1]
-> String -> String
$cshowList :: [PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Bancontact'OneOf1]
-> String -> String
show :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Bancontact'OneOf1
-> String
$cshow :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Bancontact'OneOf1
-> String
showsPrec :: Int
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Bancontact'OneOf1
-> String
-> String
$cshowsPrec :: Int
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Bancontact'OneOf1
-> String
-> String
GHC.Show.Show,
      PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Bancontact'OneOf1
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Bancontact'OneOf1
-> Bool
(PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Bancontact'OneOf1
 -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Bancontact'OneOf1
 -> Bool)
-> (PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Bancontact'OneOf1
    -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Bancontact'OneOf1
    -> Bool)
-> Eq
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Bancontact'OneOf1
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Bancontact'OneOf1
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Bancontact'OneOf1
-> Bool
$c/= :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Bancontact'OneOf1
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Bancontact'OneOf1
-> Bool
== :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Bancontact'OneOf1
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Bancontact'OneOf1
-> Bool
$c== :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Bancontact'OneOf1
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Bancontact'OneOf1
-> Bool
GHC.Classes.Eq
    )

instance Data.Aeson.Types.ToJSON.ToJSON PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Bancontact'OneOf1 where
  toJSON :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Bancontact'OneOf1
-> Value
toJSON PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Bancontact'OneOf1
obj = [Pair] -> Value
Data.Aeson.Types.Internal.object (Text
"preferred_language" Text
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Bancontact'OneOf1PreferredLanguage'
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Bancontact'OneOf1
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Bancontact'OneOf1PreferredLanguage'
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Bancontact'OneOf1PreferredLanguage PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Bancontact'OneOf1
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Bancontact'OneOf1
-> Encoding
toEncoding PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Bancontact'OneOf1
obj = Series -> Encoding
Data.Aeson.Encoding.Internal.pairs (Text
"preferred_language" Text
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Bancontact'OneOf1PreferredLanguage'
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Bancontact'OneOf1
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Bancontact'OneOf1PreferredLanguage'
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Bancontact'OneOf1PreferredLanguage PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Bancontact'OneOf1
obj)

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

-- | Create a new 'PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Bancontact'OneOf1' with all required fields.
mkPostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Bancontact'OneOf1 :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Bancontact'OneOf1
mkPostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Bancontact'OneOf1 :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Bancontact'OneOf1
mkPostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Bancontact'OneOf1 = PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Bancontact'OneOf1 :: Maybe
  PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Bancontact'OneOf1PreferredLanguage'
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Bancontact'OneOf1
PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Bancontact'OneOf1 {postPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Bancontact'OneOf1PreferredLanguage :: Maybe
  PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Bancontact'OneOf1PreferredLanguage'
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Bancontact'OneOf1PreferredLanguage = Maybe
  PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Bancontact'OneOf1PreferredLanguage'
forall a. Maybe a
GHC.Maybe.Nothing}

-- | Defines the enum schema located at @paths.\/v1\/payment_intents\/{intent}\/confirm.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.payment_method_options.properties.bancontact.anyOf.properties.preferred_language@ in the specification.
data PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Bancontact'OneOf1PreferredLanguage'
  = -- | This case is used if the value encountered during decoding does not match any of the provided cases in the specification.
    PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Bancontact'OneOf1PreferredLanguage'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.
    PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Bancontact'OneOf1PreferredLanguage'Typed Data.Text.Internal.Text
  | -- | Represents the JSON value @"de"@
    PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Bancontact'OneOf1PreferredLanguage'EnumDe
  | -- | Represents the JSON value @"en"@
    PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Bancontact'OneOf1PreferredLanguage'EnumEn
  | -- | Represents the JSON value @"fr"@
    PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Bancontact'OneOf1PreferredLanguage'EnumFr
  | -- | Represents the JSON value @"nl"@
    PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Bancontact'OneOf1PreferredLanguage'EnumNl
  deriving (Int
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Bancontact'OneOf1PreferredLanguage'
-> String
-> String
[PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Bancontact'OneOf1PreferredLanguage']
-> String -> String
PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Bancontact'OneOf1PreferredLanguage'
-> String
(Int
 -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Bancontact'OneOf1PreferredLanguage'
 -> String
 -> String)
-> (PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Bancontact'OneOf1PreferredLanguage'
    -> String)
-> ([PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Bancontact'OneOf1PreferredLanguage']
    -> String -> String)
-> Show
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Bancontact'OneOf1PreferredLanguage'
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Bancontact'OneOf1PreferredLanguage']
-> String -> String
$cshowList :: [PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Bancontact'OneOf1PreferredLanguage']
-> String -> String
show :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Bancontact'OneOf1PreferredLanguage'
-> String
$cshow :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Bancontact'OneOf1PreferredLanguage'
-> String
showsPrec :: Int
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Bancontact'OneOf1PreferredLanguage'
-> String
-> String
$cshowsPrec :: Int
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Bancontact'OneOf1PreferredLanguage'
-> String
-> String
GHC.Show.Show, PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Bancontact'OneOf1PreferredLanguage'
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Bancontact'OneOf1PreferredLanguage'
-> Bool
(PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Bancontact'OneOf1PreferredLanguage'
 -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Bancontact'OneOf1PreferredLanguage'
 -> Bool)
-> (PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Bancontact'OneOf1PreferredLanguage'
    -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Bancontact'OneOf1PreferredLanguage'
    -> Bool)
-> Eq
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Bancontact'OneOf1PreferredLanguage'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Bancontact'OneOf1PreferredLanguage'
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Bancontact'OneOf1PreferredLanguage'
-> Bool
$c/= :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Bancontact'OneOf1PreferredLanguage'
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Bancontact'OneOf1PreferredLanguage'
-> Bool
== :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Bancontact'OneOf1PreferredLanguage'
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Bancontact'OneOf1PreferredLanguage'
-> Bool
$c== :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Bancontact'OneOf1PreferredLanguage'
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Bancontact'OneOf1PreferredLanguage'
-> Bool
GHC.Classes.Eq)

instance Data.Aeson.Types.ToJSON.ToJSON PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Bancontact'OneOf1PreferredLanguage' where
  toJSON :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Bancontact'OneOf1PreferredLanguage'
-> Value
toJSON (PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Bancontact'OneOf1PreferredLanguage'Other Value
val) = Value
val
  toJSON (PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Bancontact'OneOf1PreferredLanguage'Typed Text
val) = Text -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON Text
val
  toJSON (PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Bancontact'OneOf1PreferredLanguage'
PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Bancontact'OneOf1PreferredLanguage'EnumDe) = Value
"de"
  toJSON (PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Bancontact'OneOf1PreferredLanguage'
PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Bancontact'OneOf1PreferredLanguage'EnumEn) = Value
"en"
  toJSON (PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Bancontact'OneOf1PreferredLanguage'
PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Bancontact'OneOf1PreferredLanguage'EnumFr) = Value
"fr"
  toJSON (PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Bancontact'OneOf1PreferredLanguage'
PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Bancontact'OneOf1PreferredLanguage'EnumNl) = Value
"nl"

instance Data.Aeson.Types.FromJSON.FromJSON PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Bancontact'OneOf1PreferredLanguage' where
  parseJSON :: Value
-> Parser
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Bancontact'OneOf1PreferredLanguage'
parseJSON Value
val =
    PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Bancontact'OneOf1PreferredLanguage'
-> Parser
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Bancontact'OneOf1PreferredLanguage'
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
"de" -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Bancontact'OneOf1PreferredLanguage'
PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Bancontact'OneOf1PreferredLanguage'EnumDe
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"en" -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Bancontact'OneOf1PreferredLanguage'
PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Bancontact'OneOf1PreferredLanguage'EnumEn
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"fr" -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Bancontact'OneOf1PreferredLanguage'
PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Bancontact'OneOf1PreferredLanguage'EnumFr
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"nl" -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Bancontact'OneOf1PreferredLanguage'
PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Bancontact'OneOf1PreferredLanguage'EnumNl
            | Bool
GHC.Base.otherwise -> Value
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Bancontact'OneOf1PreferredLanguage'
PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Bancontact'OneOf1PreferredLanguage'Other Value
val
      )

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

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

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

-- | Defines the object schema located at @paths.\/v1\/payment_intents\/{intent}\/confirm.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.payment_method_options.properties.boleto.anyOf@ in the specification.
data PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Boleto'OneOf1 = PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Boleto'OneOf1
  { -- | expires_after_days
    PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Boleto'OneOf1
-> Maybe Int
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Boleto'OneOf1ExpiresAfterDays :: (GHC.Maybe.Maybe GHC.Types.Int)
  }
  deriving
    ( Int
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Boleto'OneOf1
-> String
-> String
[PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Boleto'OneOf1]
-> String -> String
PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Boleto'OneOf1
-> String
(Int
 -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Boleto'OneOf1
 -> String
 -> String)
-> (PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Boleto'OneOf1
    -> String)
-> ([PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Boleto'OneOf1]
    -> String -> String)
-> Show
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Boleto'OneOf1
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Boleto'OneOf1]
-> String -> String
$cshowList :: [PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Boleto'OneOf1]
-> String -> String
show :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Boleto'OneOf1
-> String
$cshow :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Boleto'OneOf1
-> String
showsPrec :: Int
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Boleto'OneOf1
-> String
-> String
$cshowsPrec :: Int
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Boleto'OneOf1
-> String
-> String
GHC.Show.Show,
      PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Boleto'OneOf1
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Boleto'OneOf1
-> Bool
(PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Boleto'OneOf1
 -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Boleto'OneOf1
 -> Bool)
-> (PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Boleto'OneOf1
    -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Boleto'OneOf1
    -> Bool)
-> Eq
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Boleto'OneOf1
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Boleto'OneOf1
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Boleto'OneOf1
-> Bool
$c/= :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Boleto'OneOf1
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Boleto'OneOf1
-> Bool
== :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Boleto'OneOf1
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Boleto'OneOf1
-> Bool
$c== :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Boleto'OneOf1
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Boleto'OneOf1
-> Bool
GHC.Classes.Eq
    )

instance Data.Aeson.Types.ToJSON.ToJSON PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Boleto'OneOf1 where
  toJSON :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Boleto'OneOf1
-> Value
toJSON PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Boleto'OneOf1
obj = [Pair] -> Value
Data.Aeson.Types.Internal.object (Text
"expires_after_days" Text -> Maybe Int -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Boleto'OneOf1
-> Maybe Int
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Boleto'OneOf1ExpiresAfterDays PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Boleto'OneOf1
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Boleto'OneOf1
-> Encoding
toEncoding PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Boleto'OneOf1
obj = Series -> Encoding
Data.Aeson.Encoding.Internal.pairs (Text
"expires_after_days" Text -> Maybe Int -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Boleto'OneOf1
-> Maybe Int
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Boleto'OneOf1ExpiresAfterDays PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Boleto'OneOf1
obj)

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

-- | Create a new 'PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Boleto'OneOf1' with all required fields.
mkPostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Boleto'OneOf1 :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Boleto'OneOf1
mkPostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Boleto'OneOf1 :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Boleto'OneOf1
mkPostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Boleto'OneOf1 = PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Boleto'OneOf1 :: Maybe Int
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Boleto'OneOf1
PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Boleto'OneOf1 {postPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Boleto'OneOf1ExpiresAfterDays :: Maybe Int
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Boleto'OneOf1ExpiresAfterDays = Maybe Int
forall a. Maybe a
GHC.Maybe.Nothing}

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

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

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

-- | Defines the object schema located at @paths.\/v1\/payment_intents\/{intent}\/confirm.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.payment_method_options.properties.card.anyOf@ in the specification.
data PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1 = PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1
  { -- | cvc_token
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1
-> Maybe Text
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1CvcToken :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | installments
    PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments :: (GHC.Maybe.Maybe PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'),
    -- | network
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Network'
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Network :: (GHC.Maybe.Maybe PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Network'),
    -- | request_three_d_secure
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1RequestThreeDSecure'
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1RequestThreeDSecure :: (GHC.Maybe.Maybe PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1RequestThreeDSecure')
  }
  deriving
    ( Int
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1
-> String
-> String
[PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1]
-> String -> String
PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1
-> String
(Int
 -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1
 -> String
 -> String)
-> (PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1
    -> String)
-> ([PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1]
    -> String -> String)
-> Show
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1]
-> String -> String
$cshowList :: [PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1]
-> String -> String
show :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1
-> String
$cshow :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1
-> String
showsPrec :: Int
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1
-> String
-> String
$cshowsPrec :: Int
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1
-> String
-> String
GHC.Show.Show,
      PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1
-> Bool
(PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1
 -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1
 -> Bool)
-> (PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1
    -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1
    -> Bool)
-> Eq
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1
-> Bool
$c/= :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1
-> Bool
== :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1
-> Bool
$c== :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1
-> Bool
GHC.Classes.Eq
    )

instance Data.Aeson.Types.ToJSON.ToJSON PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1 where
  toJSON :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1
-> Value
toJSON PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1
obj = [Pair] -> Value
Data.Aeson.Types.Internal.object (Text
"cvc_token" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1
-> Maybe Text
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1CvcToken PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"installments" Text
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"network" Text
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Network'
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Network'
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Network PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"request_three_d_secure" Text
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1RequestThreeDSecure'
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1RequestThreeDSecure'
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1RequestThreeDSecure PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1
-> Encoding
toEncoding PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1
obj = Series -> Encoding
Data.Aeson.Encoding.Internal.pairs ((Text
"cvc_token" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1
-> Maybe Text
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1CvcToken PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"installments" Text
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"network" Text
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Network'
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Network'
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Network PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> (Text
"request_three_d_secure" Text
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1RequestThreeDSecure'
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1RequestThreeDSecure'
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1RequestThreeDSecure PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1
obj))))

instance Data.Aeson.Types.FromJSON.FromJSON PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1 where
  parseJSON :: Value
-> Parser
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1
parseJSON = String
-> (Object
    -> Parser
         PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1)
-> Value
-> Parser
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.Aeson.Types.FromJSON.withObject String
"PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1" (\Object
obj -> ((((Maybe Text
 -> Maybe
      PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'
 -> Maybe
      PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Network'
 -> Maybe
      PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1RequestThreeDSecure'
 -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1)
-> Parser
     (Maybe Text
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Network'
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1RequestThreeDSecure'
      -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1)
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure Maybe Text
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Network'
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1RequestThreeDSecure'
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1
PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1 Parser
  (Maybe Text
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Network'
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1RequestThreeDSecure'
   -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1)
-> Parser (Maybe Text)
-> Parser
     (Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Network'
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1RequestThreeDSecure'
      -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'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
"cvc_token")) Parser
  (Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Network'
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1RequestThreeDSecure'
   -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1)
-> Parser
     (Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments')
-> Parser
     (Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Network'
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1RequestThreeDSecure'
      -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     (Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments')
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"installments")) Parser
  (Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Network'
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1RequestThreeDSecure'
   -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1)
-> Parser
     (Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Network')
-> Parser
     (Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1RequestThreeDSecure'
      -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     (Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Network')
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"network")) Parser
  (Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1RequestThreeDSecure'
   -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1)
-> Parser
     (Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1RequestThreeDSecure')
-> Parser
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     (Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1RequestThreeDSecure')
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"request_three_d_secure"))

-- | Create a new 'PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1' with all required fields.
mkPostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1 :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1
mkPostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1 :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1
mkPostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1 =
  PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1 :: Maybe Text
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Network'
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1RequestThreeDSecure'
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1
PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1
    { postPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1CvcToken :: Maybe Text
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1CvcToken = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      postPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments :: Maybe
  PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments = Maybe
  PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'
forall a. Maybe a
GHC.Maybe.Nothing,
      postPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Network :: Maybe
  PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Network'
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Network = Maybe
  PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Network'
forall a. Maybe a
GHC.Maybe.Nothing,
      postPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1RequestThreeDSecure :: Maybe
  PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1RequestThreeDSecure'
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1RequestThreeDSecure = Maybe
  PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1RequestThreeDSecure'
forall a. Maybe a
GHC.Maybe.Nothing
    }

-- | Defines the object schema located at @paths.\/v1\/payment_intents\/{intent}\/confirm.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.payment_method_options.properties.card.anyOf.properties.installments@ in the specification.
data PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments' = PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'
  { -- | enabled
    PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'
-> Maybe Bool
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'Enabled :: (GHC.Maybe.Maybe GHC.Types.Bool),
    -- | plan
    PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'Plan'Variants
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'Plan :: (GHC.Maybe.Maybe PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'Plan'Variants)
  }
  deriving
    ( Int
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'
-> String
-> String
[PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments']
-> String -> String
PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'
-> String
(Int
 -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'
 -> String
 -> String)
-> (PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'
    -> String)
-> ([PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments']
    -> String -> String)
-> Show
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments']
-> String -> String
$cshowList :: [PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments']
-> String -> String
show :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'
-> String
$cshow :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'
-> String
showsPrec :: Int
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'
-> String
-> String
$cshowsPrec :: Int
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'
-> String
-> String
GHC.Show.Show,
      PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'
-> Bool
(PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'
 -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'
 -> Bool)
-> (PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'
    -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'
    -> Bool)
-> Eq
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'
-> Bool
$c/= :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'
-> Bool
== :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'
-> Bool
$c== :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'
-> Bool
GHC.Classes.Eq
    )

instance Data.Aeson.Types.ToJSON.ToJSON PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments' where
  toJSON :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'
-> Value
toJSON PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'
obj = [Pair] -> Value
Data.Aeson.Types.Internal.object (Text
"enabled" Text -> Maybe Bool -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'
-> Maybe Bool
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'Enabled PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"plan" Text
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'Plan'Variants
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'Plan'Variants
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'Plan PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'
-> Encoding
toEncoding PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'
obj = Series -> Encoding
Data.Aeson.Encoding.Internal.pairs ((Text
"enabled" Text -> Maybe Bool -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'
-> Maybe Bool
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'Enabled PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> (Text
"plan" Text
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'Plan'Variants
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'Plan'Variants
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'Plan PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'
obj))

instance Data.Aeson.Types.FromJSON.FromJSON PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments' where
  parseJSON :: Value
-> Parser
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'
parseJSON = String
-> (Object
    -> Parser
         PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments')
-> Value
-> Parser
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.Aeson.Types.FromJSON.withObject String
"PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'" (\Object
obj -> ((Maybe Bool
 -> Maybe
      PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'Plan'Variants
 -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments')
-> Parser
     (Maybe Bool
      -> Maybe
           PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'Plan'Variants
      -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments')
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure Maybe Bool
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'Plan'Variants
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'
PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments' Parser
  (Maybe Bool
   -> Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'Plan'Variants
   -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments')
-> Parser (Maybe Bool)
-> Parser
     (Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'Plan'Variants
      -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"enabled")) Parser
  (Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'Plan'Variants
   -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments')
-> Parser
     (Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'Plan'Variants)
-> Parser
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     (Maybe
        PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'Plan'Variants)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"plan"))

-- | Create a new 'PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'' with all required fields.
mkPostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments' :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'
mkPostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments' :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'
mkPostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments' =
  PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments' :: Maybe Bool
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'Plan'Variants
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'
PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'
    { postPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'Enabled :: Maybe Bool
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'Enabled = Maybe Bool
forall a. Maybe a
GHC.Maybe.Nothing,
      postPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'Plan :: Maybe
  PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'Plan'Variants
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'Plan = Maybe
  PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'Plan'Variants
forall a. Maybe a
GHC.Maybe.Nothing
    }

-- | Defines the object schema located at @paths.\/v1\/payment_intents\/{intent}\/confirm.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.payment_method_options.properties.card.anyOf.properties.installments.properties.plan.anyOf@ in the specification.
data PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'Plan'OneOf1 = PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'Plan'OneOf1
  { -- | count
    PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'Plan'OneOf1
-> Int
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'Plan'OneOf1Count :: GHC.Types.Int
  }
  deriving
    ( Int
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'Plan'OneOf1
-> String
-> String
[PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'Plan'OneOf1]
-> String -> String
PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'Plan'OneOf1
-> String
(Int
 -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'Plan'OneOf1
 -> String
 -> String)
-> (PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'Plan'OneOf1
    -> String)
-> ([PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'Plan'OneOf1]
    -> String -> String)
-> Show
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'Plan'OneOf1
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'Plan'OneOf1]
-> String -> String
$cshowList :: [PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'Plan'OneOf1]
-> String -> String
show :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'Plan'OneOf1
-> String
$cshow :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'Plan'OneOf1
-> String
showsPrec :: Int
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'Plan'OneOf1
-> String
-> String
$cshowsPrec :: Int
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'Plan'OneOf1
-> String
-> String
GHC.Show.Show,
      PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'Plan'OneOf1
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'Plan'OneOf1
-> Bool
(PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'Plan'OneOf1
 -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'Plan'OneOf1
 -> Bool)
-> (PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'Plan'OneOf1
    -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'Plan'OneOf1
    -> Bool)
-> Eq
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'Plan'OneOf1
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'Plan'OneOf1
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'Plan'OneOf1
-> Bool
$c/= :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'Plan'OneOf1
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'Plan'OneOf1
-> Bool
== :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'Plan'OneOf1
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'Plan'OneOf1
-> Bool
$c== :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'Plan'OneOf1
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'Plan'OneOf1
-> Bool
GHC.Classes.Eq
    )

instance Data.Aeson.Types.ToJSON.ToJSON PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'Plan'OneOf1 where
  toJSON :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'Plan'OneOf1
-> Value
toJSON PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'Plan'OneOf1
obj = [Pair] -> Value
Data.Aeson.Types.Internal.object (Text
"count" Text -> Int -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'Plan'OneOf1
-> Int
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'Plan'OneOf1Count PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'Plan'OneOf1
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"interval" Text -> Value -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Text -> Value
Data.Aeson.Types.Internal.String Text
"month" Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"type" Text -> Value -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Text -> Value
Data.Aeson.Types.Internal.String Text
"fixed_count" Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'Plan'OneOf1
-> Encoding
toEncoding PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'Plan'OneOf1
obj = Series -> Encoding
Data.Aeson.Encoding.Internal.pairs ((Text
"count" Text -> Int -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'Plan'OneOf1
-> Int
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'Plan'OneOf1Count PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'Plan'OneOf1
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"interval" Text -> Value -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Text -> Value
Data.Aeson.Types.Internal.String Text
"month") Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> (Text
"type" Text -> Value -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Text -> Value
Data.Aeson.Types.Internal.String Text
"fixed_count")))

instance Data.Aeson.Types.FromJSON.FromJSON PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'Plan'OneOf1 where
  parseJSON :: Value
-> Parser
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'Plan'OneOf1
parseJSON = String
-> (Object
    -> Parser
         PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'Plan'OneOf1)
-> Value
-> Parser
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'Plan'OneOf1
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.Aeson.Types.FromJSON.withObject String
"PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'Plan'OneOf1" (\Object
obj -> (Int
 -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'Plan'OneOf1)
-> Parser
     (Int
      -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'Plan'OneOf1)
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure Int
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'Plan'OneOf1
PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'Plan'OneOf1 Parser
  (Int
   -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'Plan'OneOf1)
-> Parser Int
-> Parser
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'Plan'OneOf1
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser Int
forall a. FromJSON a => Object -> Text -> Parser a
Data.Aeson.Types.FromJSON..: Text
"count"))

-- | Create a new 'PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'Plan'OneOf1' with all required fields.
mkPostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'Plan'OneOf1 ::
  -- | 'postPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'Plan'OneOf1Count'
  GHC.Types.Int ->
  PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'Plan'OneOf1
mkPostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'Plan'OneOf1 :: Int
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'Plan'OneOf1
mkPostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'Plan'OneOf1 Int
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'Plan'OneOf1Count = PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'Plan'OneOf1 :: Int
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'Plan'OneOf1
PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'Plan'OneOf1 {postPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'Plan'OneOf1Count :: Int
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'Plan'OneOf1Count = Int
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'Plan'OneOf1Count}

-- | Defines the oneOf schema located at @paths.\/v1\/payment_intents\/{intent}\/confirm.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.payment_method_options.properties.card.anyOf.properties.installments.properties.plan.anyOf@ in the specification.
data PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'Plan'Variants
  = -- | Represents the JSON value @""@
    PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'Plan'EmptyString
  | PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'Plan'PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'Plan'OneOf1 PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'Plan'OneOf1
  deriving (Int
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'Plan'Variants
-> String
-> String
[PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'Plan'Variants]
-> String -> String
PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'Plan'Variants
-> String
(Int
 -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'Plan'Variants
 -> String
 -> String)
-> (PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'Plan'Variants
    -> String)
-> ([PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'Plan'Variants]
    -> String -> String)
-> Show
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'Plan'Variants
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'Plan'Variants]
-> String -> String
$cshowList :: [PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'Plan'Variants]
-> String -> String
show :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'Plan'Variants
-> String
$cshow :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'Plan'Variants
-> String
showsPrec :: Int
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'Plan'Variants
-> String
-> String
$cshowsPrec :: Int
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'Plan'Variants
-> String
-> String
GHC.Show.Show, PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'Plan'Variants
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'Plan'Variants
-> Bool
(PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'Plan'Variants
 -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'Plan'Variants
 -> Bool)
-> (PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'Plan'Variants
    -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'Plan'Variants
    -> Bool)
-> Eq
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'Plan'Variants
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'Plan'Variants
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'Plan'Variants
-> Bool
$c/= :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'Plan'Variants
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'Plan'Variants
-> Bool
== :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'Plan'Variants
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'Plan'Variants
-> Bool
$c== :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'Plan'Variants
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'Plan'Variants
-> Bool
GHC.Classes.Eq)

instance Data.Aeson.Types.ToJSON.ToJSON PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'Plan'Variants where
  toJSON :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'Plan'Variants
-> Value
toJSON (PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'Plan'PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'Plan'OneOf1 PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'Plan'OneOf1
a) = PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'Plan'OneOf1
-> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'Plan'OneOf1
a
  toJSON (PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'Plan'Variants
PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Installments'Plan'EmptyString) = Value
""

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

-- | Defines the enum schema located at @paths.\/v1\/payment_intents\/{intent}\/confirm.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.payment_method_options.properties.card.anyOf.properties.network@ in the specification.
data PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Network'
  = -- | This case is used if the value encountered during decoding does not match any of the provided cases in the specification.
    PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Network'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.
    PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Network'Typed Data.Text.Internal.Text
  | -- | Represents the JSON value @"amex"@
    PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Network'EnumAmex
  | -- | Represents the JSON value @"cartes_bancaires"@
    PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Network'EnumCartesBancaires
  | -- | Represents the JSON value @"diners"@
    PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Network'EnumDiners
  | -- | Represents the JSON value @"discover"@
    PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Network'EnumDiscover
  | -- | Represents the JSON value @"interac"@
    PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Network'EnumInterac
  | -- | Represents the JSON value @"jcb"@
    PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Network'EnumJcb
  | -- | Represents the JSON value @"mastercard"@
    PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Network'EnumMastercard
  | -- | Represents the JSON value @"unionpay"@
    PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Network'EnumUnionpay
  | -- | Represents the JSON value @"unknown"@
    PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Network'EnumUnknown
  | -- | Represents the JSON value @"visa"@
    PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Network'EnumVisa
  deriving (Int
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Network'
-> String
-> String
[PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Network']
-> String -> String
PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Network'
-> String
(Int
 -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Network'
 -> String
 -> String)
-> (PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Network'
    -> String)
-> ([PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Network']
    -> String -> String)
-> Show
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Network'
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Network']
-> String -> String
$cshowList :: [PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Network']
-> String -> String
show :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Network'
-> String
$cshow :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Network'
-> String
showsPrec :: Int
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Network'
-> String
-> String
$cshowsPrec :: Int
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Network'
-> String
-> String
GHC.Show.Show, PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Network'
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Network'
-> Bool
(PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Network'
 -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Network'
 -> Bool)
-> (PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Network'
    -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Network'
    -> Bool)
-> Eq
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Network'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Network'
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Network'
-> Bool
$c/= :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Network'
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Network'
-> Bool
== :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Network'
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Network'
-> Bool
$c== :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Network'
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Network'
-> Bool
GHC.Classes.Eq)

instance Data.Aeson.Types.ToJSON.ToJSON PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Network' where
  toJSON :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Network'
-> Value
toJSON (PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Network'Other Value
val) = Value
val
  toJSON (PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Network'Typed Text
val) = Text -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON Text
val
  toJSON (PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Network'
PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Network'EnumAmex) = Value
"amex"
  toJSON (PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Network'
PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Network'EnumCartesBancaires) = Value
"cartes_bancaires"
  toJSON (PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Network'
PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Network'EnumDiners) = Value
"diners"
  toJSON (PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Network'
PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Network'EnumDiscover) = Value
"discover"
  toJSON (PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Network'
PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Network'EnumInterac) = Value
"interac"
  toJSON (PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Network'
PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Network'EnumJcb) = Value
"jcb"
  toJSON (PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Network'
PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Network'EnumMastercard) = Value
"mastercard"
  toJSON (PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Network'
PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Network'EnumUnionpay) = Value
"unionpay"
  toJSON (PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Network'
PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Network'EnumUnknown) = Value
"unknown"
  toJSON (PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Network'
PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Network'EnumVisa) = Value
"visa"

instance Data.Aeson.Types.FromJSON.FromJSON PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Network' where
  parseJSON :: Value
-> Parser
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Network'
parseJSON Value
val =
    PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Network'
-> Parser
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Network'
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
"amex" -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Network'
PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Network'EnumAmex
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"cartes_bancaires" -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Network'
PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Network'EnumCartesBancaires
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"diners" -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Network'
PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Network'EnumDiners
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"discover" -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Network'
PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Network'EnumDiscover
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"interac" -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Network'
PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Network'EnumInterac
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"jcb" -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Network'
PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Network'EnumJcb
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"mastercard" -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Network'
PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Network'EnumMastercard
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"unionpay" -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Network'
PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Network'EnumUnionpay
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"unknown" -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Network'
PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Network'EnumUnknown
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"visa" -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Network'
PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Network'EnumVisa
            | Bool
GHC.Base.otherwise -> Value
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Network'
PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1Network'Other Value
val
      )

-- | Defines the enum schema located at @paths.\/v1\/payment_intents\/{intent}\/confirm.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.payment_method_options.properties.card.anyOf.properties.request_three_d_secure@ in the specification.
data PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1RequestThreeDSecure'
  = -- | This case is used if the value encountered during decoding does not match any of the provided cases in the specification.
    PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1RequestThreeDSecure'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.
    PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1RequestThreeDSecure'Typed Data.Text.Internal.Text
  | -- | Represents the JSON value @"any"@
    PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1RequestThreeDSecure'EnumAny
  | -- | Represents the JSON value @"automatic"@
    PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1RequestThreeDSecure'EnumAutomatic
  deriving (Int
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1RequestThreeDSecure'
-> String
-> String
[PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1RequestThreeDSecure']
-> String -> String
PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1RequestThreeDSecure'
-> String
(Int
 -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1RequestThreeDSecure'
 -> String
 -> String)
-> (PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1RequestThreeDSecure'
    -> String)
-> ([PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1RequestThreeDSecure']
    -> String -> String)
-> Show
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1RequestThreeDSecure'
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1RequestThreeDSecure']
-> String -> String
$cshowList :: [PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1RequestThreeDSecure']
-> String -> String
show :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1RequestThreeDSecure'
-> String
$cshow :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1RequestThreeDSecure'
-> String
showsPrec :: Int
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1RequestThreeDSecure'
-> String
-> String
$cshowsPrec :: Int
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1RequestThreeDSecure'
-> String
-> String
GHC.Show.Show, PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1RequestThreeDSecure'
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1RequestThreeDSecure'
-> Bool
(PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1RequestThreeDSecure'
 -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1RequestThreeDSecure'
 -> Bool)
-> (PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1RequestThreeDSecure'
    -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1RequestThreeDSecure'
    -> Bool)
-> Eq
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1RequestThreeDSecure'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1RequestThreeDSecure'
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1RequestThreeDSecure'
-> Bool
$c/= :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1RequestThreeDSecure'
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1RequestThreeDSecure'
-> Bool
== :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1RequestThreeDSecure'
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1RequestThreeDSecure'
-> Bool
$c== :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1RequestThreeDSecure'
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1RequestThreeDSecure'
-> Bool
GHC.Classes.Eq)

instance Data.Aeson.Types.ToJSON.ToJSON PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1RequestThreeDSecure' where
  toJSON :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1RequestThreeDSecure'
-> Value
toJSON (PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1RequestThreeDSecure'Other Value
val) = Value
val
  toJSON (PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1RequestThreeDSecure'Typed Text
val) = Text -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON Text
val
  toJSON (PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1RequestThreeDSecure'
PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1RequestThreeDSecure'EnumAny) = Value
"any"
  toJSON (PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1RequestThreeDSecure'
PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1RequestThreeDSecure'EnumAutomatic) = Value
"automatic"

instance Data.Aeson.Types.FromJSON.FromJSON PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1RequestThreeDSecure' where
  parseJSON :: Value
-> Parser
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1RequestThreeDSecure'
parseJSON Value
val =
    PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1RequestThreeDSecure'
-> Parser
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1RequestThreeDSecure'
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
"any" -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1RequestThreeDSecure'
PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1RequestThreeDSecure'EnumAny
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"automatic" -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1RequestThreeDSecure'
PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1RequestThreeDSecure'EnumAutomatic
            | Bool
GHC.Base.otherwise -> Value
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1RequestThreeDSecure'
PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'OneOf1RequestThreeDSecure'Other Value
val
      )

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

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

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

-- | Defines the oneOf schema located at @paths.\/v1\/payment_intents\/{intent}\/confirm.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.payment_method_options.properties.card_present.anyOf@ in the specification.
data PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'CardPresent'Variants
  = -- | Represents the JSON value @""@
    PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'CardPresent'EmptyString
  | PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'CardPresent'Object Data.Aeson.Types.Internal.Object
  deriving (Int
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'CardPresent'Variants
-> String
-> String
[PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'CardPresent'Variants]
-> String -> String
PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'CardPresent'Variants
-> String
(Int
 -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'CardPresent'Variants
 -> String
 -> String)
-> (PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'CardPresent'Variants
    -> String)
-> ([PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'CardPresent'Variants]
    -> String -> String)
-> Show
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'CardPresent'Variants
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'CardPresent'Variants]
-> String -> String
$cshowList :: [PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'CardPresent'Variants]
-> String -> String
show :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'CardPresent'Variants
-> String
$cshow :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'CardPresent'Variants
-> String
showsPrec :: Int
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'CardPresent'Variants
-> String
-> String
$cshowsPrec :: Int
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'CardPresent'Variants
-> String
-> String
GHC.Show.Show, PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'CardPresent'Variants
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'CardPresent'Variants
-> Bool
(PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'CardPresent'Variants
 -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'CardPresent'Variants
 -> Bool)
-> (PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'CardPresent'Variants
    -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'CardPresent'Variants
    -> Bool)
-> Eq
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'CardPresent'Variants
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'CardPresent'Variants
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'CardPresent'Variants
-> Bool
$c/= :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'CardPresent'Variants
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'CardPresent'Variants
-> Bool
== :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'CardPresent'Variants
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'CardPresent'Variants
-> Bool
$c== :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'CardPresent'Variants
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'CardPresent'Variants
-> Bool
GHC.Classes.Eq)

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

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

-- | Defines the object schema located at @paths.\/v1\/payment_intents\/{intent}\/confirm.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.payment_method_options.properties.oxxo.anyOf@ in the specification.
data PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Oxxo'OneOf1 = PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Oxxo'OneOf1
  { -- | expires_after_days
    PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Oxxo'OneOf1
-> Maybe Int
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Oxxo'OneOf1ExpiresAfterDays :: (GHC.Maybe.Maybe GHC.Types.Int)
  }
  deriving
    ( Int
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Oxxo'OneOf1
-> String
-> String
[PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Oxxo'OneOf1]
-> String -> String
PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Oxxo'OneOf1
-> String
(Int
 -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Oxxo'OneOf1
 -> String
 -> String)
-> (PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Oxxo'OneOf1
    -> String)
-> ([PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Oxxo'OneOf1]
    -> String -> String)
-> Show
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Oxxo'OneOf1
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Oxxo'OneOf1]
-> String -> String
$cshowList :: [PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Oxxo'OneOf1]
-> String -> String
show :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Oxxo'OneOf1
-> String
$cshow :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Oxxo'OneOf1
-> String
showsPrec :: Int
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Oxxo'OneOf1
-> String
-> String
$cshowsPrec :: Int
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Oxxo'OneOf1
-> String
-> String
GHC.Show.Show,
      PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Oxxo'OneOf1
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Oxxo'OneOf1
-> Bool
(PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Oxxo'OneOf1
 -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Oxxo'OneOf1
 -> Bool)
-> (PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Oxxo'OneOf1
    -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Oxxo'OneOf1
    -> Bool)
-> Eq
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Oxxo'OneOf1
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Oxxo'OneOf1
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Oxxo'OneOf1
-> Bool
$c/= :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Oxxo'OneOf1
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Oxxo'OneOf1
-> Bool
== :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Oxxo'OneOf1
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Oxxo'OneOf1
-> Bool
$c== :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Oxxo'OneOf1
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Oxxo'OneOf1
-> Bool
GHC.Classes.Eq
    )

instance Data.Aeson.Types.ToJSON.ToJSON PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Oxxo'OneOf1 where
  toJSON :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Oxxo'OneOf1
-> Value
toJSON PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Oxxo'OneOf1
obj = [Pair] -> Value
Data.Aeson.Types.Internal.object (Text
"expires_after_days" Text -> Maybe Int -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Oxxo'OneOf1
-> Maybe Int
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Oxxo'OneOf1ExpiresAfterDays PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Oxxo'OneOf1
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Oxxo'OneOf1
-> Encoding
toEncoding PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Oxxo'OneOf1
obj = Series -> Encoding
Data.Aeson.Encoding.Internal.pairs (Text
"expires_after_days" Text -> Maybe Int -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Oxxo'OneOf1
-> Maybe Int
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Oxxo'OneOf1ExpiresAfterDays PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Oxxo'OneOf1
obj)

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

-- | Create a new 'PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Oxxo'OneOf1' with all required fields.
mkPostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Oxxo'OneOf1 :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Oxxo'OneOf1
mkPostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Oxxo'OneOf1 :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Oxxo'OneOf1
mkPostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Oxxo'OneOf1 = PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Oxxo'OneOf1 :: Maybe Int
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Oxxo'OneOf1
PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Oxxo'OneOf1 {postPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Oxxo'OneOf1ExpiresAfterDays :: Maybe Int
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Oxxo'OneOf1ExpiresAfterDays = Maybe Int
forall a. Maybe a
GHC.Maybe.Nothing}

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

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

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

-- | Defines the object schema located at @paths.\/v1\/payment_intents\/{intent}\/confirm.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.payment_method_options.properties.p24.anyOf@ in the specification.
data PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'P24'OneOf1 = PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'P24'OneOf1
  { -- | tos_shown_and_accepted
    PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'P24'OneOf1
-> Maybe Bool
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'P24'OneOf1TosShownAndAccepted :: (GHC.Maybe.Maybe GHC.Types.Bool)
  }
  deriving
    ( Int
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'P24'OneOf1
-> String
-> String
[PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'P24'OneOf1]
-> String -> String
PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'P24'OneOf1
-> String
(Int
 -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'P24'OneOf1
 -> String
 -> String)
-> (PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'P24'OneOf1
    -> String)
-> ([PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'P24'OneOf1]
    -> String -> String)
-> Show
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'P24'OneOf1
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'P24'OneOf1]
-> String -> String
$cshowList :: [PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'P24'OneOf1]
-> String -> String
show :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'P24'OneOf1
-> String
$cshow :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'P24'OneOf1
-> String
showsPrec :: Int
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'P24'OneOf1
-> String
-> String
$cshowsPrec :: Int
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'P24'OneOf1
-> String
-> String
GHC.Show.Show,
      PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'P24'OneOf1
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'P24'OneOf1
-> Bool
(PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'P24'OneOf1
 -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'P24'OneOf1
 -> Bool)
-> (PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'P24'OneOf1
    -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'P24'OneOf1
    -> Bool)
-> Eq
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'P24'OneOf1
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'P24'OneOf1
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'P24'OneOf1
-> Bool
$c/= :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'P24'OneOf1
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'P24'OneOf1
-> Bool
== :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'P24'OneOf1
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'P24'OneOf1
-> Bool
$c== :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'P24'OneOf1
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'P24'OneOf1
-> Bool
GHC.Classes.Eq
    )

instance Data.Aeson.Types.ToJSON.ToJSON PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'P24'OneOf1 where
  toJSON :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'P24'OneOf1
-> Value
toJSON PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'P24'OneOf1
obj = [Pair] -> Value
Data.Aeson.Types.Internal.object (Text
"tos_shown_and_accepted" Text -> Maybe Bool -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'P24'OneOf1
-> Maybe Bool
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'P24'OneOf1TosShownAndAccepted PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'P24'OneOf1
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'P24'OneOf1
-> Encoding
toEncoding PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'P24'OneOf1
obj = Series -> Encoding
Data.Aeson.Encoding.Internal.pairs (Text
"tos_shown_and_accepted" Text -> Maybe Bool -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'P24'OneOf1
-> Maybe Bool
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'P24'OneOf1TosShownAndAccepted PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'P24'OneOf1
obj)

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

-- | Create a new 'PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'P24'OneOf1' with all required fields.
mkPostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'P24'OneOf1 :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'P24'OneOf1
mkPostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'P24'OneOf1 :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'P24'OneOf1
mkPostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'P24'OneOf1 = PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'P24'OneOf1 :: Maybe Bool
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'P24'OneOf1
PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'P24'OneOf1 {postPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'P24'OneOf1TosShownAndAccepted :: Maybe Bool
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'P24'OneOf1TosShownAndAccepted = Maybe Bool
forall a. Maybe a
GHC.Maybe.Nothing}

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

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

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

-- | Defines the object schema located at @paths.\/v1\/payment_intents\/{intent}\/confirm.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.payment_method_options.properties.sepa_debit.anyOf@ in the specification.
data PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'SepaDebit'OneOf1 = PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'SepaDebit'OneOf1
  { -- | mandate_options
    PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'SepaDebit'OneOf1
-> Maybe Object
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'SepaDebit'OneOf1MandateOptions :: (GHC.Maybe.Maybe Data.Aeson.Types.Internal.Object)
  }
  deriving
    ( Int
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'SepaDebit'OneOf1
-> String
-> String
[PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'SepaDebit'OneOf1]
-> String -> String
PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'SepaDebit'OneOf1
-> String
(Int
 -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'SepaDebit'OneOf1
 -> String
 -> String)
-> (PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'SepaDebit'OneOf1
    -> String)
-> ([PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'SepaDebit'OneOf1]
    -> String -> String)
-> Show
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'SepaDebit'OneOf1
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'SepaDebit'OneOf1]
-> String -> String
$cshowList :: [PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'SepaDebit'OneOf1]
-> String -> String
show :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'SepaDebit'OneOf1
-> String
$cshow :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'SepaDebit'OneOf1
-> String
showsPrec :: Int
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'SepaDebit'OneOf1
-> String
-> String
$cshowsPrec :: Int
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'SepaDebit'OneOf1
-> String
-> String
GHC.Show.Show,
      PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'SepaDebit'OneOf1
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'SepaDebit'OneOf1
-> Bool
(PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'SepaDebit'OneOf1
 -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'SepaDebit'OneOf1
 -> Bool)
-> (PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'SepaDebit'OneOf1
    -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'SepaDebit'OneOf1
    -> Bool)
-> Eq
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'SepaDebit'OneOf1
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'SepaDebit'OneOf1
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'SepaDebit'OneOf1
-> Bool
$c/= :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'SepaDebit'OneOf1
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'SepaDebit'OneOf1
-> Bool
== :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'SepaDebit'OneOf1
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'SepaDebit'OneOf1
-> Bool
$c== :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'SepaDebit'OneOf1
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'SepaDebit'OneOf1
-> Bool
GHC.Classes.Eq
    )

instance Data.Aeson.Types.ToJSON.ToJSON PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'SepaDebit'OneOf1 where
  toJSON :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'SepaDebit'OneOf1
-> Value
toJSON PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'SepaDebit'OneOf1
obj = [Pair] -> Value
Data.Aeson.Types.Internal.object (Text
"mandate_options" Text -> Maybe Object -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'SepaDebit'OneOf1
-> Maybe Object
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'SepaDebit'OneOf1MandateOptions PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'SepaDebit'OneOf1
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'SepaDebit'OneOf1
-> Encoding
toEncoding PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'SepaDebit'OneOf1
obj = Series -> Encoding
Data.Aeson.Encoding.Internal.pairs (Text
"mandate_options" Text -> Maybe Object -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'SepaDebit'OneOf1
-> Maybe Object
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'SepaDebit'OneOf1MandateOptions PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'SepaDebit'OneOf1
obj)

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

-- | Create a new 'PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'SepaDebit'OneOf1' with all required fields.
mkPostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'SepaDebit'OneOf1 :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'SepaDebit'OneOf1
mkPostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'SepaDebit'OneOf1 :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'SepaDebit'OneOf1
mkPostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'SepaDebit'OneOf1 = PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'SepaDebit'OneOf1 :: Maybe Object
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'SepaDebit'OneOf1
PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'SepaDebit'OneOf1 {postPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'SepaDebit'OneOf1MandateOptions :: Maybe Object
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'SepaDebit'OneOf1MandateOptions = Maybe Object
forall a. Maybe a
GHC.Maybe.Nothing}

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

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

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

-- | Defines the object schema located at @paths.\/v1\/payment_intents\/{intent}\/confirm.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.payment_method_options.properties.sofort.anyOf@ in the specification.
data PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'OneOf1 = PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'OneOf1
  { -- | preferred_language
    PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'OneOf1
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'OneOf1PreferredLanguage'
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'OneOf1PreferredLanguage :: (GHC.Maybe.Maybe PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'OneOf1PreferredLanguage')
  }
  deriving
    ( Int
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'OneOf1
-> String
-> String
[PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'OneOf1]
-> String -> String
PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'OneOf1
-> String
(Int
 -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'OneOf1
 -> String
 -> String)
-> (PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'OneOf1
    -> String)
-> ([PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'OneOf1]
    -> String -> String)
-> Show
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'OneOf1
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'OneOf1]
-> String -> String
$cshowList :: [PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'OneOf1]
-> String -> String
show :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'OneOf1
-> String
$cshow :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'OneOf1
-> String
showsPrec :: Int
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'OneOf1
-> String
-> String
$cshowsPrec :: Int
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'OneOf1
-> String
-> String
GHC.Show.Show,
      PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'OneOf1
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'OneOf1
-> Bool
(PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'OneOf1
 -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'OneOf1
 -> Bool)
-> (PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'OneOf1
    -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'OneOf1
    -> Bool)
-> Eq
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'OneOf1
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'OneOf1
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'OneOf1
-> Bool
$c/= :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'OneOf1
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'OneOf1
-> Bool
== :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'OneOf1
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'OneOf1
-> Bool
$c== :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'OneOf1
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'OneOf1
-> Bool
GHC.Classes.Eq
    )

instance Data.Aeson.Types.ToJSON.ToJSON PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'OneOf1 where
  toJSON :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'OneOf1
-> Value
toJSON PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'OneOf1
obj = [Pair] -> Value
Data.Aeson.Types.Internal.object (Text
"preferred_language" Text
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'OneOf1PreferredLanguage'
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'OneOf1
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'OneOf1PreferredLanguage'
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'OneOf1PreferredLanguage PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'OneOf1
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'OneOf1
-> Encoding
toEncoding PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'OneOf1
obj = Series -> Encoding
Data.Aeson.Encoding.Internal.pairs (Text
"preferred_language" Text
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'OneOf1PreferredLanguage'
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'OneOf1
-> Maybe
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'OneOf1PreferredLanguage'
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'OneOf1PreferredLanguage PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'OneOf1
obj)

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

-- | Create a new 'PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'OneOf1' with all required fields.
mkPostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'OneOf1 :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'OneOf1
mkPostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'OneOf1 :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'OneOf1
mkPostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'OneOf1 = PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'OneOf1 :: Maybe
  PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'OneOf1PreferredLanguage'
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'OneOf1
PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'OneOf1 {postPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'OneOf1PreferredLanguage :: Maybe
  PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'OneOf1PreferredLanguage'
postPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'OneOf1PreferredLanguage = Maybe
  PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'OneOf1PreferredLanguage'
forall a. Maybe a
GHC.Maybe.Nothing}

-- | Defines the enum schema located at @paths.\/v1\/payment_intents\/{intent}\/confirm.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.payment_method_options.properties.sofort.anyOf.properties.preferred_language@ in the specification.
data PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'OneOf1PreferredLanguage'
  = -- | This case is used if the value encountered during decoding does not match any of the provided cases in the specification.
    PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'OneOf1PreferredLanguage'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.
    PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'OneOf1PreferredLanguage'Typed Data.Text.Internal.Text
  | -- | Represents the JSON value @"de"@
    PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'OneOf1PreferredLanguage'EnumDe
  | -- | Represents the JSON value @"en"@
    PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'OneOf1PreferredLanguage'EnumEn
  | -- | Represents the JSON value @"es"@
    PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'OneOf1PreferredLanguage'EnumEs
  | -- | Represents the JSON value @"fr"@
    PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'OneOf1PreferredLanguage'EnumFr
  | -- | Represents the JSON value @"it"@
    PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'OneOf1PreferredLanguage'EnumIt
  | -- | Represents the JSON value @"nl"@
    PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'OneOf1PreferredLanguage'EnumNl
  | -- | Represents the JSON value @"pl"@
    PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'OneOf1PreferredLanguage'EnumPl
  deriving (Int
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'OneOf1PreferredLanguage'
-> String
-> String
[PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'OneOf1PreferredLanguage']
-> String -> String
PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'OneOf1PreferredLanguage'
-> String
(Int
 -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'OneOf1PreferredLanguage'
 -> String
 -> String)
-> (PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'OneOf1PreferredLanguage'
    -> String)
-> ([PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'OneOf1PreferredLanguage']
    -> String -> String)
-> Show
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'OneOf1PreferredLanguage'
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'OneOf1PreferredLanguage']
-> String -> String
$cshowList :: [PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'OneOf1PreferredLanguage']
-> String -> String
show :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'OneOf1PreferredLanguage'
-> String
$cshow :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'OneOf1PreferredLanguage'
-> String
showsPrec :: Int
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'OneOf1PreferredLanguage'
-> String
-> String
$cshowsPrec :: Int
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'OneOf1PreferredLanguage'
-> String
-> String
GHC.Show.Show, PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'OneOf1PreferredLanguage'
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'OneOf1PreferredLanguage'
-> Bool
(PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'OneOf1PreferredLanguage'
 -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'OneOf1PreferredLanguage'
 -> Bool)
-> (PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'OneOf1PreferredLanguage'
    -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'OneOf1PreferredLanguage'
    -> Bool)
-> Eq
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'OneOf1PreferredLanguage'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'OneOf1PreferredLanguage'
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'OneOf1PreferredLanguage'
-> Bool
$c/= :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'OneOf1PreferredLanguage'
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'OneOf1PreferredLanguage'
-> Bool
== :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'OneOf1PreferredLanguage'
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'OneOf1PreferredLanguage'
-> Bool
$c== :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'OneOf1PreferredLanguage'
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'OneOf1PreferredLanguage'
-> Bool
GHC.Classes.Eq)

instance Data.Aeson.Types.ToJSON.ToJSON PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'OneOf1PreferredLanguage' where
  toJSON :: PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'OneOf1PreferredLanguage'
-> Value
toJSON (PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'OneOf1PreferredLanguage'Other Value
val) = Value
val
  toJSON (PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'OneOf1PreferredLanguage'Typed Text
val) = Text -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON Text
val
  toJSON (PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'OneOf1PreferredLanguage'
PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'OneOf1PreferredLanguage'EnumDe) = Value
"de"
  toJSON (PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'OneOf1PreferredLanguage'
PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'OneOf1PreferredLanguage'EnumEn) = Value
"en"
  toJSON (PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'OneOf1PreferredLanguage'
PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'OneOf1PreferredLanguage'EnumEs) = Value
"es"
  toJSON (PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'OneOf1PreferredLanguage'
PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'OneOf1PreferredLanguage'EnumFr) = Value
"fr"
  toJSON (PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'OneOf1PreferredLanguage'
PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'OneOf1PreferredLanguage'EnumIt) = Value
"it"
  toJSON (PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'OneOf1PreferredLanguage'
PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'OneOf1PreferredLanguage'EnumNl) = Value
"nl"
  toJSON (PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'OneOf1PreferredLanguage'
PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'OneOf1PreferredLanguage'EnumPl) = Value
"pl"

instance Data.Aeson.Types.FromJSON.FromJSON PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'OneOf1PreferredLanguage' where
  parseJSON :: Value
-> Parser
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'OneOf1PreferredLanguage'
parseJSON Value
val =
    PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'OneOf1PreferredLanguage'
-> Parser
     PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'OneOf1PreferredLanguage'
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
"de" -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'OneOf1PreferredLanguage'
PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'OneOf1PreferredLanguage'EnumDe
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"en" -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'OneOf1PreferredLanguage'
PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'OneOf1PreferredLanguage'EnumEn
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"es" -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'OneOf1PreferredLanguage'
PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'OneOf1PreferredLanguage'EnumEs
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"fr" -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'OneOf1PreferredLanguage'
PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'OneOf1PreferredLanguage'EnumFr
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"it" -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'OneOf1PreferredLanguage'
PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'OneOf1PreferredLanguage'EnumIt
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"nl" -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'OneOf1PreferredLanguage'
PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'OneOf1PreferredLanguage'EnumNl
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"pl" -> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'OneOf1PreferredLanguage'
PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'OneOf1PreferredLanguage'EnumPl
            | Bool
GHC.Base.otherwise -> Value
-> PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'OneOf1PreferredLanguage'
PostPaymentIntentsIntentConfirmRequestBodyPaymentMethodOptions'Sofort'OneOf1PreferredLanguage'Other Value
val
      )

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

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

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

-- | Defines the oneOf schema located at @paths.\/v1\/payment_intents\/{intent}\/confirm.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.receipt_email.anyOf@ in the specification.
--
-- Email address that the receipt for the resulting payment will be sent to. If \`receipt_email\` is specified for a payment in live mode, a receipt will be sent regardless of your [email settings](https:\/\/dashboard.stripe.com\/account\/emails).
data PostPaymentIntentsIntentConfirmRequestBodyReceiptEmail'Variants
  = -- | Represents the JSON value @""@
    PostPaymentIntentsIntentConfirmRequestBodyReceiptEmail'EmptyString
  | PostPaymentIntentsIntentConfirmRequestBodyReceiptEmail'Text Data.Text.Internal.Text
  deriving (Int
-> PostPaymentIntentsIntentConfirmRequestBodyReceiptEmail'Variants
-> String
-> String
[PostPaymentIntentsIntentConfirmRequestBodyReceiptEmail'Variants]
-> String -> String
PostPaymentIntentsIntentConfirmRequestBodyReceiptEmail'Variants
-> String
(Int
 -> PostPaymentIntentsIntentConfirmRequestBodyReceiptEmail'Variants
 -> String
 -> String)
-> (PostPaymentIntentsIntentConfirmRequestBodyReceiptEmail'Variants
    -> String)
-> ([PostPaymentIntentsIntentConfirmRequestBodyReceiptEmail'Variants]
    -> String -> String)
-> Show
     PostPaymentIntentsIntentConfirmRequestBodyReceiptEmail'Variants
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostPaymentIntentsIntentConfirmRequestBodyReceiptEmail'Variants]
-> String -> String
$cshowList :: [PostPaymentIntentsIntentConfirmRequestBodyReceiptEmail'Variants]
-> String -> String
show :: PostPaymentIntentsIntentConfirmRequestBodyReceiptEmail'Variants
-> String
$cshow :: PostPaymentIntentsIntentConfirmRequestBodyReceiptEmail'Variants
-> String
showsPrec :: Int
-> PostPaymentIntentsIntentConfirmRequestBodyReceiptEmail'Variants
-> String
-> String
$cshowsPrec :: Int
-> PostPaymentIntentsIntentConfirmRequestBodyReceiptEmail'Variants
-> String
-> String
GHC.Show.Show, PostPaymentIntentsIntentConfirmRequestBodyReceiptEmail'Variants
-> PostPaymentIntentsIntentConfirmRequestBodyReceiptEmail'Variants
-> Bool
(PostPaymentIntentsIntentConfirmRequestBodyReceiptEmail'Variants
 -> PostPaymentIntentsIntentConfirmRequestBodyReceiptEmail'Variants
 -> Bool)
-> (PostPaymentIntentsIntentConfirmRequestBodyReceiptEmail'Variants
    -> PostPaymentIntentsIntentConfirmRequestBodyReceiptEmail'Variants
    -> Bool)
-> Eq
     PostPaymentIntentsIntentConfirmRequestBodyReceiptEmail'Variants
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostPaymentIntentsIntentConfirmRequestBodyReceiptEmail'Variants
-> PostPaymentIntentsIntentConfirmRequestBodyReceiptEmail'Variants
-> Bool
$c/= :: PostPaymentIntentsIntentConfirmRequestBodyReceiptEmail'Variants
-> PostPaymentIntentsIntentConfirmRequestBodyReceiptEmail'Variants
-> Bool
== :: PostPaymentIntentsIntentConfirmRequestBodyReceiptEmail'Variants
-> PostPaymentIntentsIntentConfirmRequestBodyReceiptEmail'Variants
-> Bool
$c== :: PostPaymentIntentsIntentConfirmRequestBodyReceiptEmail'Variants
-> PostPaymentIntentsIntentConfirmRequestBodyReceiptEmail'Variants
-> Bool
GHC.Classes.Eq)

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

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

-- | Defines the enum schema located at @paths.\/v1\/payment_intents\/{intent}\/confirm.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.setup_future_usage@ in the specification.
--
-- Indicates that you intend to make future payments with this PaymentIntent\'s payment method.
--
-- Providing this parameter will [attach the payment method](https:\/\/stripe.com\/docs\/payments\/save-during-payment) to the PaymentIntent\'s Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https:\/\/stripe.com\/docs\/api\/payment_methods\/attach) to a Customer after the transaction completes.
--
-- When processing card payments, Stripe also uses \`setup_future_usage\` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https:\/\/stripe.com\/docs\/strong-customer-authentication).
--
-- If \`setup_future_usage\` is already set and you are performing a request using a publishable key, you may only update the value from \`on_session\` to \`off_session\`.
data PostPaymentIntentsIntentConfirmRequestBodySetupFutureUsage'
  = -- | This case is used if the value encountered during decoding does not match any of the provided cases in the specification.
    PostPaymentIntentsIntentConfirmRequestBodySetupFutureUsage'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.
    PostPaymentIntentsIntentConfirmRequestBodySetupFutureUsage'Typed Data.Text.Internal.Text
  | -- | Represents the JSON value @""@
    PostPaymentIntentsIntentConfirmRequestBodySetupFutureUsage'EnumEmptyString
  | -- | Represents the JSON value @"off_session"@
    PostPaymentIntentsIntentConfirmRequestBodySetupFutureUsage'EnumOffSession
  | -- | Represents the JSON value @"on_session"@
    PostPaymentIntentsIntentConfirmRequestBodySetupFutureUsage'EnumOnSession
  deriving (Int
-> PostPaymentIntentsIntentConfirmRequestBodySetupFutureUsage'
-> String
-> String
[PostPaymentIntentsIntentConfirmRequestBodySetupFutureUsage']
-> String -> String
PostPaymentIntentsIntentConfirmRequestBodySetupFutureUsage'
-> String
(Int
 -> PostPaymentIntentsIntentConfirmRequestBodySetupFutureUsage'
 -> String
 -> String)
-> (PostPaymentIntentsIntentConfirmRequestBodySetupFutureUsage'
    -> String)
-> ([PostPaymentIntentsIntentConfirmRequestBodySetupFutureUsage']
    -> String -> String)
-> Show PostPaymentIntentsIntentConfirmRequestBodySetupFutureUsage'
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostPaymentIntentsIntentConfirmRequestBodySetupFutureUsage']
-> String -> String
$cshowList :: [PostPaymentIntentsIntentConfirmRequestBodySetupFutureUsage']
-> String -> String
show :: PostPaymentIntentsIntentConfirmRequestBodySetupFutureUsage'
-> String
$cshow :: PostPaymentIntentsIntentConfirmRequestBodySetupFutureUsage'
-> String
showsPrec :: Int
-> PostPaymentIntentsIntentConfirmRequestBodySetupFutureUsage'
-> String
-> String
$cshowsPrec :: Int
-> PostPaymentIntentsIntentConfirmRequestBodySetupFutureUsage'
-> String
-> String
GHC.Show.Show, PostPaymentIntentsIntentConfirmRequestBodySetupFutureUsage'
-> PostPaymentIntentsIntentConfirmRequestBodySetupFutureUsage'
-> Bool
(PostPaymentIntentsIntentConfirmRequestBodySetupFutureUsage'
 -> PostPaymentIntentsIntentConfirmRequestBodySetupFutureUsage'
 -> Bool)
-> (PostPaymentIntentsIntentConfirmRequestBodySetupFutureUsage'
    -> PostPaymentIntentsIntentConfirmRequestBodySetupFutureUsage'
    -> Bool)
-> Eq PostPaymentIntentsIntentConfirmRequestBodySetupFutureUsage'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostPaymentIntentsIntentConfirmRequestBodySetupFutureUsage'
-> PostPaymentIntentsIntentConfirmRequestBodySetupFutureUsage'
-> Bool
$c/= :: PostPaymentIntentsIntentConfirmRequestBodySetupFutureUsage'
-> PostPaymentIntentsIntentConfirmRequestBodySetupFutureUsage'
-> Bool
== :: PostPaymentIntentsIntentConfirmRequestBodySetupFutureUsage'
-> PostPaymentIntentsIntentConfirmRequestBodySetupFutureUsage'
-> Bool
$c== :: PostPaymentIntentsIntentConfirmRequestBodySetupFutureUsage'
-> PostPaymentIntentsIntentConfirmRequestBodySetupFutureUsage'
-> Bool
GHC.Classes.Eq)

instance Data.Aeson.Types.ToJSON.ToJSON PostPaymentIntentsIntentConfirmRequestBodySetupFutureUsage' where
  toJSON :: PostPaymentIntentsIntentConfirmRequestBodySetupFutureUsage'
-> Value
toJSON (PostPaymentIntentsIntentConfirmRequestBodySetupFutureUsage'Other Value
val) = Value
val
  toJSON (PostPaymentIntentsIntentConfirmRequestBodySetupFutureUsage'Typed Text
val) = Text -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON Text
val
  toJSON (PostPaymentIntentsIntentConfirmRequestBodySetupFutureUsage'
PostPaymentIntentsIntentConfirmRequestBodySetupFutureUsage'EnumEmptyString) = Value
""
  toJSON (PostPaymentIntentsIntentConfirmRequestBodySetupFutureUsage'
PostPaymentIntentsIntentConfirmRequestBodySetupFutureUsage'EnumOffSession) = Value
"off_session"
  toJSON (PostPaymentIntentsIntentConfirmRequestBodySetupFutureUsage'
PostPaymentIntentsIntentConfirmRequestBodySetupFutureUsage'EnumOnSession) = Value
"on_session"

instance Data.Aeson.Types.FromJSON.FromJSON PostPaymentIntentsIntentConfirmRequestBodySetupFutureUsage' where
  parseJSON :: Value
-> Parser
     PostPaymentIntentsIntentConfirmRequestBodySetupFutureUsage'
parseJSON Value
val =
    PostPaymentIntentsIntentConfirmRequestBodySetupFutureUsage'
-> Parser
     PostPaymentIntentsIntentConfirmRequestBodySetupFutureUsage'
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
"" -> PostPaymentIntentsIntentConfirmRequestBodySetupFutureUsage'
PostPaymentIntentsIntentConfirmRequestBodySetupFutureUsage'EnumEmptyString
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"off_session" -> PostPaymentIntentsIntentConfirmRequestBodySetupFutureUsage'
PostPaymentIntentsIntentConfirmRequestBodySetupFutureUsage'EnumOffSession
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"on_session" -> PostPaymentIntentsIntentConfirmRequestBodySetupFutureUsage'
PostPaymentIntentsIntentConfirmRequestBodySetupFutureUsage'EnumOnSession
            | Bool
GHC.Base.otherwise -> Value
-> PostPaymentIntentsIntentConfirmRequestBodySetupFutureUsage'
PostPaymentIntentsIntentConfirmRequestBodySetupFutureUsage'Other Value
val
      )

-- | Defines the object schema located at @paths.\/v1\/payment_intents\/{intent}\/confirm.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.shipping.anyOf@ in the specification.
data PostPaymentIntentsIntentConfirmRequestBodyShipping'OneOf1 = PostPaymentIntentsIntentConfirmRequestBodyShipping'OneOf1
  { -- | address
    PostPaymentIntentsIntentConfirmRequestBodyShipping'OneOf1
-> PostPaymentIntentsIntentConfirmRequestBodyShipping'OneOf1Address'
postPaymentIntentsIntentConfirmRequestBodyShipping'OneOf1Address :: PostPaymentIntentsIntentConfirmRequestBodyShipping'OneOf1Address',
    -- | carrier
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PostPaymentIntentsIntentConfirmRequestBodyShipping'OneOf1
-> Maybe Text
postPaymentIntentsIntentConfirmRequestBodyShipping'OneOf1Carrier :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | name
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PostPaymentIntentsIntentConfirmRequestBodyShipping'OneOf1 -> Text
postPaymentIntentsIntentConfirmRequestBodyShipping'OneOf1Name :: Data.Text.Internal.Text,
    -- | phone
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PostPaymentIntentsIntentConfirmRequestBodyShipping'OneOf1
-> Maybe Text
postPaymentIntentsIntentConfirmRequestBodyShipping'OneOf1Phone :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | tracking_number
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PostPaymentIntentsIntentConfirmRequestBodyShipping'OneOf1
-> Maybe Text
postPaymentIntentsIntentConfirmRequestBodyShipping'OneOf1TrackingNumber :: (GHC.Maybe.Maybe Data.Text.Internal.Text)
  }
  deriving
    ( Int
-> PostPaymentIntentsIntentConfirmRequestBodyShipping'OneOf1
-> String
-> String
[PostPaymentIntentsIntentConfirmRequestBodyShipping'OneOf1]
-> String -> String
PostPaymentIntentsIntentConfirmRequestBodyShipping'OneOf1 -> String
(Int
 -> PostPaymentIntentsIntentConfirmRequestBodyShipping'OneOf1
 -> String
 -> String)
-> (PostPaymentIntentsIntentConfirmRequestBodyShipping'OneOf1
    -> String)
-> ([PostPaymentIntentsIntentConfirmRequestBodyShipping'OneOf1]
    -> String -> String)
-> Show PostPaymentIntentsIntentConfirmRequestBodyShipping'OneOf1
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostPaymentIntentsIntentConfirmRequestBodyShipping'OneOf1]
-> String -> String
$cshowList :: [PostPaymentIntentsIntentConfirmRequestBodyShipping'OneOf1]
-> String -> String
show :: PostPaymentIntentsIntentConfirmRequestBodyShipping'OneOf1 -> String
$cshow :: PostPaymentIntentsIntentConfirmRequestBodyShipping'OneOf1 -> String
showsPrec :: Int
-> PostPaymentIntentsIntentConfirmRequestBodyShipping'OneOf1
-> String
-> String
$cshowsPrec :: Int
-> PostPaymentIntentsIntentConfirmRequestBodyShipping'OneOf1
-> String
-> String
GHC.Show.Show,
      PostPaymentIntentsIntentConfirmRequestBodyShipping'OneOf1
-> PostPaymentIntentsIntentConfirmRequestBodyShipping'OneOf1
-> Bool
(PostPaymentIntentsIntentConfirmRequestBodyShipping'OneOf1
 -> PostPaymentIntentsIntentConfirmRequestBodyShipping'OneOf1
 -> Bool)
-> (PostPaymentIntentsIntentConfirmRequestBodyShipping'OneOf1
    -> PostPaymentIntentsIntentConfirmRequestBodyShipping'OneOf1
    -> Bool)
-> Eq PostPaymentIntentsIntentConfirmRequestBodyShipping'OneOf1
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostPaymentIntentsIntentConfirmRequestBodyShipping'OneOf1
-> PostPaymentIntentsIntentConfirmRequestBodyShipping'OneOf1
-> Bool
$c/= :: PostPaymentIntentsIntentConfirmRequestBodyShipping'OneOf1
-> PostPaymentIntentsIntentConfirmRequestBodyShipping'OneOf1
-> Bool
== :: PostPaymentIntentsIntentConfirmRequestBodyShipping'OneOf1
-> PostPaymentIntentsIntentConfirmRequestBodyShipping'OneOf1
-> Bool
$c== :: PostPaymentIntentsIntentConfirmRequestBodyShipping'OneOf1
-> PostPaymentIntentsIntentConfirmRequestBodyShipping'OneOf1
-> Bool
GHC.Classes.Eq
    )

instance Data.Aeson.Types.ToJSON.ToJSON PostPaymentIntentsIntentConfirmRequestBodyShipping'OneOf1 where
  toJSON :: PostPaymentIntentsIntentConfirmRequestBodyShipping'OneOf1 -> Value
toJSON PostPaymentIntentsIntentConfirmRequestBodyShipping'OneOf1
obj = [Pair] -> Value
Data.Aeson.Types.Internal.object (Text
"address" Text
-> PostPaymentIntentsIntentConfirmRequestBodyShipping'OneOf1Address'
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentIntentsIntentConfirmRequestBodyShipping'OneOf1
-> PostPaymentIntentsIntentConfirmRequestBodyShipping'OneOf1Address'
postPaymentIntentsIntentConfirmRequestBodyShipping'OneOf1Address PostPaymentIntentsIntentConfirmRequestBodyShipping'OneOf1
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"carrier" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentIntentsIntentConfirmRequestBodyShipping'OneOf1
-> Maybe Text
postPaymentIntentsIntentConfirmRequestBodyShipping'OneOf1Carrier PostPaymentIntentsIntentConfirmRequestBodyShipping'OneOf1
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"name" Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentIntentsIntentConfirmRequestBodyShipping'OneOf1 -> Text
postPaymentIntentsIntentConfirmRequestBodyShipping'OneOf1Name PostPaymentIntentsIntentConfirmRequestBodyShipping'OneOf1
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..= PostPaymentIntentsIntentConfirmRequestBodyShipping'OneOf1
-> Maybe Text
postPaymentIntentsIntentConfirmRequestBodyShipping'OneOf1Phone PostPaymentIntentsIntentConfirmRequestBodyShipping'OneOf1
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"tracking_number" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentIntentsIntentConfirmRequestBodyShipping'OneOf1
-> Maybe Text
postPaymentIntentsIntentConfirmRequestBodyShipping'OneOf1TrackingNumber PostPaymentIntentsIntentConfirmRequestBodyShipping'OneOf1
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: PostPaymentIntentsIntentConfirmRequestBodyShipping'OneOf1
-> Encoding
toEncoding PostPaymentIntentsIntentConfirmRequestBodyShipping'OneOf1
obj = Series -> Encoding
Data.Aeson.Encoding.Internal.pairs ((Text
"address" Text
-> PostPaymentIntentsIntentConfirmRequestBodyShipping'OneOf1Address'
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentIntentsIntentConfirmRequestBodyShipping'OneOf1
-> PostPaymentIntentsIntentConfirmRequestBodyShipping'OneOf1Address'
postPaymentIntentsIntentConfirmRequestBodyShipping'OneOf1Address PostPaymentIntentsIntentConfirmRequestBodyShipping'OneOf1
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"carrier" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentIntentsIntentConfirmRequestBodyShipping'OneOf1
-> Maybe Text
postPaymentIntentsIntentConfirmRequestBodyShipping'OneOf1Carrier PostPaymentIntentsIntentConfirmRequestBodyShipping'OneOf1
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"name" Text -> Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentIntentsIntentConfirmRequestBodyShipping'OneOf1 -> Text
postPaymentIntentsIntentConfirmRequestBodyShipping'OneOf1Name PostPaymentIntentsIntentConfirmRequestBodyShipping'OneOf1
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..= PostPaymentIntentsIntentConfirmRequestBodyShipping'OneOf1
-> Maybe Text
postPaymentIntentsIntentConfirmRequestBodyShipping'OneOf1Phone PostPaymentIntentsIntentConfirmRequestBodyShipping'OneOf1
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> (Text
"tracking_number" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentIntentsIntentConfirmRequestBodyShipping'OneOf1
-> Maybe Text
postPaymentIntentsIntentConfirmRequestBodyShipping'OneOf1TrackingNumber PostPaymentIntentsIntentConfirmRequestBodyShipping'OneOf1
obj)))))

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

-- | Create a new 'PostPaymentIntentsIntentConfirmRequestBodyShipping'OneOf1' with all required fields.
mkPostPaymentIntentsIntentConfirmRequestBodyShipping'OneOf1 ::
  -- | 'postPaymentIntentsIntentConfirmRequestBodyShipping'OneOf1Address'
  PostPaymentIntentsIntentConfirmRequestBodyShipping'OneOf1Address' ->
  -- | 'postPaymentIntentsIntentConfirmRequestBodyShipping'OneOf1Name'
  Data.Text.Internal.Text ->
  PostPaymentIntentsIntentConfirmRequestBodyShipping'OneOf1
mkPostPaymentIntentsIntentConfirmRequestBodyShipping'OneOf1 :: PostPaymentIntentsIntentConfirmRequestBodyShipping'OneOf1Address'
-> Text
-> PostPaymentIntentsIntentConfirmRequestBodyShipping'OneOf1
mkPostPaymentIntentsIntentConfirmRequestBodyShipping'OneOf1 PostPaymentIntentsIntentConfirmRequestBodyShipping'OneOf1Address'
postPaymentIntentsIntentConfirmRequestBodyShipping'OneOf1Address Text
postPaymentIntentsIntentConfirmRequestBodyShipping'OneOf1Name =
  PostPaymentIntentsIntentConfirmRequestBodyShipping'OneOf1 :: PostPaymentIntentsIntentConfirmRequestBodyShipping'OneOf1Address'
-> Maybe Text
-> Text
-> Maybe Text
-> Maybe Text
-> PostPaymentIntentsIntentConfirmRequestBodyShipping'OneOf1
PostPaymentIntentsIntentConfirmRequestBodyShipping'OneOf1
    { postPaymentIntentsIntentConfirmRequestBodyShipping'OneOf1Address :: PostPaymentIntentsIntentConfirmRequestBodyShipping'OneOf1Address'
postPaymentIntentsIntentConfirmRequestBodyShipping'OneOf1Address = PostPaymentIntentsIntentConfirmRequestBodyShipping'OneOf1Address'
postPaymentIntentsIntentConfirmRequestBodyShipping'OneOf1Address,
      postPaymentIntentsIntentConfirmRequestBodyShipping'OneOf1Carrier :: Maybe Text
postPaymentIntentsIntentConfirmRequestBodyShipping'OneOf1Carrier = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      postPaymentIntentsIntentConfirmRequestBodyShipping'OneOf1Name :: Text
postPaymentIntentsIntentConfirmRequestBodyShipping'OneOf1Name = Text
postPaymentIntentsIntentConfirmRequestBodyShipping'OneOf1Name,
      postPaymentIntentsIntentConfirmRequestBodyShipping'OneOf1Phone :: Maybe Text
postPaymentIntentsIntentConfirmRequestBodyShipping'OneOf1Phone = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      postPaymentIntentsIntentConfirmRequestBodyShipping'OneOf1TrackingNumber :: Maybe Text
postPaymentIntentsIntentConfirmRequestBodyShipping'OneOf1TrackingNumber = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing
    }

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

instance Data.Aeson.Types.ToJSON.ToJSON PostPaymentIntentsIntentConfirmRequestBodyShipping'OneOf1Address' where
  toJSON :: PostPaymentIntentsIntentConfirmRequestBodyShipping'OneOf1Address'
-> Value
toJSON PostPaymentIntentsIntentConfirmRequestBodyShipping'OneOf1Address'
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..= PostPaymentIntentsIntentConfirmRequestBodyShipping'OneOf1Address'
-> Maybe Text
postPaymentIntentsIntentConfirmRequestBodyShipping'OneOf1Address'City PostPaymentIntentsIntentConfirmRequestBodyShipping'OneOf1Address'
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..= PostPaymentIntentsIntentConfirmRequestBodyShipping'OneOf1Address'
-> Maybe Text
postPaymentIntentsIntentConfirmRequestBodyShipping'OneOf1Address'Country PostPaymentIntentsIntentConfirmRequestBodyShipping'OneOf1Address'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"line1" Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentIntentsIntentConfirmRequestBodyShipping'OneOf1Address'
-> Text
postPaymentIntentsIntentConfirmRequestBodyShipping'OneOf1Address'Line1 PostPaymentIntentsIntentConfirmRequestBodyShipping'OneOf1Address'
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..= PostPaymentIntentsIntentConfirmRequestBodyShipping'OneOf1Address'
-> Maybe Text
postPaymentIntentsIntentConfirmRequestBodyShipping'OneOf1Address'Line2 PostPaymentIntentsIntentConfirmRequestBodyShipping'OneOf1Address'
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..= PostPaymentIntentsIntentConfirmRequestBodyShipping'OneOf1Address'
-> Maybe Text
postPaymentIntentsIntentConfirmRequestBodyShipping'OneOf1Address'PostalCode PostPaymentIntentsIntentConfirmRequestBodyShipping'OneOf1Address'
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..= PostPaymentIntentsIntentConfirmRequestBodyShipping'OneOf1Address'
-> Maybe Text
postPaymentIntentsIntentConfirmRequestBodyShipping'OneOf1Address'State PostPaymentIntentsIntentConfirmRequestBodyShipping'OneOf1Address'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: PostPaymentIntentsIntentConfirmRequestBodyShipping'OneOf1Address'
-> Encoding
toEncoding PostPaymentIntentsIntentConfirmRequestBodyShipping'OneOf1Address'
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..= PostPaymentIntentsIntentConfirmRequestBodyShipping'OneOf1Address'
-> Maybe Text
postPaymentIntentsIntentConfirmRequestBodyShipping'OneOf1Address'City PostPaymentIntentsIntentConfirmRequestBodyShipping'OneOf1Address'
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..= PostPaymentIntentsIntentConfirmRequestBodyShipping'OneOf1Address'
-> Maybe Text
postPaymentIntentsIntentConfirmRequestBodyShipping'OneOf1Address'Country PostPaymentIntentsIntentConfirmRequestBodyShipping'OneOf1Address'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"line1" Text -> Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostPaymentIntentsIntentConfirmRequestBodyShipping'OneOf1Address'
-> Text
postPaymentIntentsIntentConfirmRequestBodyShipping'OneOf1Address'Line1 PostPaymentIntentsIntentConfirmRequestBodyShipping'OneOf1Address'
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..= PostPaymentIntentsIntentConfirmRequestBodyShipping'OneOf1Address'
-> Maybe Text
postPaymentIntentsIntentConfirmRequestBodyShipping'OneOf1Address'Line2 PostPaymentIntentsIntentConfirmRequestBodyShipping'OneOf1Address'
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..= PostPaymentIntentsIntentConfirmRequestBodyShipping'OneOf1Address'
-> Maybe Text
postPaymentIntentsIntentConfirmRequestBodyShipping'OneOf1Address'PostalCode PostPaymentIntentsIntentConfirmRequestBodyShipping'OneOf1Address'
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..= PostPaymentIntentsIntentConfirmRequestBodyShipping'OneOf1Address'
-> Maybe Text
postPaymentIntentsIntentConfirmRequestBodyShipping'OneOf1Address'State PostPaymentIntentsIntentConfirmRequestBodyShipping'OneOf1Address'
obj))))))

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

-- | Defines the oneOf schema located at @paths.\/v1\/payment_intents\/{intent}\/confirm.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.shipping.anyOf@ in the specification.
--
-- Shipping information for this PaymentIntent.
data PostPaymentIntentsIntentConfirmRequestBodyShipping'Variants
  = -- | Represents the JSON value @""@
    PostPaymentIntentsIntentConfirmRequestBodyShipping'EmptyString
  | PostPaymentIntentsIntentConfirmRequestBodyShipping'PostPaymentIntentsIntentConfirmRequestBodyShipping'OneOf1 PostPaymentIntentsIntentConfirmRequestBodyShipping'OneOf1
  deriving (Int
-> PostPaymentIntentsIntentConfirmRequestBodyShipping'Variants
-> String
-> String
[PostPaymentIntentsIntentConfirmRequestBodyShipping'Variants]
-> String -> String
PostPaymentIntentsIntentConfirmRequestBodyShipping'Variants
-> String
(Int
 -> PostPaymentIntentsIntentConfirmRequestBodyShipping'Variants
 -> String
 -> String)
-> (PostPaymentIntentsIntentConfirmRequestBodyShipping'Variants
    -> String)
-> ([PostPaymentIntentsIntentConfirmRequestBodyShipping'Variants]
    -> String -> String)
-> Show PostPaymentIntentsIntentConfirmRequestBodyShipping'Variants
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostPaymentIntentsIntentConfirmRequestBodyShipping'Variants]
-> String -> String
$cshowList :: [PostPaymentIntentsIntentConfirmRequestBodyShipping'Variants]
-> String -> String
show :: PostPaymentIntentsIntentConfirmRequestBodyShipping'Variants
-> String
$cshow :: PostPaymentIntentsIntentConfirmRequestBodyShipping'Variants
-> String
showsPrec :: Int
-> PostPaymentIntentsIntentConfirmRequestBodyShipping'Variants
-> String
-> String
$cshowsPrec :: Int
-> PostPaymentIntentsIntentConfirmRequestBodyShipping'Variants
-> String
-> String
GHC.Show.Show, PostPaymentIntentsIntentConfirmRequestBodyShipping'Variants
-> PostPaymentIntentsIntentConfirmRequestBodyShipping'Variants
-> Bool
(PostPaymentIntentsIntentConfirmRequestBodyShipping'Variants
 -> PostPaymentIntentsIntentConfirmRequestBodyShipping'Variants
 -> Bool)
-> (PostPaymentIntentsIntentConfirmRequestBodyShipping'Variants
    -> PostPaymentIntentsIntentConfirmRequestBodyShipping'Variants
    -> Bool)
-> Eq PostPaymentIntentsIntentConfirmRequestBodyShipping'Variants
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostPaymentIntentsIntentConfirmRequestBodyShipping'Variants
-> PostPaymentIntentsIntentConfirmRequestBodyShipping'Variants
-> Bool
$c/= :: PostPaymentIntentsIntentConfirmRequestBodyShipping'Variants
-> PostPaymentIntentsIntentConfirmRequestBodyShipping'Variants
-> Bool
== :: PostPaymentIntentsIntentConfirmRequestBodyShipping'Variants
-> PostPaymentIntentsIntentConfirmRequestBodyShipping'Variants
-> Bool
$c== :: PostPaymentIntentsIntentConfirmRequestBodyShipping'Variants
-> PostPaymentIntentsIntentConfirmRequestBodyShipping'Variants
-> Bool
GHC.Classes.Eq)

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

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

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