{-# 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 postSetupIntentsIntentConfirm module StripeAPI.Operations.PostSetupIntentsIntentConfirm 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/setup_intents/{intent}/confirm -- -- \
Confirm that your customer intends to set up the current or -- provided payment method. For example, you would confirm a SetupIntent -- when a customer hits the “Save” button on a payment method management -- page on your website.\<\/p> -- -- \
If the selected payment method does not require any additional
-- steps from the customer, the SetupIntent will transition to the
-- \ Otherwise, it will transition to the \succeeded\<\/code> status.\<\/p>
--
-- \
requires_action\<\/code> status and
-- suggest additional actions via \
next_action\<\/code>. If setup fails,
-- the SetupIntent will transition to the
-- \
requires_payment_method\<\/code> status.\<\/p>
postSetupIntentsIntentConfirm ::
forall m.
StripeAPI.Common.MonadHTTP m =>
-- | intent | Constraints: Maximum length of 5000
Data.Text.Internal.Text ->
-- | The request body to send
GHC.Maybe.Maybe PostSetupIntentsIntentConfirmRequestBody ->
-- | Monadic computation which returns the result of the operation
StripeAPI.Common.ClientT m (Network.HTTP.Client.Types.Response PostSetupIntentsIntentConfirmResponse)
postSetupIntentsIntentConfirm
intent
body =
GHC.Base.fmap
( \response_0 ->
GHC.Base.fmap
( Data.Either.either PostSetupIntentsIntentConfirmResponseError GHC.Base.id
GHC.Base.. ( \response body ->
if
| (\status_1 -> Network.HTTP.Types.Status.statusCode status_1 GHC.Classes.== 200) (Network.HTTP.Client.Types.responseStatus response) ->
PostSetupIntentsIntentConfirmResponse200
Data.Functor.<$> ( Data.Aeson.eitherDecodeStrict body ::
Data.Either.Either
GHC.Base.String
SetupIntent
)
| GHC.Base.const GHC.Types.True (Network.HTTP.Client.Types.responseStatus response) ->
PostSetupIntentsIntentConfirmResponseDefault
Data.Functor.<$> ( Data.Aeson.eitherDecodeStrict body ::
Data.Either.Either
GHC.Base.String
Error
)
| GHC.Base.otherwise -> Data.Either.Left "Missing default response type"
)
response_0
)
response_0
)
(StripeAPI.Common.doBodyCallWithConfigurationM (Data.Text.toUpper GHC.Base.$ Data.Text.pack "POST") (Data.Text.pack ("/v1/setup_intents/" GHC.Base.++ (Data.ByteString.Char8.unpack (Network.HTTP.Types.URI.urlEncode GHC.Types.True GHC.Base.$ (Data.ByteString.Char8.pack GHC.Base.$ StripeAPI.Common.stringifyModel intent)) GHC.Base.++ "/confirm"))) GHC.Base.mempty body StripeAPI.Common.RequestBodyEncodingFormData)
-- | Defines the object schema located at @paths.\/v1\/setup_intents\/{intent}\/confirm.POST.requestBody.content.application\/x-www-form-urlencoded.schema@ in the specification.
data PostSetupIntentsIntentConfirmRequestBody = PostSetupIntentsIntentConfirmRequestBody
{ -- | client_secret: The client secret of the SetupIntent.
--
-- Constraints:
--
-- * Maximum length of 5000
postSetupIntentsIntentConfirmRequestBodyClientSecret :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
-- | expand: Specifies which fields in the response should be expanded.
postSetupIntentsIntentConfirmRequestBodyExpand :: (GHC.Maybe.Maybe ([Data.Text.Internal.Text])),
-- | mandate_data: This hash contains details about the Mandate to create
postSetupIntentsIntentConfirmRequestBodyMandateData :: (GHC.Maybe.Maybe PostSetupIntentsIntentConfirmRequestBodyMandateData'),
-- | payment_method: ID of the payment method (a PaymentMethod, Card, or saved Source object) to attach to this SetupIntent.
--
-- Constraints:
--
-- * Maximum length of 5000
postSetupIntentsIntentConfirmRequestBodyPaymentMethod :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
-- | payment_method_options: Payment-method-specific configuration for this SetupIntent.
postSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions :: (GHC.Maybe.Maybe PostSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'),
-- | return_url: The URL to redirect your customer back to after they authenticate 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.
postSetupIntentsIntentConfirmRequestBodyReturnUrl :: (GHC.Maybe.Maybe Data.Text.Internal.Text)
}
deriving
( GHC.Show.Show,
GHC.Classes.Eq
)
instance Data.Aeson.Types.ToJSON.ToJSON PostSetupIntentsIntentConfirmRequestBody where
toJSON obj = Data.Aeson.Types.Internal.object ("client_secret" Data.Aeson.Types.ToJSON..= postSetupIntentsIntentConfirmRequestBodyClientSecret obj : "expand" Data.Aeson.Types.ToJSON..= postSetupIntentsIntentConfirmRequestBodyExpand obj : "mandate_data" Data.Aeson.Types.ToJSON..= postSetupIntentsIntentConfirmRequestBodyMandateData obj : "payment_method" Data.Aeson.Types.ToJSON..= postSetupIntentsIntentConfirmRequestBodyPaymentMethod obj : "payment_method_options" Data.Aeson.Types.ToJSON..= postSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions obj : "return_url" Data.Aeson.Types.ToJSON..= postSetupIntentsIntentConfirmRequestBodyReturnUrl obj : GHC.Base.mempty)
toEncoding obj = Data.Aeson.Encoding.Internal.pairs (("client_secret" Data.Aeson.Types.ToJSON..= postSetupIntentsIntentConfirmRequestBodyClientSecret obj) GHC.Base.<> (("expand" Data.Aeson.Types.ToJSON..= postSetupIntentsIntentConfirmRequestBodyExpand obj) GHC.Base.<> (("mandate_data" Data.Aeson.Types.ToJSON..= postSetupIntentsIntentConfirmRequestBodyMandateData obj) GHC.Base.<> (("payment_method" Data.Aeson.Types.ToJSON..= postSetupIntentsIntentConfirmRequestBodyPaymentMethod obj) GHC.Base.<> (("payment_method_options" Data.Aeson.Types.ToJSON..= postSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions obj) GHC.Base.<> ("return_url" Data.Aeson.Types.ToJSON..= postSetupIntentsIntentConfirmRequestBodyReturnUrl obj))))))
instance Data.Aeson.Types.FromJSON.FromJSON PostSetupIntentsIntentConfirmRequestBody where
parseJSON = Data.Aeson.Types.FromJSON.withObject "PostSetupIntentsIntentConfirmRequestBody" (\obj -> (((((GHC.Base.pure PostSetupIntentsIntentConfirmRequestBody GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "client_secret")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "expand")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "mandate_data")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "payment_method")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "payment_method_options")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "return_url"))
-- | Create a new 'PostSetupIntentsIntentConfirmRequestBody' with all required fields.
mkPostSetupIntentsIntentConfirmRequestBody :: PostSetupIntentsIntentConfirmRequestBody
mkPostSetupIntentsIntentConfirmRequestBody =
PostSetupIntentsIntentConfirmRequestBody
{ postSetupIntentsIntentConfirmRequestBodyClientSecret = GHC.Maybe.Nothing,
postSetupIntentsIntentConfirmRequestBodyExpand = GHC.Maybe.Nothing,
postSetupIntentsIntentConfirmRequestBodyMandateData = GHC.Maybe.Nothing,
postSetupIntentsIntentConfirmRequestBodyPaymentMethod = GHC.Maybe.Nothing,
postSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions = GHC.Maybe.Nothing,
postSetupIntentsIntentConfirmRequestBodyReturnUrl = GHC.Maybe.Nothing
}
-- | Defines the object schema located at @paths.\/v1\/setup_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 PostSetupIntentsIntentConfirmRequestBodyMandateData' = PostSetupIntentsIntentConfirmRequestBodyMandateData'
{ -- | customer_acceptance
postSetupIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance :: (GHC.Maybe.Maybe PostSetupIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance')
}
deriving
( GHC.Show.Show,
GHC.Classes.Eq
)
instance Data.Aeson.Types.ToJSON.ToJSON PostSetupIntentsIntentConfirmRequestBodyMandateData' where
toJSON obj = Data.Aeson.Types.Internal.object ("customer_acceptance" Data.Aeson.Types.ToJSON..= postSetupIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance obj : GHC.Base.mempty)
toEncoding obj = Data.Aeson.Encoding.Internal.pairs ("customer_acceptance" Data.Aeson.Types.ToJSON..= postSetupIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance obj)
instance Data.Aeson.Types.FromJSON.FromJSON PostSetupIntentsIntentConfirmRequestBodyMandateData' where
parseJSON = Data.Aeson.Types.FromJSON.withObject "PostSetupIntentsIntentConfirmRequestBodyMandateData'" (\obj -> GHC.Base.pure PostSetupIntentsIntentConfirmRequestBodyMandateData' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "customer_acceptance"))
-- | Create a new 'PostSetupIntentsIntentConfirmRequestBodyMandateData'' with all required fields.
mkPostSetupIntentsIntentConfirmRequestBodyMandateData' :: PostSetupIntentsIntentConfirmRequestBodyMandateData'
mkPostSetupIntentsIntentConfirmRequestBodyMandateData' = PostSetupIntentsIntentConfirmRequestBodyMandateData' {postSetupIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance = GHC.Maybe.Nothing}
-- | Defines the object schema located at @paths.\/v1\/setup_intents\/{intent}\/confirm.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.mandate_data.anyOf.properties.customer_acceptance@ in the specification.
data PostSetupIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance' = PostSetupIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'
{ -- | accepted_at
postSetupIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'AcceptedAt :: (GHC.Maybe.Maybe GHC.Types.Int),
-- | offline
postSetupIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Offline :: (GHC.Maybe.Maybe Data.Aeson.Types.Internal.Object),
-- | online
postSetupIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Online :: (GHC.Maybe.Maybe PostSetupIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Online'),
-- | type
--
-- Constraints:
--
-- * Maximum length of 5000
postSetupIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Type :: PostSetupIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Type'
}
deriving
( GHC.Show.Show,
GHC.Classes.Eq
)
instance Data.Aeson.Types.ToJSON.ToJSON PostSetupIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance' where
toJSON obj = Data.Aeson.Types.Internal.object ("accepted_at" Data.Aeson.Types.ToJSON..= postSetupIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'AcceptedAt obj : "offline" Data.Aeson.Types.ToJSON..= postSetupIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Offline obj : "online" Data.Aeson.Types.ToJSON..= postSetupIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Online obj : "type" Data.Aeson.Types.ToJSON..= postSetupIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Type obj : GHC.Base.mempty)
toEncoding obj = Data.Aeson.Encoding.Internal.pairs (("accepted_at" Data.Aeson.Types.ToJSON..= postSetupIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'AcceptedAt obj) GHC.Base.<> (("offline" Data.Aeson.Types.ToJSON..= postSetupIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Offline obj) GHC.Base.<> (("online" Data.Aeson.Types.ToJSON..= postSetupIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Online obj) GHC.Base.<> ("type" Data.Aeson.Types.ToJSON..= postSetupIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Type obj))))
instance Data.Aeson.Types.FromJSON.FromJSON PostSetupIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance' where
parseJSON = Data.Aeson.Types.FromJSON.withObject "PostSetupIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'" (\obj -> (((GHC.Base.pure PostSetupIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "accepted_at")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "offline")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "online")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "type"))
-- | Create a new 'PostSetupIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'' with all required fields.
mkPostSetupIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance' ::
-- | 'postSetupIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Type'
PostSetupIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Type' ->
PostSetupIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'
mkPostSetupIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance' postSetupIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Type =
PostSetupIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'
{ postSetupIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'AcceptedAt = GHC.Maybe.Nothing,
postSetupIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Offline = GHC.Maybe.Nothing,
postSetupIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Online = GHC.Maybe.Nothing,
postSetupIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Type = postSetupIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Type
}
-- | Defines the object schema located at @paths.\/v1\/setup_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 PostSetupIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Online' = PostSetupIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Online'
{ -- | ip_address
postSetupIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Online'IpAddress :: Data.Text.Internal.Text,
-- | user_agent
--
-- Constraints:
--
-- * Maximum length of 5000
postSetupIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Online'UserAgent :: Data.Text.Internal.Text
}
deriving
( GHC.Show.Show,
GHC.Classes.Eq
)
instance Data.Aeson.Types.ToJSON.ToJSON PostSetupIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Online' where
toJSON obj = Data.Aeson.Types.Internal.object ("ip_address" Data.Aeson.Types.ToJSON..= postSetupIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Online'IpAddress obj : "user_agent" Data.Aeson.Types.ToJSON..= postSetupIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Online'UserAgent obj : GHC.Base.mempty)
toEncoding obj = Data.Aeson.Encoding.Internal.pairs (("ip_address" Data.Aeson.Types.ToJSON..= postSetupIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Online'IpAddress obj) GHC.Base.<> ("user_agent" Data.Aeson.Types.ToJSON..= postSetupIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Online'UserAgent obj))
instance Data.Aeson.Types.FromJSON.FromJSON PostSetupIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Online' where
parseJSON = Data.Aeson.Types.FromJSON.withObject "PostSetupIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Online'" (\obj -> (GHC.Base.pure PostSetupIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Online' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "ip_address")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "user_agent"))
-- | Create a new 'PostSetupIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Online'' with all required fields.
mkPostSetupIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Online' ::
-- | 'postSetupIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Online'IpAddress'
Data.Text.Internal.Text ->
-- | 'postSetupIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Online'UserAgent'
Data.Text.Internal.Text ->
PostSetupIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Online'
mkPostSetupIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Online' postSetupIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Online'IpAddress postSetupIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Online'UserAgent =
PostSetupIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Online'
{ postSetupIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Online'IpAddress = postSetupIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Online'IpAddress,
postSetupIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Online'UserAgent = postSetupIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Online'UserAgent
}
-- | Defines the enum schema located at @paths.\/v1\/setup_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 PostSetupIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Type'
= -- | This case is used if the value encountered during decoding does not match any of the provided cases in the specification.
PostSetupIntentsIntentConfirmRequestBodyMandateData'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.
PostSetupIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Type'Typed Data.Text.Internal.Text
| -- | Represents the JSON value @"offline"@
PostSetupIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Type'EnumOffline
| -- | Represents the JSON value @"online"@
PostSetupIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Type'EnumOnline
deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.Types.ToJSON.ToJSON PostSetupIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Type' where
toJSON (PostSetupIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Type'Other val) = val
toJSON (PostSetupIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Type'Typed val) = Data.Aeson.Types.ToJSON.toJSON val
toJSON (PostSetupIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Type'EnumOffline) = "offline"
toJSON (PostSetupIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Type'EnumOnline) = "online"
instance Data.Aeson.Types.FromJSON.FromJSON PostSetupIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Type' where
parseJSON val =
GHC.Base.pure
( if
| val GHC.Classes.== "offline" -> PostSetupIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Type'EnumOffline
| val GHC.Classes.== "online" -> PostSetupIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Type'EnumOnline
| GHC.Base.otherwise -> PostSetupIntentsIntentConfirmRequestBodyMandateData'CustomerAcceptance'Type'Other val
)
-- | Defines the object schema located at @paths.\/v1\/setup_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 SetupIntent.
data PostSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions' = PostSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'
{ -- | acss_debit
postSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit :: (GHC.Maybe.Maybe PostSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'),
-- | card
postSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card :: (GHC.Maybe.Maybe PostSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'),
-- | sepa_debit
postSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'SepaDebit :: (GHC.Maybe.Maybe PostSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'SepaDebit')
}
deriving
( GHC.Show.Show,
GHC.Classes.Eq
)
instance Data.Aeson.Types.ToJSON.ToJSON PostSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions' where
toJSON obj = Data.Aeson.Types.Internal.object ("acss_debit" Data.Aeson.Types.ToJSON..= postSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit obj : "card" Data.Aeson.Types.ToJSON..= postSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card obj : "sepa_debit" Data.Aeson.Types.ToJSON..= postSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'SepaDebit obj : GHC.Base.mempty)
toEncoding obj = Data.Aeson.Encoding.Internal.pairs (("acss_debit" Data.Aeson.Types.ToJSON..= postSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit obj) GHC.Base.<> (("card" Data.Aeson.Types.ToJSON..= postSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card obj) GHC.Base.<> ("sepa_debit" Data.Aeson.Types.ToJSON..= postSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'SepaDebit obj)))
instance Data.Aeson.Types.FromJSON.FromJSON PostSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions' where
parseJSON = Data.Aeson.Types.FromJSON.withObject "PostSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'" (\obj -> ((GHC.Base.pure PostSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "acss_debit")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "card")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "sepa_debit"))
-- | Create a new 'PostSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'' with all required fields.
mkPostSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions' :: PostSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'
mkPostSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions' =
PostSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'
{ postSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit = GHC.Maybe.Nothing,
postSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card = GHC.Maybe.Nothing,
postSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'SepaDebit = GHC.Maybe.Nothing
}
-- | Defines the object schema located at @paths.\/v1\/setup_intents\/{intent}\/confirm.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.payment_method_options.properties.acss_debit@ in the specification.
data PostSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit' = PostSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'
{ -- | currency
postSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'Currency :: (GHC.Maybe.Maybe PostSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'Currency'),
-- | mandate_options
postSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'MandateOptions :: (GHC.Maybe.Maybe PostSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'MandateOptions'),
-- | verification_method
postSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'VerificationMethod :: (GHC.Maybe.Maybe PostSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'VerificationMethod')
}
deriving
( GHC.Show.Show,
GHC.Classes.Eq
)
instance Data.Aeson.Types.ToJSON.ToJSON PostSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit' where
toJSON obj = Data.Aeson.Types.Internal.object ("currency" Data.Aeson.Types.ToJSON..= postSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'Currency obj : "mandate_options" Data.Aeson.Types.ToJSON..= postSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'MandateOptions obj : "verification_method" Data.Aeson.Types.ToJSON..= postSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'VerificationMethod obj : GHC.Base.mempty)
toEncoding obj = Data.Aeson.Encoding.Internal.pairs (("currency" Data.Aeson.Types.ToJSON..= postSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'Currency obj) GHC.Base.<> (("mandate_options" Data.Aeson.Types.ToJSON..= postSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'MandateOptions obj) GHC.Base.<> ("verification_method" Data.Aeson.Types.ToJSON..= postSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'VerificationMethod obj)))
instance Data.Aeson.Types.FromJSON.FromJSON PostSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit' where
parseJSON = Data.Aeson.Types.FromJSON.withObject "PostSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'" (\obj -> ((GHC.Base.pure PostSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "currency")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "mandate_options")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "verification_method"))
-- | Create a new 'PostSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'' with all required fields.
mkPostSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit' :: PostSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'
mkPostSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit' =
PostSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'
{ postSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'Currency = GHC.Maybe.Nothing,
postSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'MandateOptions = GHC.Maybe.Nothing,
postSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'VerificationMethod = GHC.Maybe.Nothing
}
-- | Defines the enum schema located at @paths.\/v1\/setup_intents\/{intent}\/confirm.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.payment_method_options.properties.acss_debit.properties.currency@ in the specification.
data PostSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'Currency'
= -- | This case is used if the value encountered during decoding does not match any of the provided cases in the specification.
PostSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'Currency'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.
PostSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'Currency'Typed Data.Text.Internal.Text
| -- | Represents the JSON value @"cad"@
PostSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'Currency'EnumCad
| -- | Represents the JSON value @"usd"@
PostSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'Currency'EnumUsd
deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.Types.ToJSON.ToJSON PostSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'Currency' where
toJSON (PostSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'Currency'Other val) = val
toJSON (PostSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'Currency'Typed val) = Data.Aeson.Types.ToJSON.toJSON val
toJSON (PostSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'Currency'EnumCad) = "cad"
toJSON (PostSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'Currency'EnumUsd) = "usd"
instance Data.Aeson.Types.FromJSON.FromJSON PostSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'Currency' where
parseJSON val =
GHC.Base.pure
( if
| val GHC.Classes.== "cad" -> PostSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'Currency'EnumCad
| val GHC.Classes.== "usd" -> PostSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'Currency'EnumUsd
| GHC.Base.otherwise -> PostSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'Currency'Other val
)
-- | Defines the object schema located at @paths.\/v1\/setup_intents\/{intent}\/confirm.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.payment_method_options.properties.acss_debit.properties.mandate_options@ in the specification.
data PostSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'MandateOptions' = PostSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'MandateOptions'
{ -- | custom_mandate_url
postSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'MandateOptions'CustomMandateUrl :: (GHC.Maybe.Maybe PostSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'MandateOptions'CustomMandateUrl'Variants),
-- | interval_description
--
-- Constraints:
--
-- * Maximum length of 500
postSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'MandateOptions'IntervalDescription :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
-- | payment_schedule
postSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'MandateOptions'PaymentSchedule :: (GHC.Maybe.Maybe PostSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'MandateOptions'PaymentSchedule'),
-- | transaction_type
postSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'MandateOptions'TransactionType :: (GHC.Maybe.Maybe PostSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'MandateOptions'TransactionType')
}
deriving
( GHC.Show.Show,
GHC.Classes.Eq
)
instance Data.Aeson.Types.ToJSON.ToJSON PostSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'MandateOptions' where
toJSON obj = Data.Aeson.Types.Internal.object ("custom_mandate_url" Data.Aeson.Types.ToJSON..= postSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'MandateOptions'CustomMandateUrl obj : "interval_description" Data.Aeson.Types.ToJSON..= postSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'MandateOptions'IntervalDescription obj : "payment_schedule" Data.Aeson.Types.ToJSON..= postSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'MandateOptions'PaymentSchedule obj : "transaction_type" Data.Aeson.Types.ToJSON..= postSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'MandateOptions'TransactionType obj : GHC.Base.mempty)
toEncoding obj = Data.Aeson.Encoding.Internal.pairs (("custom_mandate_url" Data.Aeson.Types.ToJSON..= postSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'MandateOptions'CustomMandateUrl obj) GHC.Base.<> (("interval_description" Data.Aeson.Types.ToJSON..= postSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'MandateOptions'IntervalDescription obj) GHC.Base.<> (("payment_schedule" Data.Aeson.Types.ToJSON..= postSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'MandateOptions'PaymentSchedule obj) GHC.Base.<> ("transaction_type" Data.Aeson.Types.ToJSON..= postSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'MandateOptions'TransactionType obj))))
instance Data.Aeson.Types.FromJSON.FromJSON PostSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'MandateOptions' where
parseJSON = Data.Aeson.Types.FromJSON.withObject "PostSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'MandateOptions'" (\obj -> (((GHC.Base.pure PostSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'MandateOptions' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "custom_mandate_url")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "interval_description")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "payment_schedule")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "transaction_type"))
-- | Create a new 'PostSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'MandateOptions'' with all required fields.
mkPostSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'MandateOptions' :: PostSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'MandateOptions'
mkPostSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'MandateOptions' =
PostSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'MandateOptions'
{ postSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'MandateOptions'CustomMandateUrl = GHC.Maybe.Nothing,
postSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'MandateOptions'IntervalDescription = GHC.Maybe.Nothing,
postSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'MandateOptions'PaymentSchedule = GHC.Maybe.Nothing,
postSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'MandateOptions'TransactionType = GHC.Maybe.Nothing
}
-- | Defines the oneOf schema located at @paths.\/v1\/setup_intents\/{intent}\/confirm.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.payment_method_options.properties.acss_debit.properties.mandate_options.properties.custom_mandate_url.anyOf@ in the specification.
data PostSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'MandateOptions'CustomMandateUrl'Variants
= -- | Represents the JSON value @""@
PostSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'MandateOptions'CustomMandateUrl'EmptyString
| PostSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'MandateOptions'CustomMandateUrl'Text Data.Text.Internal.Text
deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.Types.ToJSON.ToJSON PostSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'MandateOptions'CustomMandateUrl'Variants where
toJSON (PostSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'MandateOptions'CustomMandateUrl'Text a) = Data.Aeson.Types.ToJSON.toJSON a
toJSON (PostSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'MandateOptions'CustomMandateUrl'EmptyString) = ""
instance Data.Aeson.Types.FromJSON.FromJSON PostSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'MandateOptions'CustomMandateUrl'Variants where
parseJSON val =
if
| val GHC.Classes.== "" -> GHC.Base.pure PostSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'MandateOptions'CustomMandateUrl'EmptyString
| GHC.Base.otherwise -> case (PostSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'MandateOptions'CustomMandateUrl'Text Data.Functor.<$> Data.Aeson.Types.FromJSON.fromJSON val) GHC.Base.<|> Data.Aeson.Types.Internal.Error "No variant matched" of
Data.Aeson.Types.Internal.Success a -> GHC.Base.pure a
Data.Aeson.Types.Internal.Error a -> Control.Monad.Fail.fail a
-- | Defines the enum schema located at @paths.\/v1\/setup_intents\/{intent}\/confirm.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.payment_method_options.properties.acss_debit.properties.mandate_options.properties.payment_schedule@ in the specification.
data PostSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'MandateOptions'PaymentSchedule'
= -- | This case is used if the value encountered during decoding does not match any of the provided cases in the specification.
PostSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'MandateOptions'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.
PostSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'MandateOptions'PaymentSchedule'Typed Data.Text.Internal.Text
| -- | Represents the JSON value @"combined"@
PostSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'MandateOptions'PaymentSchedule'EnumCombined
| -- | Represents the JSON value @"interval"@
PostSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'MandateOptions'PaymentSchedule'EnumInterval
| -- | Represents the JSON value @"sporadic"@
PostSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'MandateOptions'PaymentSchedule'EnumSporadic
deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.Types.ToJSON.ToJSON PostSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'MandateOptions'PaymentSchedule' where
toJSON (PostSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'MandateOptions'PaymentSchedule'Other val) = val
toJSON (PostSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'MandateOptions'PaymentSchedule'Typed val) = Data.Aeson.Types.ToJSON.toJSON val
toJSON (PostSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'MandateOptions'PaymentSchedule'EnumCombined) = "combined"
toJSON (PostSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'MandateOptions'PaymentSchedule'EnumInterval) = "interval"
toJSON (PostSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'MandateOptions'PaymentSchedule'EnumSporadic) = "sporadic"
instance Data.Aeson.Types.FromJSON.FromJSON PostSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'MandateOptions'PaymentSchedule' where
parseJSON val =
GHC.Base.pure
( if
| val GHC.Classes.== "combined" -> PostSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'MandateOptions'PaymentSchedule'EnumCombined
| val GHC.Classes.== "interval" -> PostSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'MandateOptions'PaymentSchedule'EnumInterval
| val GHC.Classes.== "sporadic" -> PostSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'MandateOptions'PaymentSchedule'EnumSporadic
| GHC.Base.otherwise -> PostSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'MandateOptions'PaymentSchedule'Other val
)
-- | Defines the enum schema located at @paths.\/v1\/setup_intents\/{intent}\/confirm.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.payment_method_options.properties.acss_debit.properties.mandate_options.properties.transaction_type@ in the specification.
data PostSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'MandateOptions'TransactionType'
= -- | This case is used if the value encountered during decoding does not match any of the provided cases in the specification.
PostSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'MandateOptions'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.
PostSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'MandateOptions'TransactionType'Typed Data.Text.Internal.Text
| -- | Represents the JSON value @"business"@
PostSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'MandateOptions'TransactionType'EnumBusiness
| -- | Represents the JSON value @"personal"@
PostSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'MandateOptions'TransactionType'EnumPersonal
deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.Types.ToJSON.ToJSON PostSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'MandateOptions'TransactionType' where
toJSON (PostSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'MandateOptions'TransactionType'Other val) = val
toJSON (PostSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'MandateOptions'TransactionType'Typed val) = Data.Aeson.Types.ToJSON.toJSON val
toJSON (PostSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'MandateOptions'TransactionType'EnumBusiness) = "business"
toJSON (PostSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'MandateOptions'TransactionType'EnumPersonal) = "personal"
instance Data.Aeson.Types.FromJSON.FromJSON PostSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'MandateOptions'TransactionType' where
parseJSON val =
GHC.Base.pure
( if
| val GHC.Classes.== "business" -> PostSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'MandateOptions'TransactionType'EnumBusiness
| val GHC.Classes.== "personal" -> PostSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'MandateOptions'TransactionType'EnumPersonal
| GHC.Base.otherwise -> PostSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'MandateOptions'TransactionType'Other val
)
-- | Defines the enum schema located at @paths.\/v1\/setup_intents\/{intent}\/confirm.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.payment_method_options.properties.acss_debit.properties.verification_method@ in the specification.
data PostSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'VerificationMethod'
= -- | This case is used if the value encountered during decoding does not match any of the provided cases in the specification.
PostSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'VerificationMethod'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.
PostSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'VerificationMethod'Typed Data.Text.Internal.Text
| -- | Represents the JSON value @"automatic"@
PostSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'VerificationMethod'EnumAutomatic
| -- | Represents the JSON value @"instant"@
PostSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'VerificationMethod'EnumInstant
| -- | Represents the JSON value @"microdeposits"@
PostSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'VerificationMethod'EnumMicrodeposits
deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.Types.ToJSON.ToJSON PostSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'VerificationMethod' where
toJSON (PostSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'VerificationMethod'Other val) = val
toJSON (PostSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'VerificationMethod'Typed val) = Data.Aeson.Types.ToJSON.toJSON val
toJSON (PostSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'VerificationMethod'EnumAutomatic) = "automatic"
toJSON (PostSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'VerificationMethod'EnumInstant) = "instant"
toJSON (PostSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'VerificationMethod'EnumMicrodeposits) = "microdeposits"
instance Data.Aeson.Types.FromJSON.FromJSON PostSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'VerificationMethod' where
parseJSON val =
GHC.Base.pure
( if
| val GHC.Classes.== "automatic" -> PostSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'VerificationMethod'EnumAutomatic
| val GHC.Classes.== "instant" -> PostSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'VerificationMethod'EnumInstant
| val GHC.Classes.== "microdeposits" -> PostSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'VerificationMethod'EnumMicrodeposits
| GHC.Base.otherwise -> PostSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'AcssDebit'VerificationMethod'Other val
)
-- | Defines the object schema located at @paths.\/v1\/setup_intents\/{intent}\/confirm.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.payment_method_options.properties.card@ in the specification.
data PostSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card' = PostSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'
{ -- | request_three_d_secure
--
-- Constraints:
--
-- * Maximum length of 5000
postSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'RequestThreeDSecure :: (GHC.Maybe.Maybe PostSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'RequestThreeDSecure')
}
deriving
( GHC.Show.Show,
GHC.Classes.Eq
)
instance Data.Aeson.Types.ToJSON.ToJSON PostSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card' where
toJSON obj = Data.Aeson.Types.Internal.object ("request_three_d_secure" Data.Aeson.Types.ToJSON..= postSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'RequestThreeDSecure obj : GHC.Base.mempty)
toEncoding obj = Data.Aeson.Encoding.Internal.pairs ("request_three_d_secure" Data.Aeson.Types.ToJSON..= postSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'RequestThreeDSecure obj)
instance Data.Aeson.Types.FromJSON.FromJSON PostSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card' where
parseJSON = Data.Aeson.Types.FromJSON.withObject "PostSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'" (\obj -> GHC.Base.pure PostSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "request_three_d_secure"))
-- | Create a new 'PostSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'' with all required fields.
mkPostSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card' :: PostSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'
mkPostSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card' = PostSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card' {postSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'RequestThreeDSecure = GHC.Maybe.Nothing}
-- | Defines the enum schema located at @paths.\/v1\/setup_intents\/{intent}\/confirm.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.payment_method_options.properties.card.properties.request_three_d_secure@ in the specification.
data PostSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'RequestThreeDSecure'
= -- | This case is used if the value encountered during decoding does not match any of the provided cases in the specification.
PostSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'RequestThreeDSecure'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.
PostSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'RequestThreeDSecure'Typed Data.Text.Internal.Text
| -- | Represents the JSON value @"any"@
PostSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'RequestThreeDSecure'EnumAny
| -- | Represents the JSON value @"automatic"@
PostSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'RequestThreeDSecure'EnumAutomatic
deriving (GHC.Show.Show, GHC.Classes.Eq)
instance Data.Aeson.Types.ToJSON.ToJSON PostSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'RequestThreeDSecure' where
toJSON (PostSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'RequestThreeDSecure'Other val) = val
toJSON (PostSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'RequestThreeDSecure'Typed val) = Data.Aeson.Types.ToJSON.toJSON val
toJSON (PostSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'RequestThreeDSecure'EnumAny) = "any"
toJSON (PostSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'RequestThreeDSecure'EnumAutomatic) = "automatic"
instance Data.Aeson.Types.FromJSON.FromJSON PostSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'RequestThreeDSecure' where
parseJSON val =
GHC.Base.pure
( if
| val GHC.Classes.== "any" -> PostSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'RequestThreeDSecure'EnumAny
| val GHC.Classes.== "automatic" -> PostSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'RequestThreeDSecure'EnumAutomatic
| GHC.Base.otherwise -> PostSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'Card'RequestThreeDSecure'Other val
)
-- | Defines the object schema located at @paths.\/v1\/setup_intents\/{intent}\/confirm.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.payment_method_options.properties.sepa_debit@ in the specification.
data PostSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'SepaDebit' = PostSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'SepaDebit'
{ -- | mandate_options
postSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'SepaDebit'MandateOptions :: (GHC.Maybe.Maybe Data.Aeson.Types.Internal.Object)
}
deriving
( GHC.Show.Show,
GHC.Classes.Eq
)
instance Data.Aeson.Types.ToJSON.ToJSON PostSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'SepaDebit' where
toJSON obj = Data.Aeson.Types.Internal.object ("mandate_options" Data.Aeson.Types.ToJSON..= postSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'SepaDebit'MandateOptions obj : GHC.Base.mempty)
toEncoding obj = Data.Aeson.Encoding.Internal.pairs ("mandate_options" Data.Aeson.Types.ToJSON..= postSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'SepaDebit'MandateOptions obj)
instance Data.Aeson.Types.FromJSON.FromJSON PostSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'SepaDebit' where
parseJSON = Data.Aeson.Types.FromJSON.withObject "PostSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'SepaDebit'" (\obj -> GHC.Base.pure PostSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'SepaDebit' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "mandate_options"))
-- | Create a new 'PostSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'SepaDebit'' with all required fields.
mkPostSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'SepaDebit' :: PostSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'SepaDebit'
mkPostSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'SepaDebit' = PostSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'SepaDebit' {postSetupIntentsIntentConfirmRequestBodyPaymentMethodOptions'SepaDebit'MandateOptions = GHC.Maybe.Nothing}
-- | Represents a response of the operation 'postSetupIntentsIntentConfirm'.
--
-- 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), 'PostSetupIntentsIntentConfirmResponseError' is used.
data PostSetupIntentsIntentConfirmResponse
= -- | Means either no matching case available or a parse error
PostSetupIntentsIntentConfirmResponseError GHC.Base.String
| -- | Successful response.
PostSetupIntentsIntentConfirmResponse200 SetupIntent
| -- | Error response.
PostSetupIntentsIntentConfirmResponseDefault Error
deriving (GHC.Show.Show, GHC.Classes.Eq)