{-# 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 -- \succeeded\<\/code> status.\<\/p> -- -- \

Otherwise, it will transition to the \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)