{-# 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 types generated from the schema SetupIntent
module StripeAPI.Types.SetupIntent where

import qualified Control.Monad.Fail
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.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 GHC.Base
import qualified GHC.Classes
import qualified GHC.Int
import qualified GHC.Show
import qualified GHC.Types
import qualified StripeAPI.Common
import StripeAPI.TypeAlias
import {-# SOURCE #-} StripeAPI.Types.Account
import {-# SOURCE #-} StripeAPI.Types.Address
import {-# SOURCE #-} StripeAPI.Types.ApiErrors
import {-# SOURCE #-} StripeAPI.Types.Application
import {-# SOURCE #-} StripeAPI.Types.BankAccount
import {-# SOURCE #-} StripeAPI.Types.Card
import {-# SOURCE #-} StripeAPI.Types.Customer
import {-# SOURCE #-} StripeAPI.Types.DeletedCustomer
import {-# SOURCE #-} StripeAPI.Types.Mandate
import {-# SOURCE #-} StripeAPI.Types.PaymentIntent
import {-# SOURCE #-} StripeAPI.Types.PaymentMethod
import {-# SOURCE #-} StripeAPI.Types.Recipient
import {-# SOURCE #-} StripeAPI.Types.SetupAttempt
import {-# SOURCE #-} StripeAPI.Types.SetupIntentNextAction
import {-# SOURCE #-} StripeAPI.Types.SetupIntentNextActionRedirectToUrl
import {-# SOURCE #-} StripeAPI.Types.SetupIntentNextActionVerifyWithMicrodeposits
import {-# SOURCE #-} StripeAPI.Types.SetupIntentPaymentMethodOptions
import {-# SOURCE #-} StripeAPI.Types.SetupIntentPaymentMethodOptionsAcssDebit
import {-# SOURCE #-} StripeAPI.Types.SetupIntentPaymentMethodOptionsCard
import {-# SOURCE #-} StripeAPI.Types.SetupIntentPaymentMethodOptionsSepaDebit
import {-# SOURCE #-} StripeAPI.Types.Source
import {-# SOURCE #-} StripeAPI.Types.SourceCodeVerificationFlow
import {-# SOURCE #-} StripeAPI.Types.SourceOrder
import {-# SOURCE #-} StripeAPI.Types.SourceOwner
import {-# SOURCE #-} StripeAPI.Types.SourceReceiverFlow
import {-# SOURCE #-} StripeAPI.Types.SourceRedirectFlow
import {-# SOURCE #-} StripeAPI.Types.SourceTypeAchCreditTransfer
import {-# SOURCE #-} StripeAPI.Types.SourceTypeAchDebit
import {-# SOURCE #-} StripeAPI.Types.SourceTypeAcssDebit
import {-# SOURCE #-} StripeAPI.Types.SourceTypeAlipay
import {-# SOURCE #-} StripeAPI.Types.SourceTypeAuBecsDebit
import {-# SOURCE #-} StripeAPI.Types.SourceTypeBancontact
import {-# SOURCE #-} StripeAPI.Types.SourceTypeCard
import {-# SOURCE #-} StripeAPI.Types.SourceTypeCardPresent
import {-# SOURCE #-} StripeAPI.Types.SourceTypeEps
import {-# SOURCE #-} StripeAPI.Types.SourceTypeGiropay
import {-# SOURCE #-} StripeAPI.Types.SourceTypeIdeal
import {-# SOURCE #-} StripeAPI.Types.SourceTypeKlarna
import {-# SOURCE #-} StripeAPI.Types.SourceTypeMultibanco
import {-# SOURCE #-} StripeAPI.Types.SourceTypeP24
import {-# SOURCE #-} StripeAPI.Types.SourceTypeSepaDebit
import {-# SOURCE #-} StripeAPI.Types.SourceTypeSofort
import {-# SOURCE #-} StripeAPI.Types.SourceTypeThreeDSecure
import {-# SOURCE #-} StripeAPI.Types.SourceTypeWechat
import qualified Prelude as GHC.Integer.Type
import qualified Prelude as GHC.Maybe

-- | Defines the object schema located at @components.schemas.setup_intent@ in the specification.
--
-- A SetupIntent guides you through the process of setting up and saving a customer\'s payment credentials for future payments.
-- For example, you could use a SetupIntent to set up and save your customer\'s card without immediately collecting a payment.
-- Later, you can use [PaymentIntents](https:\/\/stripe.com\/docs\/api\#payment_intents) to drive the payment flow.
--
-- Create a SetupIntent as soon as you\'re ready to collect your customer\'s payment credentials.
-- Do not maintain long-lived, unconfirmed SetupIntents as they may no longer be valid.
-- The SetupIntent then transitions through multiple [statuses](https:\/\/stripe.com\/docs\/payments\/intents\#intent-statuses) as it guides
-- you through the setup process.
--
-- Successful SetupIntents result in payment credentials that are optimized for future payments.
-- For example, cardholders in [certain regions](\/guides\/strong-customer-authentication) may need to be run through
-- [Strong Customer Authentication](https:\/\/stripe.com\/docs\/strong-customer-authentication) at the time of payment method collection
-- in order to streamline later [off-session payments](https:\/\/stripe.com\/docs\/payments\/setup-intents).
-- If the SetupIntent is used with a [Customer](https:\/\/stripe.com\/docs\/api\#setup_intent_object-customer), upon success,
-- it will automatically attach the resulting payment method to that Customer.
-- We recommend using SetupIntents or [setup_future_usage](https:\/\/stripe.com\/docs\/api\#payment_intent_object-setup_future_usage) on
-- PaymentIntents to save payment methods in order to prevent saving invalid or unoptimized payment methods.
--
-- By using SetupIntents, you ensure that your customers experience the minimum set of required friction,
-- even as regulations change over time.
--
-- Related guide: [Setup Intents API](https:\/\/stripe.com\/docs\/payments\/setup-intents).
data SetupIntent = SetupIntent
  { -- | application: ID of the Connect application that created the SetupIntent.
    SetupIntent -> Maybe SetupIntentApplication'Variants
setupIntentApplication :: (GHC.Maybe.Maybe SetupIntentApplication'Variants),
    -- | cancellation_reason: Reason for cancellation of this SetupIntent, one of \`abandoned\`, \`requested_by_customer\`, or \`duplicate\`.
    SetupIntent -> Maybe SetupIntentCancellationReason'
setupIntentCancellationReason :: (GHC.Maybe.Maybe SetupIntentCancellationReason'),
    -- | client_secret: The client secret of this SetupIntent. Used for client-side retrieval using a publishable key.
    --
    -- The client secret can be used to complete payment setup from your frontend. It should not be stored, logged, embedded in URLs, or exposed to anyone other than the customer. Make sure that you have TLS enabled on any page that includes the client secret.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    SetupIntent -> Maybe Text
setupIntentClientSecret :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | created: Time at which the object was created. Measured in seconds since the Unix epoch.
    SetupIntent -> Int
setupIntentCreated :: GHC.Types.Int,
    -- | customer: ID of the Customer this SetupIntent belongs to, if one exists.
    --
    -- If present, the SetupIntent\'s payment method will be attached to the Customer on successful setup. Payment methods attached to other Customers cannot be used with this SetupIntent.
    SetupIntent -> Maybe SetupIntentCustomer'Variants
setupIntentCustomer :: (GHC.Maybe.Maybe SetupIntentCustomer'Variants),
    -- | description: An arbitrary string attached to the object. Often useful for displaying to users.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    SetupIntent -> Maybe Text
setupIntentDescription :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | id: Unique identifier for the object.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    SetupIntent -> Text
setupIntentId :: Data.Text.Internal.Text,
    -- | last_setup_error: The error encountered in the previous SetupIntent confirmation.
    SetupIntent -> Maybe SetupIntentLastSetupError'
setupIntentLastSetupError :: (GHC.Maybe.Maybe SetupIntentLastSetupError'),
    -- | latest_attempt: The most recent SetupAttempt for this SetupIntent.
    SetupIntent -> Maybe SetupIntentLatestAttempt'Variants
setupIntentLatestAttempt :: (GHC.Maybe.Maybe SetupIntentLatestAttempt'Variants),
    -- | livemode: Has the value \`true\` if the object exists in live mode or the value \`false\` if the object exists in test mode.
    SetupIntent -> Bool
setupIntentLivemode :: GHC.Types.Bool,
    -- | mandate: ID of the multi use Mandate generated by the SetupIntent.
    SetupIntent -> Maybe SetupIntentMandate'Variants
setupIntentMandate :: (GHC.Maybe.Maybe SetupIntentMandate'Variants),
    -- | metadata: Set of [key-value pairs](https:\/\/stripe.com\/docs\/api\/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
    SetupIntent -> Maybe Object
setupIntentMetadata :: (GHC.Maybe.Maybe Data.Aeson.Types.Internal.Object),
    -- | next_action: If present, this property tells you what actions you need to take in order for your customer to continue payment setup.
    SetupIntent -> Maybe SetupIntentNextAction'
setupIntentNextAction :: (GHC.Maybe.Maybe SetupIntentNextAction'),
    -- | on_behalf_of: The account (if any) for which the setup is intended.
    SetupIntent -> Maybe SetupIntentOnBehalfOf'Variants
setupIntentOnBehalfOf :: (GHC.Maybe.Maybe SetupIntentOnBehalfOf'Variants),
    -- | payment_method: ID of the payment method used with this SetupIntent.
    SetupIntent -> Maybe SetupIntentPaymentMethod'Variants
setupIntentPaymentMethod :: (GHC.Maybe.Maybe SetupIntentPaymentMethod'Variants),
    -- | payment_method_options: Payment-method-specific configuration for this SetupIntent.
    SetupIntent -> Maybe SetupIntentPaymentMethodOptions'
setupIntentPaymentMethodOptions :: (GHC.Maybe.Maybe SetupIntentPaymentMethodOptions'),
    -- | payment_method_types: The list of payment method types (e.g. card) that this SetupIntent is allowed to set up.
    SetupIntent -> [Text]
setupIntentPaymentMethodTypes :: ([Data.Text.Internal.Text]),
    -- | single_use_mandate: ID of the single_use Mandate generated by the SetupIntent.
    SetupIntent -> Maybe SetupIntentSingleUseMandate'Variants
setupIntentSingleUseMandate :: (GHC.Maybe.Maybe SetupIntentSingleUseMandate'Variants),
    -- | status: [Status](https:\/\/stripe.com\/docs\/payments\/intents\#intent-statuses) of this SetupIntent, one of \`requires_payment_method\`, \`requires_confirmation\`, \`requires_action\`, \`processing\`, \`canceled\`, or \`succeeded\`.
    SetupIntent -> SetupIntentStatus'
setupIntentStatus :: SetupIntentStatus',
    -- | usage: Indicates how the payment method is intended to be used in the future.
    --
    -- Use \`on_session\` if you intend to only reuse the payment method when the customer is in your checkout flow. Use \`off_session\` if your customer may or may not be in your checkout flow. If not provided, this value defaults to \`off_session\`.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    SetupIntent -> Text
setupIntentUsage :: Data.Text.Internal.Text
  }
  deriving
    ( Int -> SetupIntent -> ShowS
[SetupIntent] -> ShowS
SetupIntent -> String
(Int -> SetupIntent -> ShowS)
-> (SetupIntent -> String)
-> ([SetupIntent] -> ShowS)
-> Show SetupIntent
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [SetupIntent] -> ShowS
$cshowList :: [SetupIntent] -> ShowS
show :: SetupIntent -> String
$cshow :: SetupIntent -> String
showsPrec :: Int -> SetupIntent -> ShowS
$cshowsPrec :: Int -> SetupIntent -> ShowS
GHC.Show.Show,
      SetupIntent -> SetupIntent -> Bool
(SetupIntent -> SetupIntent -> Bool)
-> (SetupIntent -> SetupIntent -> Bool) -> Eq SetupIntent
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: SetupIntent -> SetupIntent -> Bool
$c/= :: SetupIntent -> SetupIntent -> Bool
== :: SetupIntent -> SetupIntent -> Bool
$c== :: SetupIntent -> SetupIntent -> Bool
GHC.Classes.Eq
    )

instance Data.Aeson.Types.ToJSON.ToJSON SetupIntent where
  toJSON :: SetupIntent -> Value
toJSON SetupIntent
obj = [Pair] -> Value
Data.Aeson.Types.Internal.object (Text
"application" Text -> Maybe SetupIntentApplication'Variants -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntent -> Maybe SetupIntentApplication'Variants
setupIntentApplication SetupIntent
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"cancellation_reason" Text -> Maybe SetupIntentCancellationReason' -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntent -> Maybe SetupIntentCancellationReason'
setupIntentCancellationReason SetupIntent
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"client_secret" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntent -> Maybe Text
setupIntentClientSecret SetupIntent
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"created" Text -> Int -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntent -> Int
setupIntentCreated SetupIntent
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"customer" Text -> Maybe SetupIntentCustomer'Variants -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntent -> Maybe SetupIntentCustomer'Variants
setupIntentCustomer SetupIntent
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"description" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntent -> Maybe Text
setupIntentDescription SetupIntent
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"id" Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntent -> Text
setupIntentId SetupIntent
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"last_setup_error" Text -> Maybe SetupIntentLastSetupError' -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntent -> Maybe SetupIntentLastSetupError'
setupIntentLastSetupError SetupIntent
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"latest_attempt" Text -> Maybe SetupIntentLatestAttempt'Variants -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntent -> Maybe SetupIntentLatestAttempt'Variants
setupIntentLatestAttempt SetupIntent
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"livemode" Text -> Bool -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntent -> Bool
setupIntentLivemode SetupIntent
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"mandate" Text -> Maybe SetupIntentMandate'Variants -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntent -> Maybe SetupIntentMandate'Variants
setupIntentMandate SetupIntent
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"metadata" Text -> Maybe Object -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntent -> Maybe Object
setupIntentMetadata SetupIntent
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"next_action" Text -> Maybe SetupIntentNextAction' -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntent -> Maybe SetupIntentNextAction'
setupIntentNextAction SetupIntent
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"on_behalf_of" Text -> Maybe SetupIntentOnBehalfOf'Variants -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntent -> Maybe SetupIntentOnBehalfOf'Variants
setupIntentOnBehalfOf SetupIntent
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"payment_method" Text -> Maybe SetupIntentPaymentMethod'Variants -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntent -> Maybe SetupIntentPaymentMethod'Variants
setupIntentPaymentMethod SetupIntent
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"payment_method_options" Text -> Maybe SetupIntentPaymentMethodOptions' -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntent -> Maybe SetupIntentPaymentMethodOptions'
setupIntentPaymentMethodOptions SetupIntent
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"payment_method_types" Text -> [Text] -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntent -> [Text]
setupIntentPaymentMethodTypes SetupIntent
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"single_use_mandate" Text -> Maybe SetupIntentSingleUseMandate'Variants -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntent -> Maybe SetupIntentSingleUseMandate'Variants
setupIntentSingleUseMandate SetupIntent
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"status" Text -> SetupIntentStatus' -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntent -> SetupIntentStatus'
setupIntentStatus SetupIntent
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"usage" Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntent -> Text
setupIntentUsage SetupIntent
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"object" Text -> Value -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Text -> Value
Data.Aeson.Types.Internal.String Text
"setup_intent" Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: SetupIntent -> Encoding
toEncoding SetupIntent
obj = Series -> Encoding
Data.Aeson.Encoding.Internal.pairs ((Text
"application" Text -> Maybe SetupIntentApplication'Variants -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntent -> Maybe SetupIntentApplication'Variants
setupIntentApplication SetupIntent
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"cancellation_reason" Text -> Maybe SetupIntentCancellationReason' -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntent -> Maybe SetupIntentCancellationReason'
setupIntentCancellationReason SetupIntent
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"client_secret" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntent -> Maybe Text
setupIntentClientSecret SetupIntent
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"created" Text -> Int -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntent -> Int
setupIntentCreated SetupIntent
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"customer" Text -> Maybe SetupIntentCustomer'Variants -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntent -> Maybe SetupIntentCustomer'Variants
setupIntentCustomer SetupIntent
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"description" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntent -> Maybe Text
setupIntentDescription SetupIntent
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"id" Text -> Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntent -> Text
setupIntentId SetupIntent
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"last_setup_error" Text -> Maybe SetupIntentLastSetupError' -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntent -> Maybe SetupIntentLastSetupError'
setupIntentLastSetupError SetupIntent
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"latest_attempt" Text -> Maybe SetupIntentLatestAttempt'Variants -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntent -> Maybe SetupIntentLatestAttempt'Variants
setupIntentLatestAttempt SetupIntent
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"livemode" Text -> Bool -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntent -> Bool
setupIntentLivemode SetupIntent
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"mandate" Text -> Maybe SetupIntentMandate'Variants -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntent -> Maybe SetupIntentMandate'Variants
setupIntentMandate SetupIntent
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"metadata" Text -> Maybe Object -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntent -> Maybe Object
setupIntentMetadata SetupIntent
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"next_action" Text -> Maybe SetupIntentNextAction' -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntent -> Maybe SetupIntentNextAction'
setupIntentNextAction SetupIntent
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"on_behalf_of" Text -> Maybe SetupIntentOnBehalfOf'Variants -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntent -> Maybe SetupIntentOnBehalfOf'Variants
setupIntentOnBehalfOf SetupIntent
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"payment_method" Text -> Maybe SetupIntentPaymentMethod'Variants -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntent -> Maybe SetupIntentPaymentMethod'Variants
setupIntentPaymentMethod SetupIntent
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"payment_method_options" Text -> Maybe SetupIntentPaymentMethodOptions' -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntent -> Maybe SetupIntentPaymentMethodOptions'
setupIntentPaymentMethodOptions SetupIntent
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"payment_method_types" Text -> [Text] -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntent -> [Text]
setupIntentPaymentMethodTypes SetupIntent
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"single_use_mandate" Text -> Maybe SetupIntentSingleUseMandate'Variants -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntent -> Maybe SetupIntentSingleUseMandate'Variants
setupIntentSingleUseMandate SetupIntent
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"status" Text -> SetupIntentStatus' -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntent -> SetupIntentStatus'
setupIntentStatus SetupIntent
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"usage" Text -> Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntent -> Text
setupIntentUsage SetupIntent
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> (Text
"object" Text -> Value -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Text -> Value
Data.Aeson.Types.Internal.String Text
"setup_intent")))))))))))))))))))))

instance Data.Aeson.Types.FromJSON.FromJSON SetupIntent where
  parseJSON :: Value -> Parser SetupIntent
parseJSON = String
-> (Object -> Parser SetupIntent) -> Value -> Parser SetupIntent
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.Aeson.Types.FromJSON.withObject String
"SetupIntent" (\Object
obj -> ((((((((((((((((((((Maybe SetupIntentApplication'Variants
 -> Maybe SetupIntentCancellationReason'
 -> Maybe Text
 -> Int
 -> Maybe SetupIntentCustomer'Variants
 -> Maybe Text
 -> Text
 -> Maybe SetupIntentLastSetupError'
 -> Maybe SetupIntentLatestAttempt'Variants
 -> Bool
 -> Maybe SetupIntentMandate'Variants
 -> Maybe Object
 -> Maybe SetupIntentNextAction'
 -> Maybe SetupIntentOnBehalfOf'Variants
 -> Maybe SetupIntentPaymentMethod'Variants
 -> Maybe SetupIntentPaymentMethodOptions'
 -> [Text]
 -> Maybe SetupIntentSingleUseMandate'Variants
 -> SetupIntentStatus'
 -> Text
 -> SetupIntent)
-> Parser
     (Maybe SetupIntentApplication'Variants
      -> Maybe SetupIntentCancellationReason'
      -> Maybe Text
      -> Int
      -> Maybe SetupIntentCustomer'Variants
      -> Maybe Text
      -> Text
      -> Maybe SetupIntentLastSetupError'
      -> Maybe SetupIntentLatestAttempt'Variants
      -> Bool
      -> Maybe SetupIntentMandate'Variants
      -> Maybe Object
      -> Maybe SetupIntentNextAction'
      -> Maybe SetupIntentOnBehalfOf'Variants
      -> Maybe SetupIntentPaymentMethod'Variants
      -> Maybe SetupIntentPaymentMethodOptions'
      -> [Text]
      -> Maybe SetupIntentSingleUseMandate'Variants
      -> SetupIntentStatus'
      -> Text
      -> SetupIntent)
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure Maybe SetupIntentApplication'Variants
-> Maybe SetupIntentCancellationReason'
-> Maybe Text
-> Int
-> Maybe SetupIntentCustomer'Variants
-> Maybe Text
-> Text
-> Maybe SetupIntentLastSetupError'
-> Maybe SetupIntentLatestAttempt'Variants
-> Bool
-> Maybe SetupIntentMandate'Variants
-> Maybe Object
-> Maybe SetupIntentNextAction'
-> Maybe SetupIntentOnBehalfOf'Variants
-> Maybe SetupIntentPaymentMethod'Variants
-> Maybe SetupIntentPaymentMethodOptions'
-> [Text]
-> Maybe SetupIntentSingleUseMandate'Variants
-> SetupIntentStatus'
-> Text
-> SetupIntent
SetupIntent Parser
  (Maybe SetupIntentApplication'Variants
   -> Maybe SetupIntentCancellationReason'
   -> Maybe Text
   -> Int
   -> Maybe SetupIntentCustomer'Variants
   -> Maybe Text
   -> Text
   -> Maybe SetupIntentLastSetupError'
   -> Maybe SetupIntentLatestAttempt'Variants
   -> Bool
   -> Maybe SetupIntentMandate'Variants
   -> Maybe Object
   -> Maybe SetupIntentNextAction'
   -> Maybe SetupIntentOnBehalfOf'Variants
   -> Maybe SetupIntentPaymentMethod'Variants
   -> Maybe SetupIntentPaymentMethodOptions'
   -> [Text]
   -> Maybe SetupIntentSingleUseMandate'Variants
   -> SetupIntentStatus'
   -> Text
   -> SetupIntent)
-> Parser (Maybe SetupIntentApplication'Variants)
-> Parser
     (Maybe SetupIntentCancellationReason'
      -> Maybe Text
      -> Int
      -> Maybe SetupIntentCustomer'Variants
      -> Maybe Text
      -> Text
      -> Maybe SetupIntentLastSetupError'
      -> Maybe SetupIntentLatestAttempt'Variants
      -> Bool
      -> Maybe SetupIntentMandate'Variants
      -> Maybe Object
      -> Maybe SetupIntentNextAction'
      -> Maybe SetupIntentOnBehalfOf'Variants
      -> Maybe SetupIntentPaymentMethod'Variants
      -> Maybe SetupIntentPaymentMethodOptions'
      -> [Text]
      -> Maybe SetupIntentSingleUseMandate'Variants
      -> SetupIntentStatus'
      -> Text
      -> SetupIntent)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe SetupIntentApplication'Variants)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"application")) Parser
  (Maybe SetupIntentCancellationReason'
   -> Maybe Text
   -> Int
   -> Maybe SetupIntentCustomer'Variants
   -> Maybe Text
   -> Text
   -> Maybe SetupIntentLastSetupError'
   -> Maybe SetupIntentLatestAttempt'Variants
   -> Bool
   -> Maybe SetupIntentMandate'Variants
   -> Maybe Object
   -> Maybe SetupIntentNextAction'
   -> Maybe SetupIntentOnBehalfOf'Variants
   -> Maybe SetupIntentPaymentMethod'Variants
   -> Maybe SetupIntentPaymentMethodOptions'
   -> [Text]
   -> Maybe SetupIntentSingleUseMandate'Variants
   -> SetupIntentStatus'
   -> Text
   -> SetupIntent)
-> Parser (Maybe SetupIntentCancellationReason')
-> Parser
     (Maybe Text
      -> Int
      -> Maybe SetupIntentCustomer'Variants
      -> Maybe Text
      -> Text
      -> Maybe SetupIntentLastSetupError'
      -> Maybe SetupIntentLatestAttempt'Variants
      -> Bool
      -> Maybe SetupIntentMandate'Variants
      -> Maybe Object
      -> Maybe SetupIntentNextAction'
      -> Maybe SetupIntentOnBehalfOf'Variants
      -> Maybe SetupIntentPaymentMethod'Variants
      -> Maybe SetupIntentPaymentMethodOptions'
      -> [Text]
      -> Maybe SetupIntentSingleUseMandate'Variants
      -> SetupIntentStatus'
      -> Text
      -> SetupIntent)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe SetupIntentCancellationReason')
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"cancellation_reason")) Parser
  (Maybe Text
   -> Int
   -> Maybe SetupIntentCustomer'Variants
   -> Maybe Text
   -> Text
   -> Maybe SetupIntentLastSetupError'
   -> Maybe SetupIntentLatestAttempt'Variants
   -> Bool
   -> Maybe SetupIntentMandate'Variants
   -> Maybe Object
   -> Maybe SetupIntentNextAction'
   -> Maybe SetupIntentOnBehalfOf'Variants
   -> Maybe SetupIntentPaymentMethod'Variants
   -> Maybe SetupIntentPaymentMethodOptions'
   -> [Text]
   -> Maybe SetupIntentSingleUseMandate'Variants
   -> SetupIntentStatus'
   -> Text
   -> SetupIntent)
-> Parser (Maybe Text)
-> Parser
     (Int
      -> Maybe SetupIntentCustomer'Variants
      -> Maybe Text
      -> Text
      -> Maybe SetupIntentLastSetupError'
      -> Maybe SetupIntentLatestAttempt'Variants
      -> Bool
      -> Maybe SetupIntentMandate'Variants
      -> Maybe Object
      -> Maybe SetupIntentNextAction'
      -> Maybe SetupIntentOnBehalfOf'Variants
      -> Maybe SetupIntentPaymentMethod'Variants
      -> Maybe SetupIntentPaymentMethodOptions'
      -> [Text]
      -> Maybe SetupIntentSingleUseMandate'Variants
      -> SetupIntentStatus'
      -> Text
      -> SetupIntent)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"client_secret")) Parser
  (Int
   -> Maybe SetupIntentCustomer'Variants
   -> Maybe Text
   -> Text
   -> Maybe SetupIntentLastSetupError'
   -> Maybe SetupIntentLatestAttempt'Variants
   -> Bool
   -> Maybe SetupIntentMandate'Variants
   -> Maybe Object
   -> Maybe SetupIntentNextAction'
   -> Maybe SetupIntentOnBehalfOf'Variants
   -> Maybe SetupIntentPaymentMethod'Variants
   -> Maybe SetupIntentPaymentMethodOptions'
   -> [Text]
   -> Maybe SetupIntentSingleUseMandate'Variants
   -> SetupIntentStatus'
   -> Text
   -> SetupIntent)
-> Parser Int
-> Parser
     (Maybe SetupIntentCustomer'Variants
      -> Maybe Text
      -> Text
      -> Maybe SetupIntentLastSetupError'
      -> Maybe SetupIntentLatestAttempt'Variants
      -> Bool
      -> Maybe SetupIntentMandate'Variants
      -> Maybe Object
      -> Maybe SetupIntentNextAction'
      -> Maybe SetupIntentOnBehalfOf'Variants
      -> Maybe SetupIntentPaymentMethod'Variants
      -> Maybe SetupIntentPaymentMethodOptions'
      -> [Text]
      -> Maybe SetupIntentSingleUseMandate'Variants
      -> SetupIntentStatus'
      -> Text
      -> SetupIntent)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser Int
forall a. FromJSON a => Object -> Text -> Parser a
Data.Aeson.Types.FromJSON..: Text
"created")) Parser
  (Maybe SetupIntentCustomer'Variants
   -> Maybe Text
   -> Text
   -> Maybe SetupIntentLastSetupError'
   -> Maybe SetupIntentLatestAttempt'Variants
   -> Bool
   -> Maybe SetupIntentMandate'Variants
   -> Maybe Object
   -> Maybe SetupIntentNextAction'
   -> Maybe SetupIntentOnBehalfOf'Variants
   -> Maybe SetupIntentPaymentMethod'Variants
   -> Maybe SetupIntentPaymentMethodOptions'
   -> [Text]
   -> Maybe SetupIntentSingleUseMandate'Variants
   -> SetupIntentStatus'
   -> Text
   -> SetupIntent)
-> Parser (Maybe SetupIntentCustomer'Variants)
-> Parser
     (Maybe Text
      -> Text
      -> Maybe SetupIntentLastSetupError'
      -> Maybe SetupIntentLatestAttempt'Variants
      -> Bool
      -> Maybe SetupIntentMandate'Variants
      -> Maybe Object
      -> Maybe SetupIntentNextAction'
      -> Maybe SetupIntentOnBehalfOf'Variants
      -> Maybe SetupIntentPaymentMethod'Variants
      -> Maybe SetupIntentPaymentMethodOptions'
      -> [Text]
      -> Maybe SetupIntentSingleUseMandate'Variants
      -> SetupIntentStatus'
      -> Text
      -> SetupIntent)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe SetupIntentCustomer'Variants)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"customer")) Parser
  (Maybe Text
   -> Text
   -> Maybe SetupIntentLastSetupError'
   -> Maybe SetupIntentLatestAttempt'Variants
   -> Bool
   -> Maybe SetupIntentMandate'Variants
   -> Maybe Object
   -> Maybe SetupIntentNextAction'
   -> Maybe SetupIntentOnBehalfOf'Variants
   -> Maybe SetupIntentPaymentMethod'Variants
   -> Maybe SetupIntentPaymentMethodOptions'
   -> [Text]
   -> Maybe SetupIntentSingleUseMandate'Variants
   -> SetupIntentStatus'
   -> Text
   -> SetupIntent)
-> Parser (Maybe Text)
-> Parser
     (Text
      -> Maybe SetupIntentLastSetupError'
      -> Maybe SetupIntentLatestAttempt'Variants
      -> Bool
      -> Maybe SetupIntentMandate'Variants
      -> Maybe Object
      -> Maybe SetupIntentNextAction'
      -> Maybe SetupIntentOnBehalfOf'Variants
      -> Maybe SetupIntentPaymentMethod'Variants
      -> Maybe SetupIntentPaymentMethodOptions'
      -> [Text]
      -> Maybe SetupIntentSingleUseMandate'Variants
      -> SetupIntentStatus'
      -> Text
      -> SetupIntent)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"description")) Parser
  (Text
   -> Maybe SetupIntentLastSetupError'
   -> Maybe SetupIntentLatestAttempt'Variants
   -> Bool
   -> Maybe SetupIntentMandate'Variants
   -> Maybe Object
   -> Maybe SetupIntentNextAction'
   -> Maybe SetupIntentOnBehalfOf'Variants
   -> Maybe SetupIntentPaymentMethod'Variants
   -> Maybe SetupIntentPaymentMethodOptions'
   -> [Text]
   -> Maybe SetupIntentSingleUseMandate'Variants
   -> SetupIntentStatus'
   -> Text
   -> SetupIntent)
-> Parser Text
-> Parser
     (Maybe SetupIntentLastSetupError'
      -> Maybe SetupIntentLatestAttempt'Variants
      -> Bool
      -> Maybe SetupIntentMandate'Variants
      -> Maybe Object
      -> Maybe SetupIntentNextAction'
      -> Maybe SetupIntentOnBehalfOf'Variants
      -> Maybe SetupIntentPaymentMethod'Variants
      -> Maybe SetupIntentPaymentMethodOptions'
      -> [Text]
      -> Maybe SetupIntentSingleUseMandate'Variants
      -> SetupIntentStatus'
      -> Text
      -> SetupIntent)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
Data.Aeson.Types.FromJSON..: Text
"id")) Parser
  (Maybe SetupIntentLastSetupError'
   -> Maybe SetupIntentLatestAttempt'Variants
   -> Bool
   -> Maybe SetupIntentMandate'Variants
   -> Maybe Object
   -> Maybe SetupIntentNextAction'
   -> Maybe SetupIntentOnBehalfOf'Variants
   -> Maybe SetupIntentPaymentMethod'Variants
   -> Maybe SetupIntentPaymentMethodOptions'
   -> [Text]
   -> Maybe SetupIntentSingleUseMandate'Variants
   -> SetupIntentStatus'
   -> Text
   -> SetupIntent)
-> Parser (Maybe SetupIntentLastSetupError')
-> Parser
     (Maybe SetupIntentLatestAttempt'Variants
      -> Bool
      -> Maybe SetupIntentMandate'Variants
      -> Maybe Object
      -> Maybe SetupIntentNextAction'
      -> Maybe SetupIntentOnBehalfOf'Variants
      -> Maybe SetupIntentPaymentMethod'Variants
      -> Maybe SetupIntentPaymentMethodOptions'
      -> [Text]
      -> Maybe SetupIntentSingleUseMandate'Variants
      -> SetupIntentStatus'
      -> Text
      -> SetupIntent)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe SetupIntentLastSetupError')
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"last_setup_error")) Parser
  (Maybe SetupIntentLatestAttempt'Variants
   -> Bool
   -> Maybe SetupIntentMandate'Variants
   -> Maybe Object
   -> Maybe SetupIntentNextAction'
   -> Maybe SetupIntentOnBehalfOf'Variants
   -> Maybe SetupIntentPaymentMethod'Variants
   -> Maybe SetupIntentPaymentMethodOptions'
   -> [Text]
   -> Maybe SetupIntentSingleUseMandate'Variants
   -> SetupIntentStatus'
   -> Text
   -> SetupIntent)
-> Parser (Maybe SetupIntentLatestAttempt'Variants)
-> Parser
     (Bool
      -> Maybe SetupIntentMandate'Variants
      -> Maybe Object
      -> Maybe SetupIntentNextAction'
      -> Maybe SetupIntentOnBehalfOf'Variants
      -> Maybe SetupIntentPaymentMethod'Variants
      -> Maybe SetupIntentPaymentMethodOptions'
      -> [Text]
      -> Maybe SetupIntentSingleUseMandate'Variants
      -> SetupIntentStatus'
      -> Text
      -> SetupIntent)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe SetupIntentLatestAttempt'Variants)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"latest_attempt")) Parser
  (Bool
   -> Maybe SetupIntentMandate'Variants
   -> Maybe Object
   -> Maybe SetupIntentNextAction'
   -> Maybe SetupIntentOnBehalfOf'Variants
   -> Maybe SetupIntentPaymentMethod'Variants
   -> Maybe SetupIntentPaymentMethodOptions'
   -> [Text]
   -> Maybe SetupIntentSingleUseMandate'Variants
   -> SetupIntentStatus'
   -> Text
   -> SetupIntent)
-> Parser Bool
-> Parser
     (Maybe SetupIntentMandate'Variants
      -> Maybe Object
      -> Maybe SetupIntentNextAction'
      -> Maybe SetupIntentOnBehalfOf'Variants
      -> Maybe SetupIntentPaymentMethod'Variants
      -> Maybe SetupIntentPaymentMethodOptions'
      -> [Text]
      -> Maybe SetupIntentSingleUseMandate'Variants
      -> SetupIntentStatus'
      -> Text
      -> SetupIntent)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser Bool
forall a. FromJSON a => Object -> Text -> Parser a
Data.Aeson.Types.FromJSON..: Text
"livemode")) Parser
  (Maybe SetupIntentMandate'Variants
   -> Maybe Object
   -> Maybe SetupIntentNextAction'
   -> Maybe SetupIntentOnBehalfOf'Variants
   -> Maybe SetupIntentPaymentMethod'Variants
   -> Maybe SetupIntentPaymentMethodOptions'
   -> [Text]
   -> Maybe SetupIntentSingleUseMandate'Variants
   -> SetupIntentStatus'
   -> Text
   -> SetupIntent)
-> Parser (Maybe SetupIntentMandate'Variants)
-> Parser
     (Maybe Object
      -> Maybe SetupIntentNextAction'
      -> Maybe SetupIntentOnBehalfOf'Variants
      -> Maybe SetupIntentPaymentMethod'Variants
      -> Maybe SetupIntentPaymentMethodOptions'
      -> [Text]
      -> Maybe SetupIntentSingleUseMandate'Variants
      -> SetupIntentStatus'
      -> Text
      -> SetupIntent)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe SetupIntentMandate'Variants)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"mandate")) Parser
  (Maybe Object
   -> Maybe SetupIntentNextAction'
   -> Maybe SetupIntentOnBehalfOf'Variants
   -> Maybe SetupIntentPaymentMethod'Variants
   -> Maybe SetupIntentPaymentMethodOptions'
   -> [Text]
   -> Maybe SetupIntentSingleUseMandate'Variants
   -> SetupIntentStatus'
   -> Text
   -> SetupIntent)
-> Parser (Maybe Object)
-> Parser
     (Maybe SetupIntentNextAction'
      -> Maybe SetupIntentOnBehalfOf'Variants
      -> Maybe SetupIntentPaymentMethod'Variants
      -> Maybe SetupIntentPaymentMethodOptions'
      -> [Text]
      -> Maybe SetupIntentSingleUseMandate'Variants
      -> SetupIntentStatus'
      -> Text
      -> SetupIntent)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Object)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"metadata")) Parser
  (Maybe SetupIntentNextAction'
   -> Maybe SetupIntentOnBehalfOf'Variants
   -> Maybe SetupIntentPaymentMethod'Variants
   -> Maybe SetupIntentPaymentMethodOptions'
   -> [Text]
   -> Maybe SetupIntentSingleUseMandate'Variants
   -> SetupIntentStatus'
   -> Text
   -> SetupIntent)
-> Parser (Maybe SetupIntentNextAction')
-> Parser
     (Maybe SetupIntentOnBehalfOf'Variants
      -> Maybe SetupIntentPaymentMethod'Variants
      -> Maybe SetupIntentPaymentMethodOptions'
      -> [Text]
      -> Maybe SetupIntentSingleUseMandate'Variants
      -> SetupIntentStatus'
      -> Text
      -> SetupIntent)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe SetupIntentNextAction')
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"next_action")) Parser
  (Maybe SetupIntentOnBehalfOf'Variants
   -> Maybe SetupIntentPaymentMethod'Variants
   -> Maybe SetupIntentPaymentMethodOptions'
   -> [Text]
   -> Maybe SetupIntentSingleUseMandate'Variants
   -> SetupIntentStatus'
   -> Text
   -> SetupIntent)
-> Parser (Maybe SetupIntentOnBehalfOf'Variants)
-> Parser
     (Maybe SetupIntentPaymentMethod'Variants
      -> Maybe SetupIntentPaymentMethodOptions'
      -> [Text]
      -> Maybe SetupIntentSingleUseMandate'Variants
      -> SetupIntentStatus'
      -> Text
      -> SetupIntent)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe SetupIntentOnBehalfOf'Variants)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"on_behalf_of")) Parser
  (Maybe SetupIntentPaymentMethod'Variants
   -> Maybe SetupIntentPaymentMethodOptions'
   -> [Text]
   -> Maybe SetupIntentSingleUseMandate'Variants
   -> SetupIntentStatus'
   -> Text
   -> SetupIntent)
-> Parser (Maybe SetupIntentPaymentMethod'Variants)
-> Parser
     (Maybe SetupIntentPaymentMethodOptions'
      -> [Text]
      -> Maybe SetupIntentSingleUseMandate'Variants
      -> SetupIntentStatus'
      -> Text
      -> SetupIntent)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe SetupIntentPaymentMethod'Variants)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"payment_method")) Parser
  (Maybe SetupIntentPaymentMethodOptions'
   -> [Text]
   -> Maybe SetupIntentSingleUseMandate'Variants
   -> SetupIntentStatus'
   -> Text
   -> SetupIntent)
-> Parser (Maybe SetupIntentPaymentMethodOptions')
-> Parser
     ([Text]
      -> Maybe SetupIntentSingleUseMandate'Variants
      -> SetupIntentStatus'
      -> Text
      -> SetupIntent)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe SetupIntentPaymentMethodOptions')
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"payment_method_options")) Parser
  ([Text]
   -> Maybe SetupIntentSingleUseMandate'Variants
   -> SetupIntentStatus'
   -> Text
   -> SetupIntent)
-> Parser [Text]
-> Parser
     (Maybe SetupIntentSingleUseMandate'Variants
      -> SetupIntentStatus' -> Text -> SetupIntent)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser [Text]
forall a. FromJSON a => Object -> Text -> Parser a
Data.Aeson.Types.FromJSON..: Text
"payment_method_types")) Parser
  (Maybe SetupIntentSingleUseMandate'Variants
   -> SetupIntentStatus' -> Text -> SetupIntent)
-> Parser (Maybe SetupIntentSingleUseMandate'Variants)
-> Parser (SetupIntentStatus' -> Text -> SetupIntent)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text -> Parser (Maybe SetupIntentSingleUseMandate'Variants)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"single_use_mandate")) Parser (SetupIntentStatus' -> Text -> SetupIntent)
-> Parser SetupIntentStatus' -> Parser (Text -> SetupIntent)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser SetupIntentStatus'
forall a. FromJSON a => Object -> Text -> Parser a
Data.Aeson.Types.FromJSON..: Text
"status")) Parser (Text -> SetupIntent) -> Parser Text -> Parser SetupIntent
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
Data.Aeson.Types.FromJSON..: Text
"usage"))

-- | Create a new 'SetupIntent' with all required fields.
mkSetupIntent ::
  -- | 'setupIntentCreated'
  GHC.Types.Int ->
  -- | 'setupIntentId'
  Data.Text.Internal.Text ->
  -- | 'setupIntentLivemode'
  GHC.Types.Bool ->
  -- | 'setupIntentPaymentMethodTypes'
  [Data.Text.Internal.Text] ->
  -- | 'setupIntentStatus'
  SetupIntentStatus' ->
  -- | 'setupIntentUsage'
  Data.Text.Internal.Text ->
  SetupIntent
mkSetupIntent :: Int
-> Text
-> Bool
-> [Text]
-> SetupIntentStatus'
-> Text
-> SetupIntent
mkSetupIntent Int
setupIntentCreated Text
setupIntentId Bool
setupIntentLivemode [Text]
setupIntentPaymentMethodTypes SetupIntentStatus'
setupIntentStatus Text
setupIntentUsage =
  SetupIntent :: Maybe SetupIntentApplication'Variants
-> Maybe SetupIntentCancellationReason'
-> Maybe Text
-> Int
-> Maybe SetupIntentCustomer'Variants
-> Maybe Text
-> Text
-> Maybe SetupIntentLastSetupError'
-> Maybe SetupIntentLatestAttempt'Variants
-> Bool
-> Maybe SetupIntentMandate'Variants
-> Maybe Object
-> Maybe SetupIntentNextAction'
-> Maybe SetupIntentOnBehalfOf'Variants
-> Maybe SetupIntentPaymentMethod'Variants
-> Maybe SetupIntentPaymentMethodOptions'
-> [Text]
-> Maybe SetupIntentSingleUseMandate'Variants
-> SetupIntentStatus'
-> Text
-> SetupIntent
SetupIntent
    { setupIntentApplication :: Maybe SetupIntentApplication'Variants
setupIntentApplication = Maybe SetupIntentApplication'Variants
forall a. Maybe a
GHC.Maybe.Nothing,
      setupIntentCancellationReason :: Maybe SetupIntentCancellationReason'
setupIntentCancellationReason = Maybe SetupIntentCancellationReason'
forall a. Maybe a
GHC.Maybe.Nothing,
      setupIntentClientSecret :: Maybe Text
setupIntentClientSecret = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      setupIntentCreated :: Int
setupIntentCreated = Int
setupIntentCreated,
      setupIntentCustomer :: Maybe SetupIntentCustomer'Variants
setupIntentCustomer = Maybe SetupIntentCustomer'Variants
forall a. Maybe a
GHC.Maybe.Nothing,
      setupIntentDescription :: Maybe Text
setupIntentDescription = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      setupIntentId :: Text
setupIntentId = Text
setupIntentId,
      setupIntentLastSetupError :: Maybe SetupIntentLastSetupError'
setupIntentLastSetupError = Maybe SetupIntentLastSetupError'
forall a. Maybe a
GHC.Maybe.Nothing,
      setupIntentLatestAttempt :: Maybe SetupIntentLatestAttempt'Variants
setupIntentLatestAttempt = Maybe SetupIntentLatestAttempt'Variants
forall a. Maybe a
GHC.Maybe.Nothing,
      setupIntentLivemode :: Bool
setupIntentLivemode = Bool
setupIntentLivemode,
      setupIntentMandate :: Maybe SetupIntentMandate'Variants
setupIntentMandate = Maybe SetupIntentMandate'Variants
forall a. Maybe a
GHC.Maybe.Nothing,
      setupIntentMetadata :: Maybe Object
setupIntentMetadata = Maybe Object
forall a. Maybe a
GHC.Maybe.Nothing,
      setupIntentNextAction :: Maybe SetupIntentNextAction'
setupIntentNextAction = Maybe SetupIntentNextAction'
forall a. Maybe a
GHC.Maybe.Nothing,
      setupIntentOnBehalfOf :: Maybe SetupIntentOnBehalfOf'Variants
setupIntentOnBehalfOf = Maybe SetupIntentOnBehalfOf'Variants
forall a. Maybe a
GHC.Maybe.Nothing,
      setupIntentPaymentMethod :: Maybe SetupIntentPaymentMethod'Variants
setupIntentPaymentMethod = Maybe SetupIntentPaymentMethod'Variants
forall a. Maybe a
GHC.Maybe.Nothing,
      setupIntentPaymentMethodOptions :: Maybe SetupIntentPaymentMethodOptions'
setupIntentPaymentMethodOptions = Maybe SetupIntentPaymentMethodOptions'
forall a. Maybe a
GHC.Maybe.Nothing,
      setupIntentPaymentMethodTypes :: [Text]
setupIntentPaymentMethodTypes = [Text]
setupIntentPaymentMethodTypes,
      setupIntentSingleUseMandate :: Maybe SetupIntentSingleUseMandate'Variants
setupIntentSingleUseMandate = Maybe SetupIntentSingleUseMandate'Variants
forall a. Maybe a
GHC.Maybe.Nothing,
      setupIntentStatus :: SetupIntentStatus'
setupIntentStatus = SetupIntentStatus'
setupIntentStatus,
      setupIntentUsage :: Text
setupIntentUsage = Text
setupIntentUsage
    }

-- | Defines the oneOf schema located at @components.schemas.setup_intent.properties.application.anyOf@ in the specification.
--
-- ID of the Connect application that created the SetupIntent.
data SetupIntentApplication'Variants
  = SetupIntentApplication'Text Data.Text.Internal.Text
  | SetupIntentApplication'Application Application
  deriving (Int -> SetupIntentApplication'Variants -> ShowS
[SetupIntentApplication'Variants] -> ShowS
SetupIntentApplication'Variants -> String
(Int -> SetupIntentApplication'Variants -> ShowS)
-> (SetupIntentApplication'Variants -> String)
-> ([SetupIntentApplication'Variants] -> ShowS)
-> Show SetupIntentApplication'Variants
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [SetupIntentApplication'Variants] -> ShowS
$cshowList :: [SetupIntentApplication'Variants] -> ShowS
show :: SetupIntentApplication'Variants -> String
$cshow :: SetupIntentApplication'Variants -> String
showsPrec :: Int -> SetupIntentApplication'Variants -> ShowS
$cshowsPrec :: Int -> SetupIntentApplication'Variants -> ShowS
GHC.Show.Show, SetupIntentApplication'Variants
-> SetupIntentApplication'Variants -> Bool
(SetupIntentApplication'Variants
 -> SetupIntentApplication'Variants -> Bool)
-> (SetupIntentApplication'Variants
    -> SetupIntentApplication'Variants -> Bool)
-> Eq SetupIntentApplication'Variants
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: SetupIntentApplication'Variants
-> SetupIntentApplication'Variants -> Bool
$c/= :: SetupIntentApplication'Variants
-> SetupIntentApplication'Variants -> Bool
== :: SetupIntentApplication'Variants
-> SetupIntentApplication'Variants -> Bool
$c== :: SetupIntentApplication'Variants
-> SetupIntentApplication'Variants -> Bool
GHC.Classes.Eq)

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

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

-- | Defines the enum schema located at @components.schemas.setup_intent.properties.cancellation_reason@ in the specification.
--
-- Reason for cancellation of this SetupIntent, one of \`abandoned\`, \`requested_by_customer\`, or \`duplicate\`.
data SetupIntentCancellationReason'
  = -- | This case is used if the value encountered during decoding does not match any of the provided cases in the specification.
    SetupIntentCancellationReason'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.
    SetupIntentCancellationReason'Typed Data.Text.Internal.Text
  | -- | Represents the JSON value @"abandoned"@
    SetupIntentCancellationReason'EnumAbandoned
  | -- | Represents the JSON value @"duplicate"@
    SetupIntentCancellationReason'EnumDuplicate
  | -- | Represents the JSON value @"requested_by_customer"@
    SetupIntentCancellationReason'EnumRequestedByCustomer
  deriving (Int -> SetupIntentCancellationReason' -> ShowS
[SetupIntentCancellationReason'] -> ShowS
SetupIntentCancellationReason' -> String
(Int -> SetupIntentCancellationReason' -> ShowS)
-> (SetupIntentCancellationReason' -> String)
-> ([SetupIntentCancellationReason'] -> ShowS)
-> Show SetupIntentCancellationReason'
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [SetupIntentCancellationReason'] -> ShowS
$cshowList :: [SetupIntentCancellationReason'] -> ShowS
show :: SetupIntentCancellationReason' -> String
$cshow :: SetupIntentCancellationReason' -> String
showsPrec :: Int -> SetupIntentCancellationReason' -> ShowS
$cshowsPrec :: Int -> SetupIntentCancellationReason' -> ShowS
GHC.Show.Show, SetupIntentCancellationReason'
-> SetupIntentCancellationReason' -> Bool
(SetupIntentCancellationReason'
 -> SetupIntentCancellationReason' -> Bool)
-> (SetupIntentCancellationReason'
    -> SetupIntentCancellationReason' -> Bool)
-> Eq SetupIntentCancellationReason'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: SetupIntentCancellationReason'
-> SetupIntentCancellationReason' -> Bool
$c/= :: SetupIntentCancellationReason'
-> SetupIntentCancellationReason' -> Bool
== :: SetupIntentCancellationReason'
-> SetupIntentCancellationReason' -> Bool
$c== :: SetupIntentCancellationReason'
-> SetupIntentCancellationReason' -> Bool
GHC.Classes.Eq)

instance Data.Aeson.Types.ToJSON.ToJSON SetupIntentCancellationReason' where
  toJSON :: SetupIntentCancellationReason' -> Value
toJSON (SetupIntentCancellationReason'Other Value
val) = Value
val
  toJSON (SetupIntentCancellationReason'Typed Text
val) = Text -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON Text
val
  toJSON (SetupIntentCancellationReason'
SetupIntentCancellationReason'EnumAbandoned) = Value
"abandoned"
  toJSON (SetupIntentCancellationReason'
SetupIntentCancellationReason'EnumDuplicate) = Value
"duplicate"
  toJSON (SetupIntentCancellationReason'
SetupIntentCancellationReason'EnumRequestedByCustomer) = Value
"requested_by_customer"

instance Data.Aeson.Types.FromJSON.FromJSON SetupIntentCancellationReason' where
  parseJSON :: Value -> Parser SetupIntentCancellationReason'
parseJSON Value
val =
    SetupIntentCancellationReason'
-> Parser SetupIntentCancellationReason'
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure
      ( if
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"abandoned" -> SetupIntentCancellationReason'
SetupIntentCancellationReason'EnumAbandoned
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"duplicate" -> SetupIntentCancellationReason'
SetupIntentCancellationReason'EnumDuplicate
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"requested_by_customer" -> SetupIntentCancellationReason'
SetupIntentCancellationReason'EnumRequestedByCustomer
            | Bool
GHC.Base.otherwise -> Value -> SetupIntentCancellationReason'
SetupIntentCancellationReason'Other Value
val
      )

-- | Defines the oneOf schema located at @components.schemas.setup_intent.properties.customer.anyOf@ in the specification.
--
-- ID of the Customer this SetupIntent belongs to, if one exists.
--
-- If present, the SetupIntent\'s payment method will be attached to the Customer on successful setup. Payment methods attached to other Customers cannot be used with this SetupIntent.
data SetupIntentCustomer'Variants
  = SetupIntentCustomer'Text Data.Text.Internal.Text
  | SetupIntentCustomer'Customer Customer
  | SetupIntentCustomer'DeletedCustomer DeletedCustomer
  deriving (Int -> SetupIntentCustomer'Variants -> ShowS
[SetupIntentCustomer'Variants] -> ShowS
SetupIntentCustomer'Variants -> String
(Int -> SetupIntentCustomer'Variants -> ShowS)
-> (SetupIntentCustomer'Variants -> String)
-> ([SetupIntentCustomer'Variants] -> ShowS)
-> Show SetupIntentCustomer'Variants
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [SetupIntentCustomer'Variants] -> ShowS
$cshowList :: [SetupIntentCustomer'Variants] -> ShowS
show :: SetupIntentCustomer'Variants -> String
$cshow :: SetupIntentCustomer'Variants -> String
showsPrec :: Int -> SetupIntentCustomer'Variants -> ShowS
$cshowsPrec :: Int -> SetupIntentCustomer'Variants -> ShowS
GHC.Show.Show, SetupIntentCustomer'Variants
-> SetupIntentCustomer'Variants -> Bool
(SetupIntentCustomer'Variants
 -> SetupIntentCustomer'Variants -> Bool)
-> (SetupIntentCustomer'Variants
    -> SetupIntentCustomer'Variants -> Bool)
-> Eq SetupIntentCustomer'Variants
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: SetupIntentCustomer'Variants
-> SetupIntentCustomer'Variants -> Bool
$c/= :: SetupIntentCustomer'Variants
-> SetupIntentCustomer'Variants -> Bool
== :: SetupIntentCustomer'Variants
-> SetupIntentCustomer'Variants -> Bool
$c== :: SetupIntentCustomer'Variants
-> SetupIntentCustomer'Variants -> Bool
GHC.Classes.Eq)

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

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

-- | Defines the object schema located at @components.schemas.setup_intent.properties.last_setup_error.anyOf@ in the specification.
--
-- The error encountered in the previous SetupIntent confirmation.
data SetupIntentLastSetupError' = SetupIntentLastSetupError'
  { -- | charge: For card errors, the ID of the failed charge.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    SetupIntentLastSetupError' -> Maybe Text
setupIntentLastSetupError'Charge :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | code: For some errors that could be handled programmatically, a short string indicating the [error code](https:\/\/stripe.com\/docs\/error-codes) reported.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    SetupIntentLastSetupError' -> Maybe Text
setupIntentLastSetupError'Code :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | decline_code: For card errors resulting from a card issuer decline, a short string indicating the [card issuer\'s reason for the decline](https:\/\/stripe.com\/docs\/declines\#issuer-declines) if they provide one.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    SetupIntentLastSetupError' -> Maybe Text
setupIntentLastSetupError'DeclineCode :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | doc_url: A URL to more information about the [error code](https:\/\/stripe.com\/docs\/error-codes) reported.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    SetupIntentLastSetupError' -> Maybe Text
setupIntentLastSetupError'DocUrl :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | message: A human-readable message providing more details about the error. For card errors, these messages can be shown to your users.
    --
    -- Constraints:
    --
    -- * Maximum length of 40000
    SetupIntentLastSetupError' -> Maybe Text
setupIntentLastSetupError'Message :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | param: If the error is parameter-specific, the parameter related to the error. For example, you can use this to display a message near the correct form field.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    SetupIntentLastSetupError' -> Maybe Text
setupIntentLastSetupError'Param :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | payment_intent: A PaymentIntent guides you through the process of collecting a payment from your customer.
    -- We recommend that you create exactly one PaymentIntent for each order or
    -- customer session in your system. You can reference the PaymentIntent later to
    -- see the history of payment attempts for a particular session.
    --
    -- A PaymentIntent transitions through
    -- [multiple statuses](https:\/\/stripe.com\/docs\/payments\/intents\#intent-statuses)
    -- throughout its lifetime as it interfaces with Stripe.js to perform
    -- authentication flows and ultimately creates at most one successful charge.
    --
    -- Related guide: [Payment Intents API](https:\/\/stripe.com\/docs\/payments\/payment-intents).
    SetupIntentLastSetupError' -> Maybe PaymentIntent
setupIntentLastSetupError'PaymentIntent :: (GHC.Maybe.Maybe PaymentIntent),
    -- | payment_method: PaymentMethod objects represent your customer\'s payment instruments.
    -- They can be used with [PaymentIntents](https:\/\/stripe.com\/docs\/payments\/payment-intents) to collect payments or saved to
    -- Customer objects to store instrument details for future payments.
    --
    -- Related guides: [Payment Methods](https:\/\/stripe.com\/docs\/payments\/payment-methods) and [More Payment Scenarios](https:\/\/stripe.com\/docs\/payments\/more-payment-scenarios).
    SetupIntentLastSetupError' -> Maybe PaymentMethod
setupIntentLastSetupError'PaymentMethod :: (GHC.Maybe.Maybe PaymentMethod),
    -- | payment_method_type: If the error is specific to the type of payment method, the payment method type that had a problem. This field is only populated for invoice-related errors.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    SetupIntentLastSetupError' -> Maybe Text
setupIntentLastSetupError'PaymentMethodType :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | setup_intent: A SetupIntent guides you through the process of setting up and saving a customer\'s payment credentials for future payments.
    -- For example, you could use a SetupIntent to set up and save your customer\'s card without immediately collecting a payment.
    -- Later, you can use [PaymentIntents](https:\/\/stripe.com\/docs\/api\#payment_intents) to drive the payment flow.
    --
    -- Create a SetupIntent as soon as you\'re ready to collect your customer\'s payment credentials.
    -- Do not maintain long-lived, unconfirmed SetupIntents as they may no longer be valid.
    -- The SetupIntent then transitions through multiple [statuses](https:\/\/stripe.com\/docs\/payments\/intents\#intent-statuses) as it guides
    -- you through the setup process.
    --
    -- Successful SetupIntents result in payment credentials that are optimized for future payments.
    -- For example, cardholders in [certain regions](\/guides\/strong-customer-authentication) may need to be run through
    -- [Strong Customer Authentication](https:\/\/stripe.com\/docs\/strong-customer-authentication) at the time of payment method collection
    -- in order to streamline later [off-session payments](https:\/\/stripe.com\/docs\/payments\/setup-intents).
    -- If the SetupIntent is used with a [Customer](https:\/\/stripe.com\/docs\/api\#setup_intent_object-customer), upon success,
    -- it will automatically attach the resulting payment method to that Customer.
    -- We recommend using SetupIntents or [setup_future_usage](https:\/\/stripe.com\/docs\/api\#payment_intent_object-setup_future_usage) on
    -- PaymentIntents to save payment methods in order to prevent saving invalid or unoptimized payment methods.
    --
    -- By using SetupIntents, you ensure that your customers experience the minimum set of required friction,
    -- even as regulations change over time.
    --
    -- Related guide: [Setup Intents API](https:\/\/stripe.com\/docs\/payments\/setup-intents).
    SetupIntentLastSetupError' -> Maybe SetupIntent
setupIntentLastSetupError'SetupIntent :: (GHC.Maybe.Maybe SetupIntent),
    -- | source: The source object for errors returned on a request involving a source.
    SetupIntentLastSetupError'
-> Maybe SetupIntentLastSetupError'Source'
setupIntentLastSetupError'Source :: (GHC.Maybe.Maybe SetupIntentLastSetupError'Source'),
    -- | type: The type of error returned. One of \`api_connection_error\`, \`api_error\`, \`authentication_error\`, \`card_error\`, \`idempotency_error\`, \`invalid_request_error\`, or \`rate_limit_error\`
    SetupIntentLastSetupError' -> Maybe SetupIntentLastSetupError'Type'
setupIntentLastSetupError'Type :: (GHC.Maybe.Maybe SetupIntentLastSetupError'Type')
  }
  deriving
    ( Int -> SetupIntentLastSetupError' -> ShowS
[SetupIntentLastSetupError'] -> ShowS
SetupIntentLastSetupError' -> String
(Int -> SetupIntentLastSetupError' -> ShowS)
-> (SetupIntentLastSetupError' -> String)
-> ([SetupIntentLastSetupError'] -> ShowS)
-> Show SetupIntentLastSetupError'
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [SetupIntentLastSetupError'] -> ShowS
$cshowList :: [SetupIntentLastSetupError'] -> ShowS
show :: SetupIntentLastSetupError' -> String
$cshow :: SetupIntentLastSetupError' -> String
showsPrec :: Int -> SetupIntentLastSetupError' -> ShowS
$cshowsPrec :: Int -> SetupIntentLastSetupError' -> ShowS
GHC.Show.Show,
      SetupIntentLastSetupError' -> SetupIntentLastSetupError' -> Bool
(SetupIntentLastSetupError' -> SetupIntentLastSetupError' -> Bool)
-> (SetupIntentLastSetupError'
    -> SetupIntentLastSetupError' -> Bool)
-> Eq SetupIntentLastSetupError'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: SetupIntentLastSetupError' -> SetupIntentLastSetupError' -> Bool
$c/= :: SetupIntentLastSetupError' -> SetupIntentLastSetupError' -> Bool
== :: SetupIntentLastSetupError' -> SetupIntentLastSetupError' -> Bool
$c== :: SetupIntentLastSetupError' -> SetupIntentLastSetupError' -> Bool
GHC.Classes.Eq
    )

instance Data.Aeson.Types.ToJSON.ToJSON SetupIntentLastSetupError' where
  toJSON :: SetupIntentLastSetupError' -> Value
toJSON SetupIntentLastSetupError'
obj = [Pair] -> Value
Data.Aeson.Types.Internal.object (Text
"charge" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntentLastSetupError' -> Maybe Text
setupIntentLastSetupError'Charge SetupIntentLastSetupError'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"code" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntentLastSetupError' -> Maybe Text
setupIntentLastSetupError'Code SetupIntentLastSetupError'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"decline_code" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntentLastSetupError' -> Maybe Text
setupIntentLastSetupError'DeclineCode SetupIntentLastSetupError'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"doc_url" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntentLastSetupError' -> Maybe Text
setupIntentLastSetupError'DocUrl SetupIntentLastSetupError'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"message" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntentLastSetupError' -> Maybe Text
setupIntentLastSetupError'Message SetupIntentLastSetupError'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"param" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntentLastSetupError' -> Maybe Text
setupIntentLastSetupError'Param SetupIntentLastSetupError'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"payment_intent" Text -> Maybe PaymentIntent -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntentLastSetupError' -> Maybe PaymentIntent
setupIntentLastSetupError'PaymentIntent SetupIntentLastSetupError'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"payment_method" Text -> Maybe PaymentMethod -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntentLastSetupError' -> Maybe PaymentMethod
setupIntentLastSetupError'PaymentMethod SetupIntentLastSetupError'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"payment_method_type" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntentLastSetupError' -> Maybe Text
setupIntentLastSetupError'PaymentMethodType SetupIntentLastSetupError'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"setup_intent" Text -> Maybe SetupIntent -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntentLastSetupError' -> Maybe SetupIntent
setupIntentLastSetupError'SetupIntent SetupIntentLastSetupError'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"source" Text -> Maybe SetupIntentLastSetupError'Source' -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntentLastSetupError'
-> Maybe SetupIntentLastSetupError'Source'
setupIntentLastSetupError'Source SetupIntentLastSetupError'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"type" Text -> Maybe SetupIntentLastSetupError'Type' -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntentLastSetupError' -> Maybe SetupIntentLastSetupError'Type'
setupIntentLastSetupError'Type SetupIntentLastSetupError'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: SetupIntentLastSetupError' -> Encoding
toEncoding SetupIntentLastSetupError'
obj = Series -> Encoding
Data.Aeson.Encoding.Internal.pairs ((Text
"charge" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntentLastSetupError' -> Maybe Text
setupIntentLastSetupError'Charge SetupIntentLastSetupError'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"code" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntentLastSetupError' -> Maybe Text
setupIntentLastSetupError'Code SetupIntentLastSetupError'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"decline_code" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntentLastSetupError' -> Maybe Text
setupIntentLastSetupError'DeclineCode SetupIntentLastSetupError'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"doc_url" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntentLastSetupError' -> Maybe Text
setupIntentLastSetupError'DocUrl SetupIntentLastSetupError'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"message" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntentLastSetupError' -> Maybe Text
setupIntentLastSetupError'Message SetupIntentLastSetupError'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"param" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntentLastSetupError' -> Maybe Text
setupIntentLastSetupError'Param SetupIntentLastSetupError'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"payment_intent" Text -> Maybe PaymentIntent -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntentLastSetupError' -> Maybe PaymentIntent
setupIntentLastSetupError'PaymentIntent SetupIntentLastSetupError'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"payment_method" Text -> Maybe PaymentMethod -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntentLastSetupError' -> Maybe PaymentMethod
setupIntentLastSetupError'PaymentMethod SetupIntentLastSetupError'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"payment_method_type" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntentLastSetupError' -> Maybe Text
setupIntentLastSetupError'PaymentMethodType SetupIntentLastSetupError'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"setup_intent" Text -> Maybe SetupIntent -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntentLastSetupError' -> Maybe SetupIntent
setupIntentLastSetupError'SetupIntent SetupIntentLastSetupError'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"source" Text -> Maybe SetupIntentLastSetupError'Source' -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntentLastSetupError'
-> Maybe SetupIntentLastSetupError'Source'
setupIntentLastSetupError'Source SetupIntentLastSetupError'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> (Text
"type" Text -> Maybe SetupIntentLastSetupError'Type' -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntentLastSetupError' -> Maybe SetupIntentLastSetupError'Type'
setupIntentLastSetupError'Type SetupIntentLastSetupError'
obj))))))))))))

instance Data.Aeson.Types.FromJSON.FromJSON SetupIntentLastSetupError' where
  parseJSON :: Value -> Parser SetupIntentLastSetupError'
parseJSON = String
-> (Object -> Parser SetupIntentLastSetupError')
-> Value
-> Parser SetupIntentLastSetupError'
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.Aeson.Types.FromJSON.withObject String
"SetupIntentLastSetupError'" (\Object
obj -> ((((((((((((Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe PaymentIntent
 -> Maybe PaymentMethod
 -> Maybe Text
 -> Maybe SetupIntent
 -> Maybe SetupIntentLastSetupError'Source'
 -> Maybe SetupIntentLastSetupError'Type'
 -> SetupIntentLastSetupError')
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe PaymentIntent
      -> Maybe PaymentMethod
      -> Maybe Text
      -> Maybe SetupIntent
      -> Maybe SetupIntentLastSetupError'Source'
      -> Maybe SetupIntentLastSetupError'Type'
      -> SetupIntentLastSetupError')
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe PaymentIntent
-> Maybe PaymentMethod
-> Maybe Text
-> Maybe SetupIntent
-> Maybe SetupIntentLastSetupError'Source'
-> Maybe SetupIntentLastSetupError'Type'
-> SetupIntentLastSetupError'
SetupIntentLastSetupError' Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe PaymentIntent
   -> Maybe PaymentMethod
   -> Maybe Text
   -> Maybe SetupIntent
   -> Maybe SetupIntentLastSetupError'Source'
   -> Maybe SetupIntentLastSetupError'Type'
   -> SetupIntentLastSetupError')
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe PaymentIntent
      -> Maybe PaymentMethod
      -> Maybe Text
      -> Maybe SetupIntent
      -> Maybe SetupIntentLastSetupError'Source'
      -> Maybe SetupIntentLastSetupError'Type'
      -> SetupIntentLastSetupError')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"charge")) Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe PaymentIntent
   -> Maybe PaymentMethod
   -> Maybe Text
   -> Maybe SetupIntent
   -> Maybe SetupIntentLastSetupError'Source'
   -> Maybe SetupIntentLastSetupError'Type'
   -> SetupIntentLastSetupError')
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe PaymentIntent
      -> Maybe PaymentMethod
      -> Maybe Text
      -> Maybe SetupIntent
      -> Maybe SetupIntentLastSetupError'Source'
      -> Maybe SetupIntentLastSetupError'Type'
      -> SetupIntentLastSetupError')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"code")) Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe PaymentIntent
   -> Maybe PaymentMethod
   -> Maybe Text
   -> Maybe SetupIntent
   -> Maybe SetupIntentLastSetupError'Source'
   -> Maybe SetupIntentLastSetupError'Type'
   -> SetupIntentLastSetupError')
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe PaymentIntent
      -> Maybe PaymentMethod
      -> Maybe Text
      -> Maybe SetupIntent
      -> Maybe SetupIntentLastSetupError'Source'
      -> Maybe SetupIntentLastSetupError'Type'
      -> SetupIntentLastSetupError')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"decline_code")) Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe PaymentIntent
   -> Maybe PaymentMethod
   -> Maybe Text
   -> Maybe SetupIntent
   -> Maybe SetupIntentLastSetupError'Source'
   -> Maybe SetupIntentLastSetupError'Type'
   -> SetupIntentLastSetupError')
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe PaymentIntent
      -> Maybe PaymentMethod
      -> Maybe Text
      -> Maybe SetupIntent
      -> Maybe SetupIntentLastSetupError'Source'
      -> Maybe SetupIntentLastSetupError'Type'
      -> SetupIntentLastSetupError')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"doc_url")) Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe PaymentIntent
   -> Maybe PaymentMethod
   -> Maybe Text
   -> Maybe SetupIntent
   -> Maybe SetupIntentLastSetupError'Source'
   -> Maybe SetupIntentLastSetupError'Type'
   -> SetupIntentLastSetupError')
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe PaymentIntent
      -> Maybe PaymentMethod
      -> Maybe Text
      -> Maybe SetupIntent
      -> Maybe SetupIntentLastSetupError'Source'
      -> Maybe SetupIntentLastSetupError'Type'
      -> SetupIntentLastSetupError')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"message")) Parser
  (Maybe Text
   -> Maybe PaymentIntent
   -> Maybe PaymentMethod
   -> Maybe Text
   -> Maybe SetupIntent
   -> Maybe SetupIntentLastSetupError'Source'
   -> Maybe SetupIntentLastSetupError'Type'
   -> SetupIntentLastSetupError')
-> Parser (Maybe Text)
-> Parser
     (Maybe PaymentIntent
      -> Maybe PaymentMethod
      -> Maybe Text
      -> Maybe SetupIntent
      -> Maybe SetupIntentLastSetupError'Source'
      -> Maybe SetupIntentLastSetupError'Type'
      -> SetupIntentLastSetupError')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"param")) Parser
  (Maybe PaymentIntent
   -> Maybe PaymentMethod
   -> Maybe Text
   -> Maybe SetupIntent
   -> Maybe SetupIntentLastSetupError'Source'
   -> Maybe SetupIntentLastSetupError'Type'
   -> SetupIntentLastSetupError')
-> Parser (Maybe PaymentIntent)
-> Parser
     (Maybe PaymentMethod
      -> Maybe Text
      -> Maybe SetupIntent
      -> Maybe SetupIntentLastSetupError'Source'
      -> Maybe SetupIntentLastSetupError'Type'
      -> SetupIntentLastSetupError')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe PaymentIntent)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"payment_intent")) Parser
  (Maybe PaymentMethod
   -> Maybe Text
   -> Maybe SetupIntent
   -> Maybe SetupIntentLastSetupError'Source'
   -> Maybe SetupIntentLastSetupError'Type'
   -> SetupIntentLastSetupError')
-> Parser (Maybe PaymentMethod)
-> Parser
     (Maybe Text
      -> Maybe SetupIntent
      -> Maybe SetupIntentLastSetupError'Source'
      -> Maybe SetupIntentLastSetupError'Type'
      -> SetupIntentLastSetupError')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe PaymentMethod)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"payment_method")) Parser
  (Maybe Text
   -> Maybe SetupIntent
   -> Maybe SetupIntentLastSetupError'Source'
   -> Maybe SetupIntentLastSetupError'Type'
   -> SetupIntentLastSetupError')
-> Parser (Maybe Text)
-> Parser
     (Maybe SetupIntent
      -> Maybe SetupIntentLastSetupError'Source'
      -> Maybe SetupIntentLastSetupError'Type'
      -> SetupIntentLastSetupError')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"payment_method_type")) Parser
  (Maybe SetupIntent
   -> Maybe SetupIntentLastSetupError'Source'
   -> Maybe SetupIntentLastSetupError'Type'
   -> SetupIntentLastSetupError')
-> Parser (Maybe SetupIntent)
-> Parser
     (Maybe SetupIntentLastSetupError'Source'
      -> Maybe SetupIntentLastSetupError'Type'
      -> SetupIntentLastSetupError')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe SetupIntent)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"setup_intent")) Parser
  (Maybe SetupIntentLastSetupError'Source'
   -> Maybe SetupIntentLastSetupError'Type'
   -> SetupIntentLastSetupError')
-> Parser (Maybe SetupIntentLastSetupError'Source')
-> Parser
     (Maybe SetupIntentLastSetupError'Type'
      -> SetupIntentLastSetupError')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe SetupIntentLastSetupError'Source')
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"source")) Parser
  (Maybe SetupIntentLastSetupError'Type'
   -> SetupIntentLastSetupError')
-> Parser (Maybe SetupIntentLastSetupError'Type')
-> Parser SetupIntentLastSetupError'
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe SetupIntentLastSetupError'Type')
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"type"))

-- | Create a new 'SetupIntentLastSetupError'' with all required fields.
mkSetupIntentLastSetupError' :: SetupIntentLastSetupError'
mkSetupIntentLastSetupError' :: SetupIntentLastSetupError'
mkSetupIntentLastSetupError' =
  SetupIntentLastSetupError' :: Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe PaymentIntent
-> Maybe PaymentMethod
-> Maybe Text
-> Maybe SetupIntent
-> Maybe SetupIntentLastSetupError'Source'
-> Maybe SetupIntentLastSetupError'Type'
-> SetupIntentLastSetupError'
SetupIntentLastSetupError'
    { setupIntentLastSetupError'Charge :: Maybe Text
setupIntentLastSetupError'Charge = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      setupIntentLastSetupError'Code :: Maybe Text
setupIntentLastSetupError'Code = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      setupIntentLastSetupError'DeclineCode :: Maybe Text
setupIntentLastSetupError'DeclineCode = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      setupIntentLastSetupError'DocUrl :: Maybe Text
setupIntentLastSetupError'DocUrl = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      setupIntentLastSetupError'Message :: Maybe Text
setupIntentLastSetupError'Message = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      setupIntentLastSetupError'Param :: Maybe Text
setupIntentLastSetupError'Param = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      setupIntentLastSetupError'PaymentIntent :: Maybe PaymentIntent
setupIntentLastSetupError'PaymentIntent = Maybe PaymentIntent
forall a. Maybe a
GHC.Maybe.Nothing,
      setupIntentLastSetupError'PaymentMethod :: Maybe PaymentMethod
setupIntentLastSetupError'PaymentMethod = Maybe PaymentMethod
forall a. Maybe a
GHC.Maybe.Nothing,
      setupIntentLastSetupError'PaymentMethodType :: Maybe Text
setupIntentLastSetupError'PaymentMethodType = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      setupIntentLastSetupError'SetupIntent :: Maybe SetupIntent
setupIntentLastSetupError'SetupIntent = Maybe SetupIntent
forall a. Maybe a
GHC.Maybe.Nothing,
      setupIntentLastSetupError'Source :: Maybe SetupIntentLastSetupError'Source'
setupIntentLastSetupError'Source = Maybe SetupIntentLastSetupError'Source'
forall a. Maybe a
GHC.Maybe.Nothing,
      setupIntentLastSetupError'Type :: Maybe SetupIntentLastSetupError'Type'
setupIntentLastSetupError'Type = Maybe SetupIntentLastSetupError'Type'
forall a. Maybe a
GHC.Maybe.Nothing
    }

-- | Defines the object schema located at @components.schemas.setup_intent.properties.last_setup_error.anyOf.properties.source.anyOf@ in the specification.
--
-- The source object for errors returned on a request involving a source.
data SetupIntentLastSetupError'Source' = SetupIntentLastSetupError'Source'
  { -- | account: The ID of the account that the bank account is associated with.
    SetupIntentLastSetupError'Source'
-> Maybe SetupIntentLastSetupError'Source'Account'Variants
setupIntentLastSetupError'Source'Account :: (GHC.Maybe.Maybe SetupIntentLastSetupError'Source'Account'Variants),
    -- | account_holder_name: The name of the person or business that owns the bank account.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    SetupIntentLastSetupError'Source' -> Maybe Text
setupIntentLastSetupError'Source'AccountHolderName :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | account_holder_type: The type of entity that holds the account. This can be either \`individual\` or \`company\`.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    SetupIntentLastSetupError'Source' -> Maybe Text
setupIntentLastSetupError'Source'AccountHolderType :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | ach_credit_transfer
    SetupIntentLastSetupError'Source'
-> Maybe SourceTypeAchCreditTransfer
setupIntentLastSetupError'Source'AchCreditTransfer :: (GHC.Maybe.Maybe SourceTypeAchCreditTransfer),
    -- | ach_debit
    SetupIntentLastSetupError'Source' -> Maybe SourceTypeAchDebit
setupIntentLastSetupError'Source'AchDebit :: (GHC.Maybe.Maybe SourceTypeAchDebit),
    -- | acss_debit
    SetupIntentLastSetupError'Source' -> Maybe SourceTypeAcssDebit
setupIntentLastSetupError'Source'AcssDebit :: (GHC.Maybe.Maybe SourceTypeAcssDebit),
    -- | address_city: City\/District\/Suburb\/Town\/Village.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    SetupIntentLastSetupError'Source' -> Maybe Text
setupIntentLastSetupError'Source'AddressCity :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | address_country: Billing address country, if provided when creating card.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    SetupIntentLastSetupError'Source' -> Maybe Text
setupIntentLastSetupError'Source'AddressCountry :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | address_line1: Address line 1 (Street address\/PO Box\/Company name).
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    SetupIntentLastSetupError'Source' -> Maybe Text
setupIntentLastSetupError'Source'AddressLine1 :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | address_line1_check: If \`address_line1\` was provided, results of the check: \`pass\`, \`fail\`, \`unavailable\`, or \`unchecked\`.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    SetupIntentLastSetupError'Source' -> Maybe Text
setupIntentLastSetupError'Source'AddressLine1Check :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | address_line2: Address line 2 (Apartment\/Suite\/Unit\/Building).
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    SetupIntentLastSetupError'Source' -> Maybe Text
setupIntentLastSetupError'Source'AddressLine2 :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | address_state: State\/County\/Province\/Region.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    SetupIntentLastSetupError'Source' -> Maybe Text
setupIntentLastSetupError'Source'AddressState :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | address_zip: ZIP or postal code.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    SetupIntentLastSetupError'Source' -> Maybe Text
setupIntentLastSetupError'Source'AddressZip :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | address_zip_check: If \`address_zip\` was provided, results of the check: \`pass\`, \`fail\`, \`unavailable\`, or \`unchecked\`.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    SetupIntentLastSetupError'Source' -> Maybe Text
setupIntentLastSetupError'Source'AddressZipCheck :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | alipay
    SetupIntentLastSetupError'Source' -> Maybe SourceTypeAlipay
setupIntentLastSetupError'Source'Alipay :: (GHC.Maybe.Maybe SourceTypeAlipay),
    -- | amount: A positive integer in the smallest currency unit (that is, 100 cents for \$1.00, or 1 for ¥1, Japanese Yen being a zero-decimal currency) representing the total amount associated with the source. This is the amount for which the source will be chargeable once ready. Required for \`single_use\` sources.
    SetupIntentLastSetupError'Source' -> Maybe Int
setupIntentLastSetupError'Source'Amount :: (GHC.Maybe.Maybe GHC.Types.Int),
    -- | au_becs_debit
    SetupIntentLastSetupError'Source' -> Maybe SourceTypeAuBecsDebit
setupIntentLastSetupError'Source'AuBecsDebit :: (GHC.Maybe.Maybe SourceTypeAuBecsDebit),
    -- | available_payout_methods: A set of available payout methods for this bank account. Only values from this set should be passed as the \`method\` when creating a payout.
    SetupIntentLastSetupError'Source'
-> Maybe [SetupIntentLastSetupError'Source'AvailablePayoutMethods']
setupIntentLastSetupError'Source'AvailablePayoutMethods :: (GHC.Maybe.Maybe ([SetupIntentLastSetupError'Source'AvailablePayoutMethods'])),
    -- | bancontact
    SetupIntentLastSetupError'Source' -> Maybe SourceTypeBancontact
setupIntentLastSetupError'Source'Bancontact :: (GHC.Maybe.Maybe SourceTypeBancontact),
    -- | bank_name: Name of the bank associated with the routing number (e.g., \`WELLS FARGO\`).
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    SetupIntentLastSetupError'Source' -> Maybe Text
setupIntentLastSetupError'Source'BankName :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | brand: Card brand. Can be \`American Express\`, \`Diners Club\`, \`Discover\`, \`JCB\`, \`MasterCard\`, \`UnionPay\`, \`Visa\`, or \`Unknown\`.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    SetupIntentLastSetupError'Source' -> Maybe Text
setupIntentLastSetupError'Source'Brand :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | card
    SetupIntentLastSetupError'Source' -> Maybe SourceTypeCard
setupIntentLastSetupError'Source'Card :: (GHC.Maybe.Maybe SourceTypeCard),
    -- | card_present
    SetupIntentLastSetupError'Source' -> Maybe SourceTypeCardPresent
setupIntentLastSetupError'Source'CardPresent :: (GHC.Maybe.Maybe SourceTypeCardPresent),
    -- | client_secret: The client secret of the source. Used for client-side retrieval using a publishable key.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    SetupIntentLastSetupError'Source' -> Maybe Text
setupIntentLastSetupError'Source'ClientSecret :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | code_verification:
    SetupIntentLastSetupError'Source'
-> Maybe SourceCodeVerificationFlow
setupIntentLastSetupError'Source'CodeVerification :: (GHC.Maybe.Maybe SourceCodeVerificationFlow),
    -- | country: Two-letter ISO code representing the country the bank account is located in.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    SetupIntentLastSetupError'Source' -> Maybe Text
setupIntentLastSetupError'Source'Country :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | created: Time at which the object was created. Measured in seconds since the Unix epoch.
    SetupIntentLastSetupError'Source' -> Maybe Int
setupIntentLastSetupError'Source'Created :: (GHC.Maybe.Maybe GHC.Types.Int),
    -- | currency: Three-letter [ISO code for the currency](https:\/\/stripe.com\/docs\/payouts) paid out to the bank account.
    SetupIntentLastSetupError'Source' -> Maybe Text
setupIntentLastSetupError'Source'Currency :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | customer: The ID of the customer that the bank account is associated with.
    SetupIntentLastSetupError'Source'
-> Maybe SetupIntentLastSetupError'Source'Customer'Variants
setupIntentLastSetupError'Source'Customer :: (GHC.Maybe.Maybe SetupIntentLastSetupError'Source'Customer'Variants),
    -- | cvc_check: If a CVC was provided, results of the check: \`pass\`, \`fail\`, \`unavailable\`, or \`unchecked\`. A result of unchecked indicates that CVC was provided but hasn\'t been checked yet. Checks are typically performed when attaching a card to a Customer object, or when creating a charge. For more details, see [Check if a card is valid without a charge](https:\/\/support.stripe.com\/questions\/check-if-a-card-is-valid-without-a-charge).
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    SetupIntentLastSetupError'Source' -> Maybe Text
setupIntentLastSetupError'Source'CvcCheck :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | default_for_currency: Whether this bank account is the default external account for its currency.
    SetupIntentLastSetupError'Source' -> Maybe Bool
setupIntentLastSetupError'Source'DefaultForCurrency :: (GHC.Maybe.Maybe GHC.Types.Bool),
    -- | dynamic_last4: (For tokenized numbers only.) The last four digits of the device account number.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    SetupIntentLastSetupError'Source' -> Maybe Text
setupIntentLastSetupError'Source'DynamicLast4 :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | eps
    SetupIntentLastSetupError'Source' -> Maybe SourceTypeEps
setupIntentLastSetupError'Source'Eps :: (GHC.Maybe.Maybe SourceTypeEps),
    -- | exp_month: Two-digit number representing the card\'s expiration month.
    SetupIntentLastSetupError'Source' -> Maybe Int
setupIntentLastSetupError'Source'ExpMonth :: (GHC.Maybe.Maybe GHC.Types.Int),
    -- | exp_year: Four-digit number representing the card\'s expiration year.
    SetupIntentLastSetupError'Source' -> Maybe Int
setupIntentLastSetupError'Source'ExpYear :: (GHC.Maybe.Maybe GHC.Types.Int),
    -- | fingerprint: Uniquely identifies this particular bank account. You can use this attribute to check whether two bank accounts are the same.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    SetupIntentLastSetupError'Source' -> Maybe Text
setupIntentLastSetupError'Source'Fingerprint :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | flow: The authentication \`flow\` of the source. \`flow\` is one of \`redirect\`, \`receiver\`, \`code_verification\`, \`none\`.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    SetupIntentLastSetupError'Source' -> Maybe Text
setupIntentLastSetupError'Source'Flow :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | funding: Card funding type. Can be \`credit\`, \`debit\`, \`prepaid\`, or \`unknown\`.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    SetupIntentLastSetupError'Source' -> Maybe Text
setupIntentLastSetupError'Source'Funding :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | giropay
    SetupIntentLastSetupError'Source' -> Maybe SourceTypeGiropay
setupIntentLastSetupError'Source'Giropay :: (GHC.Maybe.Maybe SourceTypeGiropay),
    -- | id: Unique identifier for the object.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    SetupIntentLastSetupError'Source' -> Maybe Text
setupIntentLastSetupError'Source'Id :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | ideal
    SetupIntentLastSetupError'Source' -> Maybe SourceTypeIdeal
setupIntentLastSetupError'Source'Ideal :: (GHC.Maybe.Maybe SourceTypeIdeal),
    -- | klarna
    SetupIntentLastSetupError'Source' -> Maybe SourceTypeKlarna
setupIntentLastSetupError'Source'Klarna :: (GHC.Maybe.Maybe SourceTypeKlarna),
    -- | last4: The last four digits of the bank account number.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    SetupIntentLastSetupError'Source' -> Maybe Text
setupIntentLastSetupError'Source'Last4 :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | livemode: Has the value \`true\` if the object exists in live mode or the value \`false\` if the object exists in test mode.
    SetupIntentLastSetupError'Source' -> Maybe Bool
setupIntentLastSetupError'Source'Livemode :: (GHC.Maybe.Maybe GHC.Types.Bool),
    -- | metadata: Set of [key-value pairs](https:\/\/stripe.com\/docs\/api\/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
    SetupIntentLastSetupError'Source' -> Maybe Object
setupIntentLastSetupError'Source'Metadata :: (GHC.Maybe.Maybe Data.Aeson.Types.Internal.Object),
    -- | multibanco
    SetupIntentLastSetupError'Source' -> Maybe SourceTypeMultibanco
setupIntentLastSetupError'Source'Multibanco :: (GHC.Maybe.Maybe SourceTypeMultibanco),
    -- | name: Cardholder name.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    SetupIntentLastSetupError'Source' -> Maybe Text
setupIntentLastSetupError'Source'Name :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | object: String representing the object\'s type. Objects of the same type share the same value.
    SetupIntentLastSetupError'Source'
-> Maybe SetupIntentLastSetupError'Source'Object'
setupIntentLastSetupError'Source'Object :: (GHC.Maybe.Maybe SetupIntentLastSetupError'Source'Object'),
    -- | owner: Information about the owner of the payment instrument that may be used or required by particular source types.
    SetupIntentLastSetupError'Source'
-> Maybe SetupIntentLastSetupError'Source'Owner'
setupIntentLastSetupError'Source'Owner :: (GHC.Maybe.Maybe SetupIntentLastSetupError'Source'Owner'),
    -- | p24
    SetupIntentLastSetupError'Source' -> Maybe SourceTypeP24
setupIntentLastSetupError'Source'P24 :: (GHC.Maybe.Maybe SourceTypeP24),
    -- | receiver:
    SetupIntentLastSetupError'Source' -> Maybe SourceReceiverFlow
setupIntentLastSetupError'Source'Receiver :: (GHC.Maybe.Maybe SourceReceiverFlow),
    -- | recipient: The recipient that this card belongs to. This attribute will not be in the card object if the card belongs to a customer or account instead.
    SetupIntentLastSetupError'Source'
-> Maybe SetupIntentLastSetupError'Source'Recipient'Variants
setupIntentLastSetupError'Source'Recipient :: (GHC.Maybe.Maybe SetupIntentLastSetupError'Source'Recipient'Variants),
    -- | redirect:
    SetupIntentLastSetupError'Source' -> Maybe SourceRedirectFlow
setupIntentLastSetupError'Source'Redirect :: (GHC.Maybe.Maybe SourceRedirectFlow),
    -- | routing_number: The routing transit number for the bank account.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    SetupIntentLastSetupError'Source' -> Maybe Text
setupIntentLastSetupError'Source'RoutingNumber :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | sepa_debit
    SetupIntentLastSetupError'Source' -> Maybe SourceTypeSepaDebit
setupIntentLastSetupError'Source'SepaDebit :: (GHC.Maybe.Maybe SourceTypeSepaDebit),
    -- | sofort
    SetupIntentLastSetupError'Source' -> Maybe SourceTypeSofort
setupIntentLastSetupError'Source'Sofort :: (GHC.Maybe.Maybe SourceTypeSofort),
    -- | source_order:
    SetupIntentLastSetupError'Source' -> Maybe SourceOrder
setupIntentLastSetupError'Source'SourceOrder :: (GHC.Maybe.Maybe SourceOrder),
    -- | statement_descriptor: Extra information about a source. This will appear on your customer\'s statement every time you charge the source.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    SetupIntentLastSetupError'Source' -> Maybe Text
setupIntentLastSetupError'Source'StatementDescriptor :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | status: For bank accounts, possible values are \`new\`, \`validated\`, \`verified\`, \`verification_failed\`, or \`errored\`. A bank account that hasn\'t had any activity or validation performed is \`new\`. If Stripe can determine that the bank account exists, its status will be \`validated\`. Note that there often isn’t enough information to know (e.g., for smaller credit unions), and the validation is not always run. If customer bank account verification has succeeded, the bank account status will be \`verified\`. If the verification failed for any reason, such as microdeposit failure, the status will be \`verification_failed\`. If a transfer sent to this bank account fails, we\'ll set the status to \`errored\` and will not continue to send transfers until the bank details are updated.
    --
    -- For external accounts, possible values are \`new\` and \`errored\`. Validations aren\'t run against external accounts because they\'re only used for payouts. This means the other statuses don\'t apply. If a transfer fails, the status is set to \`errored\` and transfers are stopped until account details are updated.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    SetupIntentLastSetupError'Source' -> Maybe Text
setupIntentLastSetupError'Source'Status :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | three_d_secure
    SetupIntentLastSetupError'Source' -> Maybe SourceTypeThreeDSecure
setupIntentLastSetupError'Source'ThreeDSecure :: (GHC.Maybe.Maybe SourceTypeThreeDSecure),
    -- | tokenization_method: If the card number is tokenized, this is the method that was used. Can be \`android_pay\` (includes Google Pay), \`apple_pay\`, \`masterpass\`, \`visa_checkout\`, or null.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    SetupIntentLastSetupError'Source' -> Maybe Text
setupIntentLastSetupError'Source'TokenizationMethod :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | type: The \`type\` of the source. The \`type\` is a payment method, one of \`ach_credit_transfer\`, \`ach_debit\`, \`alipay\`, \`bancontact\`, \`card\`, \`card_present\`, \`eps\`, \`giropay\`, \`ideal\`, \`multibanco\`, \`klarna\`, \`p24\`, \`sepa_debit\`, \`sofort\`, \`three_d_secure\`, or \`wechat\`. An additional hash is included on the source with a name matching this value. It contains additional information specific to the [payment method](https:\/\/stripe.com\/docs\/sources) used.
    SetupIntentLastSetupError'Source'
-> Maybe SetupIntentLastSetupError'Source'Type'
setupIntentLastSetupError'Source'Type :: (GHC.Maybe.Maybe SetupIntentLastSetupError'Source'Type'),
    -- | usage: Either \`reusable\` or \`single_use\`. Whether this source should be reusable or not. Some source types may or may not be reusable by construction, while others may leave the option at creation. If an incompatible value is passed, an error will be returned.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    SetupIntentLastSetupError'Source' -> Maybe Text
setupIntentLastSetupError'Source'Usage :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | wechat
    SetupIntentLastSetupError'Source' -> Maybe SourceTypeWechat
setupIntentLastSetupError'Source'Wechat :: (GHC.Maybe.Maybe SourceTypeWechat)
  }
  deriving
    ( Int -> SetupIntentLastSetupError'Source' -> ShowS
[SetupIntentLastSetupError'Source'] -> ShowS
SetupIntentLastSetupError'Source' -> String
(Int -> SetupIntentLastSetupError'Source' -> ShowS)
-> (SetupIntentLastSetupError'Source' -> String)
-> ([SetupIntentLastSetupError'Source'] -> ShowS)
-> Show SetupIntentLastSetupError'Source'
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [SetupIntentLastSetupError'Source'] -> ShowS
$cshowList :: [SetupIntentLastSetupError'Source'] -> ShowS
show :: SetupIntentLastSetupError'Source' -> String
$cshow :: SetupIntentLastSetupError'Source' -> String
showsPrec :: Int -> SetupIntentLastSetupError'Source' -> ShowS
$cshowsPrec :: Int -> SetupIntentLastSetupError'Source' -> ShowS
GHC.Show.Show,
      SetupIntentLastSetupError'Source'
-> SetupIntentLastSetupError'Source' -> Bool
(SetupIntentLastSetupError'Source'
 -> SetupIntentLastSetupError'Source' -> Bool)
-> (SetupIntentLastSetupError'Source'
    -> SetupIntentLastSetupError'Source' -> Bool)
-> Eq SetupIntentLastSetupError'Source'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: SetupIntentLastSetupError'Source'
-> SetupIntentLastSetupError'Source' -> Bool
$c/= :: SetupIntentLastSetupError'Source'
-> SetupIntentLastSetupError'Source' -> Bool
== :: SetupIntentLastSetupError'Source'
-> SetupIntentLastSetupError'Source' -> Bool
$c== :: SetupIntentLastSetupError'Source'
-> SetupIntentLastSetupError'Source' -> Bool
GHC.Classes.Eq
    )

instance Data.Aeson.Types.ToJSON.ToJSON SetupIntentLastSetupError'Source' where
  toJSON :: SetupIntentLastSetupError'Source' -> Value
toJSON SetupIntentLastSetupError'Source'
obj = [Pair] -> Value
Data.Aeson.Types.Internal.object (Text
"account" Text
-> Maybe SetupIntentLastSetupError'Source'Account'Variants -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntentLastSetupError'Source'
-> Maybe SetupIntentLastSetupError'Source'Account'Variants
setupIntentLastSetupError'Source'Account SetupIntentLastSetupError'Source'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"account_holder_name" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntentLastSetupError'Source' -> Maybe Text
setupIntentLastSetupError'Source'AccountHolderName SetupIntentLastSetupError'Source'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"account_holder_type" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntentLastSetupError'Source' -> Maybe Text
setupIntentLastSetupError'Source'AccountHolderType SetupIntentLastSetupError'Source'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"ach_credit_transfer" Text -> Maybe SourceTypeAchCreditTransfer -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntentLastSetupError'Source'
-> Maybe SourceTypeAchCreditTransfer
setupIntentLastSetupError'Source'AchCreditTransfer SetupIntentLastSetupError'Source'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"ach_debit" Text -> Maybe SourceTypeAchDebit -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntentLastSetupError'Source' -> Maybe SourceTypeAchDebit
setupIntentLastSetupError'Source'AchDebit SetupIntentLastSetupError'Source'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"acss_debit" Text -> Maybe SourceTypeAcssDebit -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntentLastSetupError'Source' -> Maybe SourceTypeAcssDebit
setupIntentLastSetupError'Source'AcssDebit SetupIntentLastSetupError'Source'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"address_city" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntentLastSetupError'Source' -> Maybe Text
setupIntentLastSetupError'Source'AddressCity SetupIntentLastSetupError'Source'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"address_country" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntentLastSetupError'Source' -> Maybe Text
setupIntentLastSetupError'Source'AddressCountry SetupIntentLastSetupError'Source'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"address_line1" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntentLastSetupError'Source' -> Maybe Text
setupIntentLastSetupError'Source'AddressLine1 SetupIntentLastSetupError'Source'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"address_line1_check" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntentLastSetupError'Source' -> Maybe Text
setupIntentLastSetupError'Source'AddressLine1Check SetupIntentLastSetupError'Source'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"address_line2" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntentLastSetupError'Source' -> Maybe Text
setupIntentLastSetupError'Source'AddressLine2 SetupIntentLastSetupError'Source'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"address_state" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntentLastSetupError'Source' -> Maybe Text
setupIntentLastSetupError'Source'AddressState SetupIntentLastSetupError'Source'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"address_zip" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntentLastSetupError'Source' -> Maybe Text
setupIntentLastSetupError'Source'AddressZip SetupIntentLastSetupError'Source'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"address_zip_check" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntentLastSetupError'Source' -> Maybe Text
setupIntentLastSetupError'Source'AddressZipCheck SetupIntentLastSetupError'Source'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"alipay" Text -> Maybe SourceTypeAlipay -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntentLastSetupError'Source' -> Maybe SourceTypeAlipay
setupIntentLastSetupError'Source'Alipay SetupIntentLastSetupError'Source'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"amount" Text -> Maybe Int -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntentLastSetupError'Source' -> Maybe Int
setupIntentLastSetupError'Source'Amount SetupIntentLastSetupError'Source'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"au_becs_debit" Text -> Maybe SourceTypeAuBecsDebit -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntentLastSetupError'Source' -> Maybe SourceTypeAuBecsDebit
setupIntentLastSetupError'Source'AuBecsDebit SetupIntentLastSetupError'Source'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"available_payout_methods" Text
-> Maybe [SetupIntentLastSetupError'Source'AvailablePayoutMethods']
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntentLastSetupError'Source'
-> Maybe [SetupIntentLastSetupError'Source'AvailablePayoutMethods']
setupIntentLastSetupError'Source'AvailablePayoutMethods SetupIntentLastSetupError'Source'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"bancontact" Text -> Maybe SourceTypeBancontact -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntentLastSetupError'Source' -> Maybe SourceTypeBancontact
setupIntentLastSetupError'Source'Bancontact SetupIntentLastSetupError'Source'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"bank_name" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntentLastSetupError'Source' -> Maybe Text
setupIntentLastSetupError'Source'BankName SetupIntentLastSetupError'Source'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"brand" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntentLastSetupError'Source' -> Maybe Text
setupIntentLastSetupError'Source'Brand SetupIntentLastSetupError'Source'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"card" Text -> Maybe SourceTypeCard -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntentLastSetupError'Source' -> Maybe SourceTypeCard
setupIntentLastSetupError'Source'Card SetupIntentLastSetupError'Source'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"card_present" Text -> Maybe SourceTypeCardPresent -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntentLastSetupError'Source' -> Maybe SourceTypeCardPresent
setupIntentLastSetupError'Source'CardPresent SetupIntentLastSetupError'Source'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"client_secret" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntentLastSetupError'Source' -> Maybe Text
setupIntentLastSetupError'Source'ClientSecret SetupIntentLastSetupError'Source'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"code_verification" Text -> Maybe SourceCodeVerificationFlow -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntentLastSetupError'Source'
-> Maybe SourceCodeVerificationFlow
setupIntentLastSetupError'Source'CodeVerification SetupIntentLastSetupError'Source'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"country" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntentLastSetupError'Source' -> Maybe Text
setupIntentLastSetupError'Source'Country SetupIntentLastSetupError'Source'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"created" Text -> Maybe Int -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntentLastSetupError'Source' -> Maybe Int
setupIntentLastSetupError'Source'Created SetupIntentLastSetupError'Source'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"currency" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntentLastSetupError'Source' -> Maybe Text
setupIntentLastSetupError'Source'Currency SetupIntentLastSetupError'Source'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"customer" Text
-> Maybe SetupIntentLastSetupError'Source'Customer'Variants -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntentLastSetupError'Source'
-> Maybe SetupIntentLastSetupError'Source'Customer'Variants
setupIntentLastSetupError'Source'Customer SetupIntentLastSetupError'Source'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"cvc_check" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntentLastSetupError'Source' -> Maybe Text
setupIntentLastSetupError'Source'CvcCheck SetupIntentLastSetupError'Source'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"default_for_currency" Text -> Maybe Bool -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntentLastSetupError'Source' -> Maybe Bool
setupIntentLastSetupError'Source'DefaultForCurrency SetupIntentLastSetupError'Source'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"dynamic_last4" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntentLastSetupError'Source' -> Maybe Text
setupIntentLastSetupError'Source'DynamicLast4 SetupIntentLastSetupError'Source'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"eps" Text -> Maybe SourceTypeEps -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntentLastSetupError'Source' -> Maybe SourceTypeEps
setupIntentLastSetupError'Source'Eps SetupIntentLastSetupError'Source'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"exp_month" Text -> Maybe Int -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntentLastSetupError'Source' -> Maybe Int
setupIntentLastSetupError'Source'ExpMonth SetupIntentLastSetupError'Source'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"exp_year" Text -> Maybe Int -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntentLastSetupError'Source' -> Maybe Int
setupIntentLastSetupError'Source'ExpYear SetupIntentLastSetupError'Source'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"fingerprint" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntentLastSetupError'Source' -> Maybe Text
setupIntentLastSetupError'Source'Fingerprint SetupIntentLastSetupError'Source'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"flow" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntentLastSetupError'Source' -> Maybe Text
setupIntentLastSetupError'Source'Flow SetupIntentLastSetupError'Source'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"funding" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntentLastSetupError'Source' -> Maybe Text
setupIntentLastSetupError'Source'Funding SetupIntentLastSetupError'Source'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"giropay" Text -> Maybe SourceTypeGiropay -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntentLastSetupError'Source' -> Maybe SourceTypeGiropay
setupIntentLastSetupError'Source'Giropay SetupIntentLastSetupError'Source'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"id" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntentLastSetupError'Source' -> Maybe Text
setupIntentLastSetupError'Source'Id SetupIntentLastSetupError'Source'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"ideal" Text -> Maybe SourceTypeIdeal -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntentLastSetupError'Source' -> Maybe SourceTypeIdeal
setupIntentLastSetupError'Source'Ideal SetupIntentLastSetupError'Source'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"klarna" Text -> Maybe SourceTypeKlarna -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntentLastSetupError'Source' -> Maybe SourceTypeKlarna
setupIntentLastSetupError'Source'Klarna SetupIntentLastSetupError'Source'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"last4" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntentLastSetupError'Source' -> Maybe Text
setupIntentLastSetupError'Source'Last4 SetupIntentLastSetupError'Source'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"livemode" Text -> Maybe Bool -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntentLastSetupError'Source' -> Maybe Bool
setupIntentLastSetupError'Source'Livemode SetupIntentLastSetupError'Source'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"metadata" Text -> Maybe Object -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntentLastSetupError'Source' -> Maybe Object
setupIntentLastSetupError'Source'Metadata SetupIntentLastSetupError'Source'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"multibanco" Text -> Maybe SourceTypeMultibanco -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntentLastSetupError'Source' -> Maybe SourceTypeMultibanco
setupIntentLastSetupError'Source'Multibanco SetupIntentLastSetupError'Source'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"name" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntentLastSetupError'Source' -> Maybe Text
setupIntentLastSetupError'Source'Name SetupIntentLastSetupError'Source'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"object" Text -> Maybe SetupIntentLastSetupError'Source'Object' -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntentLastSetupError'Source'
-> Maybe SetupIntentLastSetupError'Source'Object'
setupIntentLastSetupError'Source'Object SetupIntentLastSetupError'Source'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"owner" Text -> Maybe SetupIntentLastSetupError'Source'Owner' -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntentLastSetupError'Source'
-> Maybe SetupIntentLastSetupError'Source'Owner'
setupIntentLastSetupError'Source'Owner SetupIntentLastSetupError'Source'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"p24" Text -> Maybe SourceTypeP24 -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntentLastSetupError'Source' -> Maybe SourceTypeP24
setupIntentLastSetupError'Source'P24 SetupIntentLastSetupError'Source'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"receiver" Text -> Maybe SourceReceiverFlow -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntentLastSetupError'Source' -> Maybe SourceReceiverFlow
setupIntentLastSetupError'Source'Receiver SetupIntentLastSetupError'Source'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"recipient" Text
-> Maybe SetupIntentLastSetupError'Source'Recipient'Variants
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntentLastSetupError'Source'
-> Maybe SetupIntentLastSetupError'Source'Recipient'Variants
setupIntentLastSetupError'Source'Recipient SetupIntentLastSetupError'Source'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"redirect" Text -> Maybe SourceRedirectFlow -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntentLastSetupError'Source' -> Maybe SourceRedirectFlow
setupIntentLastSetupError'Source'Redirect SetupIntentLastSetupError'Source'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"routing_number" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntentLastSetupError'Source' -> Maybe Text
setupIntentLastSetupError'Source'RoutingNumber SetupIntentLastSetupError'Source'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"sepa_debit" Text -> Maybe SourceTypeSepaDebit -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntentLastSetupError'Source' -> Maybe SourceTypeSepaDebit
setupIntentLastSetupError'Source'SepaDebit SetupIntentLastSetupError'Source'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"sofort" Text -> Maybe SourceTypeSofort -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntentLastSetupError'Source' -> Maybe SourceTypeSofort
setupIntentLastSetupError'Source'Sofort SetupIntentLastSetupError'Source'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"source_order" Text -> Maybe SourceOrder -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntentLastSetupError'Source' -> Maybe SourceOrder
setupIntentLastSetupError'Source'SourceOrder SetupIntentLastSetupError'Source'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"statement_descriptor" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntentLastSetupError'Source' -> Maybe Text
setupIntentLastSetupError'Source'StatementDescriptor SetupIntentLastSetupError'Source'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"status" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntentLastSetupError'Source' -> Maybe Text
setupIntentLastSetupError'Source'Status SetupIntentLastSetupError'Source'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"three_d_secure" Text -> Maybe SourceTypeThreeDSecure -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntentLastSetupError'Source' -> Maybe SourceTypeThreeDSecure
setupIntentLastSetupError'Source'ThreeDSecure SetupIntentLastSetupError'Source'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"tokenization_method" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntentLastSetupError'Source' -> Maybe Text
setupIntentLastSetupError'Source'TokenizationMethod SetupIntentLastSetupError'Source'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"type" Text -> Maybe SetupIntentLastSetupError'Source'Type' -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntentLastSetupError'Source'
-> Maybe SetupIntentLastSetupError'Source'Type'
setupIntentLastSetupError'Source'Type SetupIntentLastSetupError'Source'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"usage" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntentLastSetupError'Source' -> Maybe Text
setupIntentLastSetupError'Source'Usage SetupIntentLastSetupError'Source'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"wechat" Text -> Maybe SourceTypeWechat -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntentLastSetupError'Source' -> Maybe SourceTypeWechat
setupIntentLastSetupError'Source'Wechat SetupIntentLastSetupError'Source'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: SetupIntentLastSetupError'Source' -> Encoding
toEncoding SetupIntentLastSetupError'Source'
obj = Series -> Encoding
Data.Aeson.Encoding.Internal.pairs ((Text
"account" Text
-> Maybe SetupIntentLastSetupError'Source'Account'Variants
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntentLastSetupError'Source'
-> Maybe SetupIntentLastSetupError'Source'Account'Variants
setupIntentLastSetupError'Source'Account SetupIntentLastSetupError'Source'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"account_holder_name" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntentLastSetupError'Source' -> Maybe Text
setupIntentLastSetupError'Source'AccountHolderName SetupIntentLastSetupError'Source'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"account_holder_type" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntentLastSetupError'Source' -> Maybe Text
setupIntentLastSetupError'Source'AccountHolderType SetupIntentLastSetupError'Source'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"ach_credit_transfer" Text -> Maybe SourceTypeAchCreditTransfer -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntentLastSetupError'Source'
-> Maybe SourceTypeAchCreditTransfer
setupIntentLastSetupError'Source'AchCreditTransfer SetupIntentLastSetupError'Source'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"ach_debit" Text -> Maybe SourceTypeAchDebit -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntentLastSetupError'Source' -> Maybe SourceTypeAchDebit
setupIntentLastSetupError'Source'AchDebit SetupIntentLastSetupError'Source'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"acss_debit" Text -> Maybe SourceTypeAcssDebit -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntentLastSetupError'Source' -> Maybe SourceTypeAcssDebit
setupIntentLastSetupError'Source'AcssDebit SetupIntentLastSetupError'Source'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"address_city" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntentLastSetupError'Source' -> Maybe Text
setupIntentLastSetupError'Source'AddressCity SetupIntentLastSetupError'Source'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"address_country" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntentLastSetupError'Source' -> Maybe Text
setupIntentLastSetupError'Source'AddressCountry SetupIntentLastSetupError'Source'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"address_line1" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntentLastSetupError'Source' -> Maybe Text
setupIntentLastSetupError'Source'AddressLine1 SetupIntentLastSetupError'Source'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"address_line1_check" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntentLastSetupError'Source' -> Maybe Text
setupIntentLastSetupError'Source'AddressLine1Check SetupIntentLastSetupError'Source'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"address_line2" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntentLastSetupError'Source' -> Maybe Text
setupIntentLastSetupError'Source'AddressLine2 SetupIntentLastSetupError'Source'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"address_state" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntentLastSetupError'Source' -> Maybe Text
setupIntentLastSetupError'Source'AddressState SetupIntentLastSetupError'Source'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"address_zip" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntentLastSetupError'Source' -> Maybe Text
setupIntentLastSetupError'Source'AddressZip SetupIntentLastSetupError'Source'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"address_zip_check" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntentLastSetupError'Source' -> Maybe Text
setupIntentLastSetupError'Source'AddressZipCheck SetupIntentLastSetupError'Source'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"alipay" Text -> Maybe SourceTypeAlipay -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntentLastSetupError'Source' -> Maybe SourceTypeAlipay
setupIntentLastSetupError'Source'Alipay SetupIntentLastSetupError'Source'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"amount" Text -> Maybe Int -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntentLastSetupError'Source' -> Maybe Int
setupIntentLastSetupError'Source'Amount SetupIntentLastSetupError'Source'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"au_becs_debit" Text -> Maybe SourceTypeAuBecsDebit -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntentLastSetupError'Source' -> Maybe SourceTypeAuBecsDebit
setupIntentLastSetupError'Source'AuBecsDebit SetupIntentLastSetupError'Source'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"available_payout_methods" Text
-> Maybe [SetupIntentLastSetupError'Source'AvailablePayoutMethods']
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntentLastSetupError'Source'
-> Maybe [SetupIntentLastSetupError'Source'AvailablePayoutMethods']
setupIntentLastSetupError'Source'AvailablePayoutMethods SetupIntentLastSetupError'Source'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"bancontact" Text -> Maybe SourceTypeBancontact -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntentLastSetupError'Source' -> Maybe SourceTypeBancontact
setupIntentLastSetupError'Source'Bancontact SetupIntentLastSetupError'Source'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"bank_name" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntentLastSetupError'Source' -> Maybe Text
setupIntentLastSetupError'Source'BankName SetupIntentLastSetupError'Source'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"brand" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntentLastSetupError'Source' -> Maybe Text
setupIntentLastSetupError'Source'Brand SetupIntentLastSetupError'Source'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"card" Text -> Maybe SourceTypeCard -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntentLastSetupError'Source' -> Maybe SourceTypeCard
setupIntentLastSetupError'Source'Card SetupIntentLastSetupError'Source'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"card_present" Text -> Maybe SourceTypeCardPresent -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntentLastSetupError'Source' -> Maybe SourceTypeCardPresent
setupIntentLastSetupError'Source'CardPresent SetupIntentLastSetupError'Source'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"client_secret" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntentLastSetupError'Source' -> Maybe Text
setupIntentLastSetupError'Source'ClientSecret SetupIntentLastSetupError'Source'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"code_verification" Text -> Maybe SourceCodeVerificationFlow -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntentLastSetupError'Source'
-> Maybe SourceCodeVerificationFlow
setupIntentLastSetupError'Source'CodeVerification SetupIntentLastSetupError'Source'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"country" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntentLastSetupError'Source' -> Maybe Text
setupIntentLastSetupError'Source'Country SetupIntentLastSetupError'Source'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"created" Text -> Maybe Int -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntentLastSetupError'Source' -> Maybe Int
setupIntentLastSetupError'Source'Created SetupIntentLastSetupError'Source'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"currency" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntentLastSetupError'Source' -> Maybe Text
setupIntentLastSetupError'Source'Currency SetupIntentLastSetupError'Source'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"customer" Text
-> Maybe SetupIntentLastSetupError'Source'Customer'Variants
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntentLastSetupError'Source'
-> Maybe SetupIntentLastSetupError'Source'Customer'Variants
setupIntentLastSetupError'Source'Customer SetupIntentLastSetupError'Source'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"cvc_check" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntentLastSetupError'Source' -> Maybe Text
setupIntentLastSetupError'Source'CvcCheck SetupIntentLastSetupError'Source'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"default_for_currency" Text -> Maybe Bool -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntentLastSetupError'Source' -> Maybe Bool
setupIntentLastSetupError'Source'DefaultForCurrency SetupIntentLastSetupError'Source'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"dynamic_last4" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntentLastSetupError'Source' -> Maybe Text
setupIntentLastSetupError'Source'DynamicLast4 SetupIntentLastSetupError'Source'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"eps" Text -> Maybe SourceTypeEps -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntentLastSetupError'Source' -> Maybe SourceTypeEps
setupIntentLastSetupError'Source'Eps SetupIntentLastSetupError'Source'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"exp_month" Text -> Maybe Int -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntentLastSetupError'Source' -> Maybe Int
setupIntentLastSetupError'Source'ExpMonth SetupIntentLastSetupError'Source'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"exp_year" Text -> Maybe Int -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntentLastSetupError'Source' -> Maybe Int
setupIntentLastSetupError'Source'ExpYear SetupIntentLastSetupError'Source'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"fingerprint" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntentLastSetupError'Source' -> Maybe Text
setupIntentLastSetupError'Source'Fingerprint SetupIntentLastSetupError'Source'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"flow" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntentLastSetupError'Source' -> Maybe Text
setupIntentLastSetupError'Source'Flow SetupIntentLastSetupError'Source'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"funding" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntentLastSetupError'Source' -> Maybe Text
setupIntentLastSetupError'Source'Funding SetupIntentLastSetupError'Source'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"giropay" Text -> Maybe SourceTypeGiropay -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntentLastSetupError'Source' -> Maybe SourceTypeGiropay
setupIntentLastSetupError'Source'Giropay SetupIntentLastSetupError'Source'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"id" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntentLastSetupError'Source' -> Maybe Text
setupIntentLastSetupError'Source'Id SetupIntentLastSetupError'Source'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"ideal" Text -> Maybe SourceTypeIdeal -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntentLastSetupError'Source' -> Maybe SourceTypeIdeal
setupIntentLastSetupError'Source'Ideal SetupIntentLastSetupError'Source'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"klarna" Text -> Maybe SourceTypeKlarna -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntentLastSetupError'Source' -> Maybe SourceTypeKlarna
setupIntentLastSetupError'Source'Klarna SetupIntentLastSetupError'Source'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"last4" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntentLastSetupError'Source' -> Maybe Text
setupIntentLastSetupError'Source'Last4 SetupIntentLastSetupError'Source'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"livemode" Text -> Maybe Bool -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntentLastSetupError'Source' -> Maybe Bool
setupIntentLastSetupError'Source'Livemode SetupIntentLastSetupError'Source'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"metadata" Text -> Maybe Object -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntentLastSetupError'Source' -> Maybe Object
setupIntentLastSetupError'Source'Metadata SetupIntentLastSetupError'Source'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"multibanco" Text -> Maybe SourceTypeMultibanco -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntentLastSetupError'Source' -> Maybe SourceTypeMultibanco
setupIntentLastSetupError'Source'Multibanco SetupIntentLastSetupError'Source'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"name" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntentLastSetupError'Source' -> Maybe Text
setupIntentLastSetupError'Source'Name SetupIntentLastSetupError'Source'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"object" Text -> Maybe SetupIntentLastSetupError'Source'Object' -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntentLastSetupError'Source'
-> Maybe SetupIntentLastSetupError'Source'Object'
setupIntentLastSetupError'Source'Object SetupIntentLastSetupError'Source'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"owner" Text -> Maybe SetupIntentLastSetupError'Source'Owner' -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntentLastSetupError'Source'
-> Maybe SetupIntentLastSetupError'Source'Owner'
setupIntentLastSetupError'Source'Owner SetupIntentLastSetupError'Source'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"p24" Text -> Maybe SourceTypeP24 -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntentLastSetupError'Source' -> Maybe SourceTypeP24
setupIntentLastSetupError'Source'P24 SetupIntentLastSetupError'Source'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"receiver" Text -> Maybe SourceReceiverFlow -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntentLastSetupError'Source' -> Maybe SourceReceiverFlow
setupIntentLastSetupError'Source'Receiver SetupIntentLastSetupError'Source'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"recipient" Text
-> Maybe SetupIntentLastSetupError'Source'Recipient'Variants
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntentLastSetupError'Source'
-> Maybe SetupIntentLastSetupError'Source'Recipient'Variants
setupIntentLastSetupError'Source'Recipient SetupIntentLastSetupError'Source'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"redirect" Text -> Maybe SourceRedirectFlow -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntentLastSetupError'Source' -> Maybe SourceRedirectFlow
setupIntentLastSetupError'Source'Redirect SetupIntentLastSetupError'Source'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"routing_number" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntentLastSetupError'Source' -> Maybe Text
setupIntentLastSetupError'Source'RoutingNumber SetupIntentLastSetupError'Source'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"sepa_debit" Text -> Maybe SourceTypeSepaDebit -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntentLastSetupError'Source' -> Maybe SourceTypeSepaDebit
setupIntentLastSetupError'Source'SepaDebit SetupIntentLastSetupError'Source'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"sofort" Text -> Maybe SourceTypeSofort -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntentLastSetupError'Source' -> Maybe SourceTypeSofort
setupIntentLastSetupError'Source'Sofort SetupIntentLastSetupError'Source'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"source_order" Text -> Maybe SourceOrder -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntentLastSetupError'Source' -> Maybe SourceOrder
setupIntentLastSetupError'Source'SourceOrder SetupIntentLastSetupError'Source'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"statement_descriptor" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntentLastSetupError'Source' -> Maybe Text
setupIntentLastSetupError'Source'StatementDescriptor SetupIntentLastSetupError'Source'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"status" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntentLastSetupError'Source' -> Maybe Text
setupIntentLastSetupError'Source'Status SetupIntentLastSetupError'Source'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"three_d_secure" Text -> Maybe SourceTypeThreeDSecure -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntentLastSetupError'Source' -> Maybe SourceTypeThreeDSecure
setupIntentLastSetupError'Source'ThreeDSecure SetupIntentLastSetupError'Source'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"tokenization_method" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntentLastSetupError'Source' -> Maybe Text
setupIntentLastSetupError'Source'TokenizationMethod SetupIntentLastSetupError'Source'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"type" Text -> Maybe SetupIntentLastSetupError'Source'Type' -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntentLastSetupError'Source'
-> Maybe SetupIntentLastSetupError'Source'Type'
setupIntentLastSetupError'Source'Type SetupIntentLastSetupError'Source'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"usage" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntentLastSetupError'Source' -> Maybe Text
setupIntentLastSetupError'Source'Usage SetupIntentLastSetupError'Source'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> (Text
"wechat" Text -> Maybe SourceTypeWechat -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntentLastSetupError'Source' -> Maybe SourceTypeWechat
setupIntentLastSetupError'Source'Wechat SetupIntentLastSetupError'Source'
obj))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))

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

-- | Create a new 'SetupIntentLastSetupError'Source'' with all required fields.
mkSetupIntentLastSetupError'Source' :: SetupIntentLastSetupError'Source'
mkSetupIntentLastSetupError'Source' :: SetupIntentLastSetupError'Source'
mkSetupIntentLastSetupError'Source' =
  SetupIntentLastSetupError'Source' :: Maybe SetupIntentLastSetupError'Source'Account'Variants
-> Maybe Text
-> Maybe Text
-> Maybe SourceTypeAchCreditTransfer
-> Maybe SourceTypeAchDebit
-> Maybe SourceTypeAcssDebit
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe SourceTypeAlipay
-> Maybe Int
-> Maybe SourceTypeAuBecsDebit
-> Maybe [SetupIntentLastSetupError'Source'AvailablePayoutMethods']
-> Maybe SourceTypeBancontact
-> Maybe Text
-> Maybe Text
-> Maybe SourceTypeCard
-> Maybe SourceTypeCardPresent
-> Maybe Text
-> Maybe SourceCodeVerificationFlow
-> Maybe Text
-> Maybe Int
-> Maybe Text
-> Maybe SetupIntentLastSetupError'Source'Customer'Variants
-> Maybe Text
-> Maybe Bool
-> Maybe Text
-> Maybe SourceTypeEps
-> Maybe Int
-> Maybe Int
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe SourceTypeGiropay
-> Maybe Text
-> Maybe SourceTypeIdeal
-> Maybe SourceTypeKlarna
-> Maybe Text
-> Maybe Bool
-> Maybe Object
-> Maybe SourceTypeMultibanco
-> Maybe Text
-> Maybe SetupIntentLastSetupError'Source'Object'
-> Maybe SetupIntentLastSetupError'Source'Owner'
-> Maybe SourceTypeP24
-> Maybe SourceReceiverFlow
-> Maybe SetupIntentLastSetupError'Source'Recipient'Variants
-> Maybe SourceRedirectFlow
-> Maybe Text
-> Maybe SourceTypeSepaDebit
-> Maybe SourceTypeSofort
-> Maybe SourceOrder
-> Maybe Text
-> Maybe Text
-> Maybe SourceTypeThreeDSecure
-> Maybe Text
-> Maybe SetupIntentLastSetupError'Source'Type'
-> Maybe Text
-> Maybe SourceTypeWechat
-> SetupIntentLastSetupError'Source'
SetupIntentLastSetupError'Source'
    { setupIntentLastSetupError'Source'Account :: Maybe SetupIntentLastSetupError'Source'Account'Variants
setupIntentLastSetupError'Source'Account = Maybe SetupIntentLastSetupError'Source'Account'Variants
forall a. Maybe a
GHC.Maybe.Nothing,
      setupIntentLastSetupError'Source'AccountHolderName :: Maybe Text
setupIntentLastSetupError'Source'AccountHolderName = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      setupIntentLastSetupError'Source'AccountHolderType :: Maybe Text
setupIntentLastSetupError'Source'AccountHolderType = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      setupIntentLastSetupError'Source'AchCreditTransfer :: Maybe SourceTypeAchCreditTransfer
setupIntentLastSetupError'Source'AchCreditTransfer = Maybe SourceTypeAchCreditTransfer
forall a. Maybe a
GHC.Maybe.Nothing,
      setupIntentLastSetupError'Source'AchDebit :: Maybe SourceTypeAchDebit
setupIntentLastSetupError'Source'AchDebit = Maybe SourceTypeAchDebit
forall a. Maybe a
GHC.Maybe.Nothing,
      setupIntentLastSetupError'Source'AcssDebit :: Maybe SourceTypeAcssDebit
setupIntentLastSetupError'Source'AcssDebit = Maybe SourceTypeAcssDebit
forall a. Maybe a
GHC.Maybe.Nothing,
      setupIntentLastSetupError'Source'AddressCity :: Maybe Text
setupIntentLastSetupError'Source'AddressCity = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      setupIntentLastSetupError'Source'AddressCountry :: Maybe Text
setupIntentLastSetupError'Source'AddressCountry = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      setupIntentLastSetupError'Source'AddressLine1 :: Maybe Text
setupIntentLastSetupError'Source'AddressLine1 = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      setupIntentLastSetupError'Source'AddressLine1Check :: Maybe Text
setupIntentLastSetupError'Source'AddressLine1Check = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      setupIntentLastSetupError'Source'AddressLine2 :: Maybe Text
setupIntentLastSetupError'Source'AddressLine2 = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      setupIntentLastSetupError'Source'AddressState :: Maybe Text
setupIntentLastSetupError'Source'AddressState = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      setupIntentLastSetupError'Source'AddressZip :: Maybe Text
setupIntentLastSetupError'Source'AddressZip = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      setupIntentLastSetupError'Source'AddressZipCheck :: Maybe Text
setupIntentLastSetupError'Source'AddressZipCheck = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      setupIntentLastSetupError'Source'Alipay :: Maybe SourceTypeAlipay
setupIntentLastSetupError'Source'Alipay = Maybe SourceTypeAlipay
forall a. Maybe a
GHC.Maybe.Nothing,
      setupIntentLastSetupError'Source'Amount :: Maybe Int
setupIntentLastSetupError'Source'Amount = Maybe Int
forall a. Maybe a
GHC.Maybe.Nothing,
      setupIntentLastSetupError'Source'AuBecsDebit :: Maybe SourceTypeAuBecsDebit
setupIntentLastSetupError'Source'AuBecsDebit = Maybe SourceTypeAuBecsDebit
forall a. Maybe a
GHC.Maybe.Nothing,
      setupIntentLastSetupError'Source'AvailablePayoutMethods :: Maybe [SetupIntentLastSetupError'Source'AvailablePayoutMethods']
setupIntentLastSetupError'Source'AvailablePayoutMethods = Maybe [SetupIntentLastSetupError'Source'AvailablePayoutMethods']
forall a. Maybe a
GHC.Maybe.Nothing,
      setupIntentLastSetupError'Source'Bancontact :: Maybe SourceTypeBancontact
setupIntentLastSetupError'Source'Bancontact = Maybe SourceTypeBancontact
forall a. Maybe a
GHC.Maybe.Nothing,
      setupIntentLastSetupError'Source'BankName :: Maybe Text
setupIntentLastSetupError'Source'BankName = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      setupIntentLastSetupError'Source'Brand :: Maybe Text
setupIntentLastSetupError'Source'Brand = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      setupIntentLastSetupError'Source'Card :: Maybe SourceTypeCard
setupIntentLastSetupError'Source'Card = Maybe SourceTypeCard
forall a. Maybe a
GHC.Maybe.Nothing,
      setupIntentLastSetupError'Source'CardPresent :: Maybe SourceTypeCardPresent
setupIntentLastSetupError'Source'CardPresent = Maybe SourceTypeCardPresent
forall a. Maybe a
GHC.Maybe.Nothing,
      setupIntentLastSetupError'Source'ClientSecret :: Maybe Text
setupIntentLastSetupError'Source'ClientSecret = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      setupIntentLastSetupError'Source'CodeVerification :: Maybe SourceCodeVerificationFlow
setupIntentLastSetupError'Source'CodeVerification = Maybe SourceCodeVerificationFlow
forall a. Maybe a
GHC.Maybe.Nothing,
      setupIntentLastSetupError'Source'Country :: Maybe Text
setupIntentLastSetupError'Source'Country = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      setupIntentLastSetupError'Source'Created :: Maybe Int
setupIntentLastSetupError'Source'Created = Maybe Int
forall a. Maybe a
GHC.Maybe.Nothing,
      setupIntentLastSetupError'Source'Currency :: Maybe Text
setupIntentLastSetupError'Source'Currency = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      setupIntentLastSetupError'Source'Customer :: Maybe SetupIntentLastSetupError'Source'Customer'Variants
setupIntentLastSetupError'Source'Customer = Maybe SetupIntentLastSetupError'Source'Customer'Variants
forall a. Maybe a
GHC.Maybe.Nothing,
      setupIntentLastSetupError'Source'CvcCheck :: Maybe Text
setupIntentLastSetupError'Source'CvcCheck = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      setupIntentLastSetupError'Source'DefaultForCurrency :: Maybe Bool
setupIntentLastSetupError'Source'DefaultForCurrency = Maybe Bool
forall a. Maybe a
GHC.Maybe.Nothing,
      setupIntentLastSetupError'Source'DynamicLast4 :: Maybe Text
setupIntentLastSetupError'Source'DynamicLast4 = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      setupIntentLastSetupError'Source'Eps :: Maybe SourceTypeEps
setupIntentLastSetupError'Source'Eps = Maybe SourceTypeEps
forall a. Maybe a
GHC.Maybe.Nothing,
      setupIntentLastSetupError'Source'ExpMonth :: Maybe Int
setupIntentLastSetupError'Source'ExpMonth = Maybe Int
forall a. Maybe a
GHC.Maybe.Nothing,
      setupIntentLastSetupError'Source'ExpYear :: Maybe Int
setupIntentLastSetupError'Source'ExpYear = Maybe Int
forall a. Maybe a
GHC.Maybe.Nothing,
      setupIntentLastSetupError'Source'Fingerprint :: Maybe Text
setupIntentLastSetupError'Source'Fingerprint = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      setupIntentLastSetupError'Source'Flow :: Maybe Text
setupIntentLastSetupError'Source'Flow = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      setupIntentLastSetupError'Source'Funding :: Maybe Text
setupIntentLastSetupError'Source'Funding = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      setupIntentLastSetupError'Source'Giropay :: Maybe SourceTypeGiropay
setupIntentLastSetupError'Source'Giropay = Maybe SourceTypeGiropay
forall a. Maybe a
GHC.Maybe.Nothing,
      setupIntentLastSetupError'Source'Id :: Maybe Text
setupIntentLastSetupError'Source'Id = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      setupIntentLastSetupError'Source'Ideal :: Maybe SourceTypeIdeal
setupIntentLastSetupError'Source'Ideal = Maybe SourceTypeIdeal
forall a. Maybe a
GHC.Maybe.Nothing,
      setupIntentLastSetupError'Source'Klarna :: Maybe SourceTypeKlarna
setupIntentLastSetupError'Source'Klarna = Maybe SourceTypeKlarna
forall a. Maybe a
GHC.Maybe.Nothing,
      setupIntentLastSetupError'Source'Last4 :: Maybe Text
setupIntentLastSetupError'Source'Last4 = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      setupIntentLastSetupError'Source'Livemode :: Maybe Bool
setupIntentLastSetupError'Source'Livemode = Maybe Bool
forall a. Maybe a
GHC.Maybe.Nothing,
      setupIntentLastSetupError'Source'Metadata :: Maybe Object
setupIntentLastSetupError'Source'Metadata = Maybe Object
forall a. Maybe a
GHC.Maybe.Nothing,
      setupIntentLastSetupError'Source'Multibanco :: Maybe SourceTypeMultibanco
setupIntentLastSetupError'Source'Multibanco = Maybe SourceTypeMultibanco
forall a. Maybe a
GHC.Maybe.Nothing,
      setupIntentLastSetupError'Source'Name :: Maybe Text
setupIntentLastSetupError'Source'Name = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      setupIntentLastSetupError'Source'Object :: Maybe SetupIntentLastSetupError'Source'Object'
setupIntentLastSetupError'Source'Object = Maybe SetupIntentLastSetupError'Source'Object'
forall a. Maybe a
GHC.Maybe.Nothing,
      setupIntentLastSetupError'Source'Owner :: Maybe SetupIntentLastSetupError'Source'Owner'
setupIntentLastSetupError'Source'Owner = Maybe SetupIntentLastSetupError'Source'Owner'
forall a. Maybe a
GHC.Maybe.Nothing,
      setupIntentLastSetupError'Source'P24 :: Maybe SourceTypeP24
setupIntentLastSetupError'Source'P24 = Maybe SourceTypeP24
forall a. Maybe a
GHC.Maybe.Nothing,
      setupIntentLastSetupError'Source'Receiver :: Maybe SourceReceiverFlow
setupIntentLastSetupError'Source'Receiver = Maybe SourceReceiverFlow
forall a. Maybe a
GHC.Maybe.Nothing,
      setupIntentLastSetupError'Source'Recipient :: Maybe SetupIntentLastSetupError'Source'Recipient'Variants
setupIntentLastSetupError'Source'Recipient = Maybe SetupIntentLastSetupError'Source'Recipient'Variants
forall a. Maybe a
GHC.Maybe.Nothing,
      setupIntentLastSetupError'Source'Redirect :: Maybe SourceRedirectFlow
setupIntentLastSetupError'Source'Redirect = Maybe SourceRedirectFlow
forall a. Maybe a
GHC.Maybe.Nothing,
      setupIntentLastSetupError'Source'RoutingNumber :: Maybe Text
setupIntentLastSetupError'Source'RoutingNumber = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      setupIntentLastSetupError'Source'SepaDebit :: Maybe SourceTypeSepaDebit
setupIntentLastSetupError'Source'SepaDebit = Maybe SourceTypeSepaDebit
forall a. Maybe a
GHC.Maybe.Nothing,
      setupIntentLastSetupError'Source'Sofort :: Maybe SourceTypeSofort
setupIntentLastSetupError'Source'Sofort = Maybe SourceTypeSofort
forall a. Maybe a
GHC.Maybe.Nothing,
      setupIntentLastSetupError'Source'SourceOrder :: Maybe SourceOrder
setupIntentLastSetupError'Source'SourceOrder = Maybe SourceOrder
forall a. Maybe a
GHC.Maybe.Nothing,
      setupIntentLastSetupError'Source'StatementDescriptor :: Maybe Text
setupIntentLastSetupError'Source'StatementDescriptor = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      setupIntentLastSetupError'Source'Status :: Maybe Text
setupIntentLastSetupError'Source'Status = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      setupIntentLastSetupError'Source'ThreeDSecure :: Maybe SourceTypeThreeDSecure
setupIntentLastSetupError'Source'ThreeDSecure = Maybe SourceTypeThreeDSecure
forall a. Maybe a
GHC.Maybe.Nothing,
      setupIntentLastSetupError'Source'TokenizationMethod :: Maybe Text
setupIntentLastSetupError'Source'TokenizationMethod = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      setupIntentLastSetupError'Source'Type :: Maybe SetupIntentLastSetupError'Source'Type'
setupIntentLastSetupError'Source'Type = Maybe SetupIntentLastSetupError'Source'Type'
forall a. Maybe a
GHC.Maybe.Nothing,
      setupIntentLastSetupError'Source'Usage :: Maybe Text
setupIntentLastSetupError'Source'Usage = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      setupIntentLastSetupError'Source'Wechat :: Maybe SourceTypeWechat
setupIntentLastSetupError'Source'Wechat = Maybe SourceTypeWechat
forall a. Maybe a
GHC.Maybe.Nothing
    }

-- | Defines the oneOf schema located at @components.schemas.setup_intent.properties.last_setup_error.anyOf.properties.source.anyOf.properties.account.anyOf@ in the specification.
--
-- The ID of the account that the bank account is associated with.
data SetupIntentLastSetupError'Source'Account'Variants
  = SetupIntentLastSetupError'Source'Account'Text Data.Text.Internal.Text
  | SetupIntentLastSetupError'Source'Account'Account Account
  deriving (Int -> SetupIntentLastSetupError'Source'Account'Variants -> ShowS
[SetupIntentLastSetupError'Source'Account'Variants] -> ShowS
SetupIntentLastSetupError'Source'Account'Variants -> String
(Int -> SetupIntentLastSetupError'Source'Account'Variants -> ShowS)
-> (SetupIntentLastSetupError'Source'Account'Variants -> String)
-> ([SetupIntentLastSetupError'Source'Account'Variants] -> ShowS)
-> Show SetupIntentLastSetupError'Source'Account'Variants
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [SetupIntentLastSetupError'Source'Account'Variants] -> ShowS
$cshowList :: [SetupIntentLastSetupError'Source'Account'Variants] -> ShowS
show :: SetupIntentLastSetupError'Source'Account'Variants -> String
$cshow :: SetupIntentLastSetupError'Source'Account'Variants -> String
showsPrec :: Int -> SetupIntentLastSetupError'Source'Account'Variants -> ShowS
$cshowsPrec :: Int -> SetupIntentLastSetupError'Source'Account'Variants -> ShowS
GHC.Show.Show, SetupIntentLastSetupError'Source'Account'Variants
-> SetupIntentLastSetupError'Source'Account'Variants -> Bool
(SetupIntentLastSetupError'Source'Account'Variants
 -> SetupIntentLastSetupError'Source'Account'Variants -> Bool)
-> (SetupIntentLastSetupError'Source'Account'Variants
    -> SetupIntentLastSetupError'Source'Account'Variants -> Bool)
-> Eq SetupIntentLastSetupError'Source'Account'Variants
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: SetupIntentLastSetupError'Source'Account'Variants
-> SetupIntentLastSetupError'Source'Account'Variants -> Bool
$c/= :: SetupIntentLastSetupError'Source'Account'Variants
-> SetupIntentLastSetupError'Source'Account'Variants -> Bool
== :: SetupIntentLastSetupError'Source'Account'Variants
-> SetupIntentLastSetupError'Source'Account'Variants -> Bool
$c== :: SetupIntentLastSetupError'Source'Account'Variants
-> SetupIntentLastSetupError'Source'Account'Variants -> Bool
GHC.Classes.Eq)

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

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

-- | Defines the enum schema located at @components.schemas.setup_intent.properties.last_setup_error.anyOf.properties.source.anyOf.properties.available_payout_methods.items@ in the specification.
data SetupIntentLastSetupError'Source'AvailablePayoutMethods'
  = -- | This case is used if the value encountered during decoding does not match any of the provided cases in the specification.
    SetupIntentLastSetupError'Source'AvailablePayoutMethods'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.
    SetupIntentLastSetupError'Source'AvailablePayoutMethods'Typed Data.Text.Internal.Text
  | -- | Represents the JSON value @"instant"@
    SetupIntentLastSetupError'Source'AvailablePayoutMethods'EnumInstant
  | -- | Represents the JSON value @"standard"@
    SetupIntentLastSetupError'Source'AvailablePayoutMethods'EnumStandard
  deriving (Int
-> SetupIntentLastSetupError'Source'AvailablePayoutMethods'
-> ShowS
[SetupIntentLastSetupError'Source'AvailablePayoutMethods'] -> ShowS
SetupIntentLastSetupError'Source'AvailablePayoutMethods' -> String
(Int
 -> SetupIntentLastSetupError'Source'AvailablePayoutMethods'
 -> ShowS)
-> (SetupIntentLastSetupError'Source'AvailablePayoutMethods'
    -> String)
-> ([SetupIntentLastSetupError'Source'AvailablePayoutMethods']
    -> ShowS)
-> Show SetupIntentLastSetupError'Source'AvailablePayoutMethods'
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [SetupIntentLastSetupError'Source'AvailablePayoutMethods'] -> ShowS
$cshowList :: [SetupIntentLastSetupError'Source'AvailablePayoutMethods'] -> ShowS
show :: SetupIntentLastSetupError'Source'AvailablePayoutMethods' -> String
$cshow :: SetupIntentLastSetupError'Source'AvailablePayoutMethods' -> String
showsPrec :: Int
-> SetupIntentLastSetupError'Source'AvailablePayoutMethods'
-> ShowS
$cshowsPrec :: Int
-> SetupIntentLastSetupError'Source'AvailablePayoutMethods'
-> ShowS
GHC.Show.Show, SetupIntentLastSetupError'Source'AvailablePayoutMethods'
-> SetupIntentLastSetupError'Source'AvailablePayoutMethods' -> Bool
(SetupIntentLastSetupError'Source'AvailablePayoutMethods'
 -> SetupIntentLastSetupError'Source'AvailablePayoutMethods'
 -> Bool)
-> (SetupIntentLastSetupError'Source'AvailablePayoutMethods'
    -> SetupIntentLastSetupError'Source'AvailablePayoutMethods'
    -> Bool)
-> Eq SetupIntentLastSetupError'Source'AvailablePayoutMethods'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: SetupIntentLastSetupError'Source'AvailablePayoutMethods'
-> SetupIntentLastSetupError'Source'AvailablePayoutMethods' -> Bool
$c/= :: SetupIntentLastSetupError'Source'AvailablePayoutMethods'
-> SetupIntentLastSetupError'Source'AvailablePayoutMethods' -> Bool
== :: SetupIntentLastSetupError'Source'AvailablePayoutMethods'
-> SetupIntentLastSetupError'Source'AvailablePayoutMethods' -> Bool
$c== :: SetupIntentLastSetupError'Source'AvailablePayoutMethods'
-> SetupIntentLastSetupError'Source'AvailablePayoutMethods' -> Bool
GHC.Classes.Eq)

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

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

-- | Defines the oneOf schema located at @components.schemas.setup_intent.properties.last_setup_error.anyOf.properties.source.anyOf.properties.customer.anyOf@ in the specification.
--
-- The ID of the customer that the bank account is associated with.
data SetupIntentLastSetupError'Source'Customer'Variants
  = SetupIntentLastSetupError'Source'Customer'Text Data.Text.Internal.Text
  | SetupIntentLastSetupError'Source'Customer'Customer Customer
  | SetupIntentLastSetupError'Source'Customer'DeletedCustomer DeletedCustomer
  deriving (Int -> SetupIntentLastSetupError'Source'Customer'Variants -> ShowS
[SetupIntentLastSetupError'Source'Customer'Variants] -> ShowS
SetupIntentLastSetupError'Source'Customer'Variants -> String
(Int
 -> SetupIntentLastSetupError'Source'Customer'Variants -> ShowS)
-> (SetupIntentLastSetupError'Source'Customer'Variants -> String)
-> ([SetupIntentLastSetupError'Source'Customer'Variants] -> ShowS)
-> Show SetupIntentLastSetupError'Source'Customer'Variants
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [SetupIntentLastSetupError'Source'Customer'Variants] -> ShowS
$cshowList :: [SetupIntentLastSetupError'Source'Customer'Variants] -> ShowS
show :: SetupIntentLastSetupError'Source'Customer'Variants -> String
$cshow :: SetupIntentLastSetupError'Source'Customer'Variants -> String
showsPrec :: Int -> SetupIntentLastSetupError'Source'Customer'Variants -> ShowS
$cshowsPrec :: Int -> SetupIntentLastSetupError'Source'Customer'Variants -> ShowS
GHC.Show.Show, SetupIntentLastSetupError'Source'Customer'Variants
-> SetupIntentLastSetupError'Source'Customer'Variants -> Bool
(SetupIntentLastSetupError'Source'Customer'Variants
 -> SetupIntentLastSetupError'Source'Customer'Variants -> Bool)
-> (SetupIntentLastSetupError'Source'Customer'Variants
    -> SetupIntentLastSetupError'Source'Customer'Variants -> Bool)
-> Eq SetupIntentLastSetupError'Source'Customer'Variants
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: SetupIntentLastSetupError'Source'Customer'Variants
-> SetupIntentLastSetupError'Source'Customer'Variants -> Bool
$c/= :: SetupIntentLastSetupError'Source'Customer'Variants
-> SetupIntentLastSetupError'Source'Customer'Variants -> Bool
== :: SetupIntentLastSetupError'Source'Customer'Variants
-> SetupIntentLastSetupError'Source'Customer'Variants -> Bool
$c== :: SetupIntentLastSetupError'Source'Customer'Variants
-> SetupIntentLastSetupError'Source'Customer'Variants -> Bool
GHC.Classes.Eq)

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

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

-- | Defines the enum schema located at @components.schemas.setup_intent.properties.last_setup_error.anyOf.properties.source.anyOf.properties.object@ in the specification.
--
-- String representing the object\'s type. Objects of the same type share the same value.
data SetupIntentLastSetupError'Source'Object'
  = -- | This case is used if the value encountered during decoding does not match any of the provided cases in the specification.
    SetupIntentLastSetupError'Source'Object'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.
    SetupIntentLastSetupError'Source'Object'Typed Data.Text.Internal.Text
  | -- | Represents the JSON value @"bank_account"@
    SetupIntentLastSetupError'Source'Object'EnumBankAccount
  deriving (Int -> SetupIntentLastSetupError'Source'Object' -> ShowS
[SetupIntentLastSetupError'Source'Object'] -> ShowS
SetupIntentLastSetupError'Source'Object' -> String
(Int -> SetupIntentLastSetupError'Source'Object' -> ShowS)
-> (SetupIntentLastSetupError'Source'Object' -> String)
-> ([SetupIntentLastSetupError'Source'Object'] -> ShowS)
-> Show SetupIntentLastSetupError'Source'Object'
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [SetupIntentLastSetupError'Source'Object'] -> ShowS
$cshowList :: [SetupIntentLastSetupError'Source'Object'] -> ShowS
show :: SetupIntentLastSetupError'Source'Object' -> String
$cshow :: SetupIntentLastSetupError'Source'Object' -> String
showsPrec :: Int -> SetupIntentLastSetupError'Source'Object' -> ShowS
$cshowsPrec :: Int -> SetupIntentLastSetupError'Source'Object' -> ShowS
GHC.Show.Show, SetupIntentLastSetupError'Source'Object'
-> SetupIntentLastSetupError'Source'Object' -> Bool
(SetupIntentLastSetupError'Source'Object'
 -> SetupIntentLastSetupError'Source'Object' -> Bool)
-> (SetupIntentLastSetupError'Source'Object'
    -> SetupIntentLastSetupError'Source'Object' -> Bool)
-> Eq SetupIntentLastSetupError'Source'Object'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: SetupIntentLastSetupError'Source'Object'
-> SetupIntentLastSetupError'Source'Object' -> Bool
$c/= :: SetupIntentLastSetupError'Source'Object'
-> SetupIntentLastSetupError'Source'Object' -> Bool
== :: SetupIntentLastSetupError'Source'Object'
-> SetupIntentLastSetupError'Source'Object' -> Bool
$c== :: SetupIntentLastSetupError'Source'Object'
-> SetupIntentLastSetupError'Source'Object' -> Bool
GHC.Classes.Eq)

instance Data.Aeson.Types.ToJSON.ToJSON SetupIntentLastSetupError'Source'Object' where
  toJSON :: SetupIntentLastSetupError'Source'Object' -> Value
toJSON (SetupIntentLastSetupError'Source'Object'Other Value
val) = Value
val
  toJSON (SetupIntentLastSetupError'Source'Object'Typed Text
val) = Text -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON Text
val
  toJSON (SetupIntentLastSetupError'Source'Object'
SetupIntentLastSetupError'Source'Object'EnumBankAccount) = Value
"bank_account"

instance Data.Aeson.Types.FromJSON.FromJSON SetupIntentLastSetupError'Source'Object' where
  parseJSON :: Value -> Parser SetupIntentLastSetupError'Source'Object'
parseJSON Value
val =
    SetupIntentLastSetupError'Source'Object'
-> Parser SetupIntentLastSetupError'Source'Object'
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure
      ( if
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"bank_account" -> SetupIntentLastSetupError'Source'Object'
SetupIntentLastSetupError'Source'Object'EnumBankAccount
            | Bool
GHC.Base.otherwise -> Value -> SetupIntentLastSetupError'Source'Object'
SetupIntentLastSetupError'Source'Object'Other Value
val
      )

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

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

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

-- | Create a new 'SetupIntentLastSetupError'Source'Owner'' with all required fields.
mkSetupIntentLastSetupError'Source'Owner' :: SetupIntentLastSetupError'Source'Owner'
mkSetupIntentLastSetupError'Source'Owner' :: SetupIntentLastSetupError'Source'Owner'
mkSetupIntentLastSetupError'Source'Owner' =
  SetupIntentLastSetupError'Source'Owner' :: Maybe SetupIntentLastSetupError'Source'Owner'Address'
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe SetupIntentLastSetupError'Source'Owner'VerifiedAddress'
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> SetupIntentLastSetupError'Source'Owner'
SetupIntentLastSetupError'Source'Owner'
    { setupIntentLastSetupError'Source'Owner'Address :: Maybe SetupIntentLastSetupError'Source'Owner'Address'
setupIntentLastSetupError'Source'Owner'Address = Maybe SetupIntentLastSetupError'Source'Owner'Address'
forall a. Maybe a
GHC.Maybe.Nothing,
      setupIntentLastSetupError'Source'Owner'Email :: Maybe Text
setupIntentLastSetupError'Source'Owner'Email = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      setupIntentLastSetupError'Source'Owner'Name :: Maybe Text
setupIntentLastSetupError'Source'Owner'Name = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      setupIntentLastSetupError'Source'Owner'Phone :: Maybe Text
setupIntentLastSetupError'Source'Owner'Phone = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      setupIntentLastSetupError'Source'Owner'VerifiedAddress :: Maybe SetupIntentLastSetupError'Source'Owner'VerifiedAddress'
setupIntentLastSetupError'Source'Owner'VerifiedAddress = Maybe SetupIntentLastSetupError'Source'Owner'VerifiedAddress'
forall a. Maybe a
GHC.Maybe.Nothing,
      setupIntentLastSetupError'Source'Owner'VerifiedEmail :: Maybe Text
setupIntentLastSetupError'Source'Owner'VerifiedEmail = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      setupIntentLastSetupError'Source'Owner'VerifiedName :: Maybe Text
setupIntentLastSetupError'Source'Owner'VerifiedName = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      setupIntentLastSetupError'Source'Owner'VerifiedPhone :: Maybe Text
setupIntentLastSetupError'Source'Owner'VerifiedPhone = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing
    }

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

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

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

-- | Create a new 'SetupIntentLastSetupError'Source'Owner'Address'' with all required fields.
mkSetupIntentLastSetupError'Source'Owner'Address' :: SetupIntentLastSetupError'Source'Owner'Address'
mkSetupIntentLastSetupError'Source'Owner'Address' :: SetupIntentLastSetupError'Source'Owner'Address'
mkSetupIntentLastSetupError'Source'Owner'Address' =
  SetupIntentLastSetupError'Source'Owner'Address' :: Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> SetupIntentLastSetupError'Source'Owner'Address'
SetupIntentLastSetupError'Source'Owner'Address'
    { setupIntentLastSetupError'Source'Owner'Address'City :: Maybe Text
setupIntentLastSetupError'Source'Owner'Address'City = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      setupIntentLastSetupError'Source'Owner'Address'Country :: Maybe Text
setupIntentLastSetupError'Source'Owner'Address'Country = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      setupIntentLastSetupError'Source'Owner'Address'Line1 :: Maybe Text
setupIntentLastSetupError'Source'Owner'Address'Line1 = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      setupIntentLastSetupError'Source'Owner'Address'Line2 :: Maybe Text
setupIntentLastSetupError'Source'Owner'Address'Line2 = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      setupIntentLastSetupError'Source'Owner'Address'PostalCode :: Maybe Text
setupIntentLastSetupError'Source'Owner'Address'PostalCode = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      setupIntentLastSetupError'Source'Owner'Address'State :: Maybe Text
setupIntentLastSetupError'Source'Owner'Address'State = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing
    }

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

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

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

-- | Create a new 'SetupIntentLastSetupError'Source'Owner'VerifiedAddress'' with all required fields.
mkSetupIntentLastSetupError'Source'Owner'VerifiedAddress' :: SetupIntentLastSetupError'Source'Owner'VerifiedAddress'
mkSetupIntentLastSetupError'Source'Owner'VerifiedAddress' :: SetupIntentLastSetupError'Source'Owner'VerifiedAddress'
mkSetupIntentLastSetupError'Source'Owner'VerifiedAddress' =
  SetupIntentLastSetupError'Source'Owner'VerifiedAddress' :: Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> SetupIntentLastSetupError'Source'Owner'VerifiedAddress'
SetupIntentLastSetupError'Source'Owner'VerifiedAddress'
    { setupIntentLastSetupError'Source'Owner'VerifiedAddress'City :: Maybe Text
setupIntentLastSetupError'Source'Owner'VerifiedAddress'City = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      setupIntentLastSetupError'Source'Owner'VerifiedAddress'Country :: Maybe Text
setupIntentLastSetupError'Source'Owner'VerifiedAddress'Country = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      setupIntentLastSetupError'Source'Owner'VerifiedAddress'Line1 :: Maybe Text
setupIntentLastSetupError'Source'Owner'VerifiedAddress'Line1 = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      setupIntentLastSetupError'Source'Owner'VerifiedAddress'Line2 :: Maybe Text
setupIntentLastSetupError'Source'Owner'VerifiedAddress'Line2 = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      setupIntentLastSetupError'Source'Owner'VerifiedAddress'PostalCode :: Maybe Text
setupIntentLastSetupError'Source'Owner'VerifiedAddress'PostalCode = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      setupIntentLastSetupError'Source'Owner'VerifiedAddress'State :: Maybe Text
setupIntentLastSetupError'Source'Owner'VerifiedAddress'State = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing
    }

-- | Defines the oneOf schema located at @components.schemas.setup_intent.properties.last_setup_error.anyOf.properties.source.anyOf.properties.recipient.anyOf@ in the specification.
--
-- The recipient that this card belongs to. This attribute will not be in the card object if the card belongs to a customer or account instead.
data SetupIntentLastSetupError'Source'Recipient'Variants
  = SetupIntentLastSetupError'Source'Recipient'Text Data.Text.Internal.Text
  | SetupIntentLastSetupError'Source'Recipient'Recipient Recipient
  deriving (Int -> SetupIntentLastSetupError'Source'Recipient'Variants -> ShowS
[SetupIntentLastSetupError'Source'Recipient'Variants] -> ShowS
SetupIntentLastSetupError'Source'Recipient'Variants -> String
(Int
 -> SetupIntentLastSetupError'Source'Recipient'Variants -> ShowS)
-> (SetupIntentLastSetupError'Source'Recipient'Variants -> String)
-> ([SetupIntentLastSetupError'Source'Recipient'Variants] -> ShowS)
-> Show SetupIntentLastSetupError'Source'Recipient'Variants
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [SetupIntentLastSetupError'Source'Recipient'Variants] -> ShowS
$cshowList :: [SetupIntentLastSetupError'Source'Recipient'Variants] -> ShowS
show :: SetupIntentLastSetupError'Source'Recipient'Variants -> String
$cshow :: SetupIntentLastSetupError'Source'Recipient'Variants -> String
showsPrec :: Int -> SetupIntentLastSetupError'Source'Recipient'Variants -> ShowS
$cshowsPrec :: Int -> SetupIntentLastSetupError'Source'Recipient'Variants -> ShowS
GHC.Show.Show, SetupIntentLastSetupError'Source'Recipient'Variants
-> SetupIntentLastSetupError'Source'Recipient'Variants -> Bool
(SetupIntentLastSetupError'Source'Recipient'Variants
 -> SetupIntentLastSetupError'Source'Recipient'Variants -> Bool)
-> (SetupIntentLastSetupError'Source'Recipient'Variants
    -> SetupIntentLastSetupError'Source'Recipient'Variants -> Bool)
-> Eq SetupIntentLastSetupError'Source'Recipient'Variants
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: SetupIntentLastSetupError'Source'Recipient'Variants
-> SetupIntentLastSetupError'Source'Recipient'Variants -> Bool
$c/= :: SetupIntentLastSetupError'Source'Recipient'Variants
-> SetupIntentLastSetupError'Source'Recipient'Variants -> Bool
== :: SetupIntentLastSetupError'Source'Recipient'Variants
-> SetupIntentLastSetupError'Source'Recipient'Variants -> Bool
$c== :: SetupIntentLastSetupError'Source'Recipient'Variants
-> SetupIntentLastSetupError'Source'Recipient'Variants -> Bool
GHC.Classes.Eq)

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

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

-- | Defines the enum schema located at @components.schemas.setup_intent.properties.last_setup_error.anyOf.properties.source.anyOf.properties.type@ in the specification.
--
-- The \`type\` of the source. The \`type\` is a payment method, one of \`ach_credit_transfer\`, \`ach_debit\`, \`alipay\`, \`bancontact\`, \`card\`, \`card_present\`, \`eps\`, \`giropay\`, \`ideal\`, \`multibanco\`, \`klarna\`, \`p24\`, \`sepa_debit\`, \`sofort\`, \`three_d_secure\`, or \`wechat\`. An additional hash is included on the source with a name matching this value. It contains additional information specific to the [payment method](https:\/\/stripe.com\/docs\/sources) used.
data SetupIntentLastSetupError'Source'Type'
  = -- | This case is used if the value encountered during decoding does not match any of the provided cases in the specification.
    SetupIntentLastSetupError'Source'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.
    SetupIntentLastSetupError'Source'Type'Typed Data.Text.Internal.Text
  | -- | Represents the JSON value @"ach_credit_transfer"@
    SetupIntentLastSetupError'Source'Type'EnumAchCreditTransfer
  | -- | Represents the JSON value @"ach_debit"@
    SetupIntentLastSetupError'Source'Type'EnumAchDebit
  | -- | Represents the JSON value @"acss_debit"@
    SetupIntentLastSetupError'Source'Type'EnumAcssDebit
  | -- | Represents the JSON value @"alipay"@
    SetupIntentLastSetupError'Source'Type'EnumAlipay
  | -- | Represents the JSON value @"au_becs_debit"@
    SetupIntentLastSetupError'Source'Type'EnumAuBecsDebit
  | -- | Represents the JSON value @"bancontact"@
    SetupIntentLastSetupError'Source'Type'EnumBancontact
  | -- | Represents the JSON value @"card"@
    SetupIntentLastSetupError'Source'Type'EnumCard
  | -- | Represents the JSON value @"card_present"@
    SetupIntentLastSetupError'Source'Type'EnumCardPresent
  | -- | Represents the JSON value @"eps"@
    SetupIntentLastSetupError'Source'Type'EnumEps
  | -- | Represents the JSON value @"giropay"@
    SetupIntentLastSetupError'Source'Type'EnumGiropay
  | -- | Represents the JSON value @"ideal"@
    SetupIntentLastSetupError'Source'Type'EnumIdeal
  | -- | Represents the JSON value @"klarna"@
    SetupIntentLastSetupError'Source'Type'EnumKlarna
  | -- | Represents the JSON value @"multibanco"@
    SetupIntentLastSetupError'Source'Type'EnumMultibanco
  | -- | Represents the JSON value @"p24"@
    SetupIntentLastSetupError'Source'Type'EnumP24
  | -- | Represents the JSON value @"sepa_debit"@
    SetupIntentLastSetupError'Source'Type'EnumSepaDebit
  | -- | Represents the JSON value @"sofort"@
    SetupIntentLastSetupError'Source'Type'EnumSofort
  | -- | Represents the JSON value @"three_d_secure"@
    SetupIntentLastSetupError'Source'Type'EnumThreeDSecure
  | -- | Represents the JSON value @"wechat"@
    SetupIntentLastSetupError'Source'Type'EnumWechat
  deriving (Int -> SetupIntentLastSetupError'Source'Type' -> ShowS
[SetupIntentLastSetupError'Source'Type'] -> ShowS
SetupIntentLastSetupError'Source'Type' -> String
(Int -> SetupIntentLastSetupError'Source'Type' -> ShowS)
-> (SetupIntentLastSetupError'Source'Type' -> String)
-> ([SetupIntentLastSetupError'Source'Type'] -> ShowS)
-> Show SetupIntentLastSetupError'Source'Type'
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [SetupIntentLastSetupError'Source'Type'] -> ShowS
$cshowList :: [SetupIntentLastSetupError'Source'Type'] -> ShowS
show :: SetupIntentLastSetupError'Source'Type' -> String
$cshow :: SetupIntentLastSetupError'Source'Type' -> String
showsPrec :: Int -> SetupIntentLastSetupError'Source'Type' -> ShowS
$cshowsPrec :: Int -> SetupIntentLastSetupError'Source'Type' -> ShowS
GHC.Show.Show, SetupIntentLastSetupError'Source'Type'
-> SetupIntentLastSetupError'Source'Type' -> Bool
(SetupIntentLastSetupError'Source'Type'
 -> SetupIntentLastSetupError'Source'Type' -> Bool)
-> (SetupIntentLastSetupError'Source'Type'
    -> SetupIntentLastSetupError'Source'Type' -> Bool)
-> Eq SetupIntentLastSetupError'Source'Type'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: SetupIntentLastSetupError'Source'Type'
-> SetupIntentLastSetupError'Source'Type' -> Bool
$c/= :: SetupIntentLastSetupError'Source'Type'
-> SetupIntentLastSetupError'Source'Type' -> Bool
== :: SetupIntentLastSetupError'Source'Type'
-> SetupIntentLastSetupError'Source'Type' -> Bool
$c== :: SetupIntentLastSetupError'Source'Type'
-> SetupIntentLastSetupError'Source'Type' -> Bool
GHC.Classes.Eq)

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

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

-- | Defines the enum schema located at @components.schemas.setup_intent.properties.last_setup_error.anyOf.properties.type@ in the specification.
--
-- The type of error returned. One of \`api_connection_error\`, \`api_error\`, \`authentication_error\`, \`card_error\`, \`idempotency_error\`, \`invalid_request_error\`, or \`rate_limit_error\`
data SetupIntentLastSetupError'Type'
  = -- | This case is used if the value encountered during decoding does not match any of the provided cases in the specification.
    SetupIntentLastSetupError'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.
    SetupIntentLastSetupError'Type'Typed Data.Text.Internal.Text
  | -- | Represents the JSON value @"api_connection_error"@
    SetupIntentLastSetupError'Type'EnumApiConnectionError
  | -- | Represents the JSON value @"api_error"@
    SetupIntentLastSetupError'Type'EnumApiError
  | -- | Represents the JSON value @"authentication_error"@
    SetupIntentLastSetupError'Type'EnumAuthenticationError
  | -- | Represents the JSON value @"card_error"@
    SetupIntentLastSetupError'Type'EnumCardError
  | -- | Represents the JSON value @"idempotency_error"@
    SetupIntentLastSetupError'Type'EnumIdempotencyError
  | -- | Represents the JSON value @"invalid_request_error"@
    SetupIntentLastSetupError'Type'EnumInvalidRequestError
  | -- | Represents the JSON value @"rate_limit_error"@
    SetupIntentLastSetupError'Type'EnumRateLimitError
  deriving (Int -> SetupIntentLastSetupError'Type' -> ShowS
[SetupIntentLastSetupError'Type'] -> ShowS
SetupIntentLastSetupError'Type' -> String
(Int -> SetupIntentLastSetupError'Type' -> ShowS)
-> (SetupIntentLastSetupError'Type' -> String)
-> ([SetupIntentLastSetupError'Type'] -> ShowS)
-> Show SetupIntentLastSetupError'Type'
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [SetupIntentLastSetupError'Type'] -> ShowS
$cshowList :: [SetupIntentLastSetupError'Type'] -> ShowS
show :: SetupIntentLastSetupError'Type' -> String
$cshow :: SetupIntentLastSetupError'Type' -> String
showsPrec :: Int -> SetupIntentLastSetupError'Type' -> ShowS
$cshowsPrec :: Int -> SetupIntentLastSetupError'Type' -> ShowS
GHC.Show.Show, SetupIntentLastSetupError'Type'
-> SetupIntentLastSetupError'Type' -> Bool
(SetupIntentLastSetupError'Type'
 -> SetupIntentLastSetupError'Type' -> Bool)
-> (SetupIntentLastSetupError'Type'
    -> SetupIntentLastSetupError'Type' -> Bool)
-> Eq SetupIntentLastSetupError'Type'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: SetupIntentLastSetupError'Type'
-> SetupIntentLastSetupError'Type' -> Bool
$c/= :: SetupIntentLastSetupError'Type'
-> SetupIntentLastSetupError'Type' -> Bool
== :: SetupIntentLastSetupError'Type'
-> SetupIntentLastSetupError'Type' -> Bool
$c== :: SetupIntentLastSetupError'Type'
-> SetupIntentLastSetupError'Type' -> Bool
GHC.Classes.Eq)

instance Data.Aeson.Types.ToJSON.ToJSON SetupIntentLastSetupError'Type' where
  toJSON :: SetupIntentLastSetupError'Type' -> Value
toJSON (SetupIntentLastSetupError'Type'Other Value
val) = Value
val
  toJSON (SetupIntentLastSetupError'Type'Typed Text
val) = Text -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON Text
val
  toJSON (SetupIntentLastSetupError'Type'
SetupIntentLastSetupError'Type'EnumApiConnectionError) = Value
"api_connection_error"
  toJSON (SetupIntentLastSetupError'Type'
SetupIntentLastSetupError'Type'EnumApiError) = Value
"api_error"
  toJSON (SetupIntentLastSetupError'Type'
SetupIntentLastSetupError'Type'EnumAuthenticationError) = Value
"authentication_error"
  toJSON (SetupIntentLastSetupError'Type'
SetupIntentLastSetupError'Type'EnumCardError) = Value
"card_error"
  toJSON (SetupIntentLastSetupError'Type'
SetupIntentLastSetupError'Type'EnumIdempotencyError) = Value
"idempotency_error"
  toJSON (SetupIntentLastSetupError'Type'
SetupIntentLastSetupError'Type'EnumInvalidRequestError) = Value
"invalid_request_error"
  toJSON (SetupIntentLastSetupError'Type'
SetupIntentLastSetupError'Type'EnumRateLimitError) = Value
"rate_limit_error"

instance Data.Aeson.Types.FromJSON.FromJSON SetupIntentLastSetupError'Type' where
  parseJSON :: Value -> Parser SetupIntentLastSetupError'Type'
parseJSON Value
val =
    SetupIntentLastSetupError'Type'
-> Parser SetupIntentLastSetupError'Type'
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure
      ( if
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"api_connection_error" -> SetupIntentLastSetupError'Type'
SetupIntentLastSetupError'Type'EnumApiConnectionError
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"api_error" -> SetupIntentLastSetupError'Type'
SetupIntentLastSetupError'Type'EnumApiError
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"authentication_error" -> SetupIntentLastSetupError'Type'
SetupIntentLastSetupError'Type'EnumAuthenticationError
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"card_error" -> SetupIntentLastSetupError'Type'
SetupIntentLastSetupError'Type'EnumCardError
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"idempotency_error" -> SetupIntentLastSetupError'Type'
SetupIntentLastSetupError'Type'EnumIdempotencyError
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"invalid_request_error" -> SetupIntentLastSetupError'Type'
SetupIntentLastSetupError'Type'EnumInvalidRequestError
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"rate_limit_error" -> SetupIntentLastSetupError'Type'
SetupIntentLastSetupError'Type'EnumRateLimitError
            | Bool
GHC.Base.otherwise -> Value -> SetupIntentLastSetupError'Type'
SetupIntentLastSetupError'Type'Other Value
val
      )

-- | Defines the oneOf schema located at @components.schemas.setup_intent.properties.latest_attempt.anyOf@ in the specification.
--
-- The most recent SetupAttempt for this SetupIntent.
data SetupIntentLatestAttempt'Variants
  = SetupIntentLatestAttempt'Text Data.Text.Internal.Text
  | SetupIntentLatestAttempt'SetupAttempt SetupAttempt
  deriving (Int -> SetupIntentLatestAttempt'Variants -> ShowS
[SetupIntentLatestAttempt'Variants] -> ShowS
SetupIntentLatestAttempt'Variants -> String
(Int -> SetupIntentLatestAttempt'Variants -> ShowS)
-> (SetupIntentLatestAttempt'Variants -> String)
-> ([SetupIntentLatestAttempt'Variants] -> ShowS)
-> Show SetupIntentLatestAttempt'Variants
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [SetupIntentLatestAttempt'Variants] -> ShowS
$cshowList :: [SetupIntentLatestAttempt'Variants] -> ShowS
show :: SetupIntentLatestAttempt'Variants -> String
$cshow :: SetupIntentLatestAttempt'Variants -> String
showsPrec :: Int -> SetupIntentLatestAttempt'Variants -> ShowS
$cshowsPrec :: Int -> SetupIntentLatestAttempt'Variants -> ShowS
GHC.Show.Show, SetupIntentLatestAttempt'Variants
-> SetupIntentLatestAttempt'Variants -> Bool
(SetupIntentLatestAttempt'Variants
 -> SetupIntentLatestAttempt'Variants -> Bool)
-> (SetupIntentLatestAttempt'Variants
    -> SetupIntentLatestAttempt'Variants -> Bool)
-> Eq SetupIntentLatestAttempt'Variants
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: SetupIntentLatestAttempt'Variants
-> SetupIntentLatestAttempt'Variants -> Bool
$c/= :: SetupIntentLatestAttempt'Variants
-> SetupIntentLatestAttempt'Variants -> Bool
== :: SetupIntentLatestAttempt'Variants
-> SetupIntentLatestAttempt'Variants -> Bool
$c== :: SetupIntentLatestAttempt'Variants
-> SetupIntentLatestAttempt'Variants -> Bool
GHC.Classes.Eq)

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

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

-- | Defines the oneOf schema located at @components.schemas.setup_intent.properties.mandate.anyOf@ in the specification.
--
-- ID of the multi use Mandate generated by the SetupIntent.
data SetupIntentMandate'Variants
  = SetupIntentMandate'Text Data.Text.Internal.Text
  | SetupIntentMandate'Mandate Mandate
  deriving (Int -> SetupIntentMandate'Variants -> ShowS
[SetupIntentMandate'Variants] -> ShowS
SetupIntentMandate'Variants -> String
(Int -> SetupIntentMandate'Variants -> ShowS)
-> (SetupIntentMandate'Variants -> String)
-> ([SetupIntentMandate'Variants] -> ShowS)
-> Show SetupIntentMandate'Variants
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [SetupIntentMandate'Variants] -> ShowS
$cshowList :: [SetupIntentMandate'Variants] -> ShowS
show :: SetupIntentMandate'Variants -> String
$cshow :: SetupIntentMandate'Variants -> String
showsPrec :: Int -> SetupIntentMandate'Variants -> ShowS
$cshowsPrec :: Int -> SetupIntentMandate'Variants -> ShowS
GHC.Show.Show, SetupIntentMandate'Variants -> SetupIntentMandate'Variants -> Bool
(SetupIntentMandate'Variants
 -> SetupIntentMandate'Variants -> Bool)
-> (SetupIntentMandate'Variants
    -> SetupIntentMandate'Variants -> Bool)
-> Eq SetupIntentMandate'Variants
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: SetupIntentMandate'Variants -> SetupIntentMandate'Variants -> Bool
$c/= :: SetupIntentMandate'Variants -> SetupIntentMandate'Variants -> Bool
== :: SetupIntentMandate'Variants -> SetupIntentMandate'Variants -> Bool
$c== :: SetupIntentMandate'Variants -> SetupIntentMandate'Variants -> Bool
GHC.Classes.Eq)

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

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

-- | Defines the object schema located at @components.schemas.setup_intent.properties.next_action.anyOf@ in the specification.
--
-- If present, this property tells you what actions you need to take in order for your customer to continue payment setup.
data SetupIntentNextAction' = SetupIntentNextAction'
  { -- | redirect_to_url:
    SetupIntentNextAction' -> Maybe SetupIntentNextActionRedirectToUrl
setupIntentNextAction'RedirectToUrl :: (GHC.Maybe.Maybe SetupIntentNextActionRedirectToUrl),
    -- | type: Type of the next action to perform, one of \`redirect_to_url\`, \`use_stripe_sdk\`, \`alipay_handle_redirect\`, or \`oxxo_display_details\`.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    SetupIntentNextAction' -> Maybe Text
setupIntentNextAction'Type :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | use_stripe_sdk: When confirming a SetupIntent with Stripe.js, Stripe.js depends on the contents of this dictionary to invoke authentication flows. The shape of the contents is subject to change and is only intended to be used by Stripe.js.
    SetupIntentNextAction' -> Maybe Object
setupIntentNextAction'UseStripeSdk :: (GHC.Maybe.Maybe Data.Aeson.Types.Internal.Object),
    -- | verify_with_microdeposits:
    SetupIntentNextAction'
-> Maybe SetupIntentNextActionVerifyWithMicrodeposits
setupIntentNextAction'VerifyWithMicrodeposits :: (GHC.Maybe.Maybe SetupIntentNextActionVerifyWithMicrodeposits)
  }
  deriving
    ( Int -> SetupIntentNextAction' -> ShowS
[SetupIntentNextAction'] -> ShowS
SetupIntentNextAction' -> String
(Int -> SetupIntentNextAction' -> ShowS)
-> (SetupIntentNextAction' -> String)
-> ([SetupIntentNextAction'] -> ShowS)
-> Show SetupIntentNextAction'
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [SetupIntentNextAction'] -> ShowS
$cshowList :: [SetupIntentNextAction'] -> ShowS
show :: SetupIntentNextAction' -> String
$cshow :: SetupIntentNextAction' -> String
showsPrec :: Int -> SetupIntentNextAction' -> ShowS
$cshowsPrec :: Int -> SetupIntentNextAction' -> ShowS
GHC.Show.Show,
      SetupIntentNextAction' -> SetupIntentNextAction' -> Bool
(SetupIntentNextAction' -> SetupIntentNextAction' -> Bool)
-> (SetupIntentNextAction' -> SetupIntentNextAction' -> Bool)
-> Eq SetupIntentNextAction'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: SetupIntentNextAction' -> SetupIntentNextAction' -> Bool
$c/= :: SetupIntentNextAction' -> SetupIntentNextAction' -> Bool
== :: SetupIntentNextAction' -> SetupIntentNextAction' -> Bool
$c== :: SetupIntentNextAction' -> SetupIntentNextAction' -> Bool
GHC.Classes.Eq
    )

instance Data.Aeson.Types.ToJSON.ToJSON SetupIntentNextAction' where
  toJSON :: SetupIntentNextAction' -> Value
toJSON SetupIntentNextAction'
obj = [Pair] -> Value
Data.Aeson.Types.Internal.object (Text
"redirect_to_url" Text -> Maybe SetupIntentNextActionRedirectToUrl -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntentNextAction' -> Maybe SetupIntentNextActionRedirectToUrl
setupIntentNextAction'RedirectToUrl SetupIntentNextAction'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"type" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntentNextAction' -> Maybe Text
setupIntentNextAction'Type SetupIntentNextAction'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"use_stripe_sdk" Text -> Maybe Object -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntentNextAction' -> Maybe Object
setupIntentNextAction'UseStripeSdk SetupIntentNextAction'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"verify_with_microdeposits" Text -> Maybe SetupIntentNextActionVerifyWithMicrodeposits -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntentNextAction'
-> Maybe SetupIntentNextActionVerifyWithMicrodeposits
setupIntentNextAction'VerifyWithMicrodeposits SetupIntentNextAction'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: SetupIntentNextAction' -> Encoding
toEncoding SetupIntentNextAction'
obj = Series -> Encoding
Data.Aeson.Encoding.Internal.pairs ((Text
"redirect_to_url" Text -> Maybe SetupIntentNextActionRedirectToUrl -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntentNextAction' -> Maybe SetupIntentNextActionRedirectToUrl
setupIntentNextAction'RedirectToUrl SetupIntentNextAction'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"type" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntentNextAction' -> Maybe Text
setupIntentNextAction'Type SetupIntentNextAction'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"use_stripe_sdk" Text -> Maybe Object -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntentNextAction' -> Maybe Object
setupIntentNextAction'UseStripeSdk SetupIntentNextAction'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> (Text
"verify_with_microdeposits" Text
-> Maybe SetupIntentNextActionVerifyWithMicrodeposits -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntentNextAction'
-> Maybe SetupIntentNextActionVerifyWithMicrodeposits
setupIntentNextAction'VerifyWithMicrodeposits SetupIntentNextAction'
obj))))

instance Data.Aeson.Types.FromJSON.FromJSON SetupIntentNextAction' where
  parseJSON :: Value -> Parser SetupIntentNextAction'
parseJSON = String
-> (Object -> Parser SetupIntentNextAction')
-> Value
-> Parser SetupIntentNextAction'
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.Aeson.Types.FromJSON.withObject String
"SetupIntentNextAction'" (\Object
obj -> ((((Maybe SetupIntentNextActionRedirectToUrl
 -> Maybe Text
 -> Maybe Object
 -> Maybe SetupIntentNextActionVerifyWithMicrodeposits
 -> SetupIntentNextAction')
-> Parser
     (Maybe SetupIntentNextActionRedirectToUrl
      -> Maybe Text
      -> Maybe Object
      -> Maybe SetupIntentNextActionVerifyWithMicrodeposits
      -> SetupIntentNextAction')
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure Maybe SetupIntentNextActionRedirectToUrl
-> Maybe Text
-> Maybe Object
-> Maybe SetupIntentNextActionVerifyWithMicrodeposits
-> SetupIntentNextAction'
SetupIntentNextAction' Parser
  (Maybe SetupIntentNextActionRedirectToUrl
   -> Maybe Text
   -> Maybe Object
   -> Maybe SetupIntentNextActionVerifyWithMicrodeposits
   -> SetupIntentNextAction')
-> Parser (Maybe SetupIntentNextActionRedirectToUrl)
-> Parser
     (Maybe Text
      -> Maybe Object
      -> Maybe SetupIntentNextActionVerifyWithMicrodeposits
      -> SetupIntentNextAction')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe SetupIntentNextActionRedirectToUrl)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"redirect_to_url")) Parser
  (Maybe Text
   -> Maybe Object
   -> Maybe SetupIntentNextActionVerifyWithMicrodeposits
   -> SetupIntentNextAction')
-> Parser (Maybe Text)
-> Parser
     (Maybe Object
      -> Maybe SetupIntentNextActionVerifyWithMicrodeposits
      -> SetupIntentNextAction')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"type")) Parser
  (Maybe Object
   -> Maybe SetupIntentNextActionVerifyWithMicrodeposits
   -> SetupIntentNextAction')
-> Parser (Maybe Object)
-> Parser
     (Maybe SetupIntentNextActionVerifyWithMicrodeposits
      -> SetupIntentNextAction')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Object)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"use_stripe_sdk")) Parser
  (Maybe SetupIntentNextActionVerifyWithMicrodeposits
   -> SetupIntentNextAction')
-> Parser (Maybe SetupIntentNextActionVerifyWithMicrodeposits)
-> Parser SetupIntentNextAction'
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser (Maybe SetupIntentNextActionVerifyWithMicrodeposits)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"verify_with_microdeposits"))

-- | Create a new 'SetupIntentNextAction'' with all required fields.
mkSetupIntentNextAction' :: SetupIntentNextAction'
mkSetupIntentNextAction' :: SetupIntentNextAction'
mkSetupIntentNextAction' =
  SetupIntentNextAction' :: Maybe SetupIntentNextActionRedirectToUrl
-> Maybe Text
-> Maybe Object
-> Maybe SetupIntentNextActionVerifyWithMicrodeposits
-> SetupIntentNextAction'
SetupIntentNextAction'
    { setupIntentNextAction'RedirectToUrl :: Maybe SetupIntentNextActionRedirectToUrl
setupIntentNextAction'RedirectToUrl = Maybe SetupIntentNextActionRedirectToUrl
forall a. Maybe a
GHC.Maybe.Nothing,
      setupIntentNextAction'Type :: Maybe Text
setupIntentNextAction'Type = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      setupIntentNextAction'UseStripeSdk :: Maybe Object
setupIntentNextAction'UseStripeSdk = Maybe Object
forall a. Maybe a
GHC.Maybe.Nothing,
      setupIntentNextAction'VerifyWithMicrodeposits :: Maybe SetupIntentNextActionVerifyWithMicrodeposits
setupIntentNextAction'VerifyWithMicrodeposits = Maybe SetupIntentNextActionVerifyWithMicrodeposits
forall a. Maybe a
GHC.Maybe.Nothing
    }

-- | Defines the oneOf schema located at @components.schemas.setup_intent.properties.on_behalf_of.anyOf@ in the specification.
--
-- The account (if any) for which the setup is intended.
data SetupIntentOnBehalfOf'Variants
  = SetupIntentOnBehalfOf'Text Data.Text.Internal.Text
  | SetupIntentOnBehalfOf'Account Account
  deriving (Int -> SetupIntentOnBehalfOf'Variants -> ShowS
[SetupIntentOnBehalfOf'Variants] -> ShowS
SetupIntentOnBehalfOf'Variants -> String
(Int -> SetupIntentOnBehalfOf'Variants -> ShowS)
-> (SetupIntentOnBehalfOf'Variants -> String)
-> ([SetupIntentOnBehalfOf'Variants] -> ShowS)
-> Show SetupIntentOnBehalfOf'Variants
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [SetupIntentOnBehalfOf'Variants] -> ShowS
$cshowList :: [SetupIntentOnBehalfOf'Variants] -> ShowS
show :: SetupIntentOnBehalfOf'Variants -> String
$cshow :: SetupIntentOnBehalfOf'Variants -> String
showsPrec :: Int -> SetupIntentOnBehalfOf'Variants -> ShowS
$cshowsPrec :: Int -> SetupIntentOnBehalfOf'Variants -> ShowS
GHC.Show.Show, SetupIntentOnBehalfOf'Variants
-> SetupIntentOnBehalfOf'Variants -> Bool
(SetupIntentOnBehalfOf'Variants
 -> SetupIntentOnBehalfOf'Variants -> Bool)
-> (SetupIntentOnBehalfOf'Variants
    -> SetupIntentOnBehalfOf'Variants -> Bool)
-> Eq SetupIntentOnBehalfOf'Variants
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: SetupIntentOnBehalfOf'Variants
-> SetupIntentOnBehalfOf'Variants -> Bool
$c/= :: SetupIntentOnBehalfOf'Variants
-> SetupIntentOnBehalfOf'Variants -> Bool
== :: SetupIntentOnBehalfOf'Variants
-> SetupIntentOnBehalfOf'Variants -> Bool
$c== :: SetupIntentOnBehalfOf'Variants
-> SetupIntentOnBehalfOf'Variants -> Bool
GHC.Classes.Eq)

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

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

-- | Defines the oneOf schema located at @components.schemas.setup_intent.properties.payment_method.anyOf@ in the specification.
--
-- ID of the payment method used with this SetupIntent.
data SetupIntentPaymentMethod'Variants
  = SetupIntentPaymentMethod'Text Data.Text.Internal.Text
  | SetupIntentPaymentMethod'PaymentMethod PaymentMethod
  deriving (Int -> SetupIntentPaymentMethod'Variants -> ShowS
[SetupIntentPaymentMethod'Variants] -> ShowS
SetupIntentPaymentMethod'Variants -> String
(Int -> SetupIntentPaymentMethod'Variants -> ShowS)
-> (SetupIntentPaymentMethod'Variants -> String)
-> ([SetupIntentPaymentMethod'Variants] -> ShowS)
-> Show SetupIntentPaymentMethod'Variants
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [SetupIntentPaymentMethod'Variants] -> ShowS
$cshowList :: [SetupIntentPaymentMethod'Variants] -> ShowS
show :: SetupIntentPaymentMethod'Variants -> String
$cshow :: SetupIntentPaymentMethod'Variants -> String
showsPrec :: Int -> SetupIntentPaymentMethod'Variants -> ShowS
$cshowsPrec :: Int -> SetupIntentPaymentMethod'Variants -> ShowS
GHC.Show.Show, SetupIntentPaymentMethod'Variants
-> SetupIntentPaymentMethod'Variants -> Bool
(SetupIntentPaymentMethod'Variants
 -> SetupIntentPaymentMethod'Variants -> Bool)
-> (SetupIntentPaymentMethod'Variants
    -> SetupIntentPaymentMethod'Variants -> Bool)
-> Eq SetupIntentPaymentMethod'Variants
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: SetupIntentPaymentMethod'Variants
-> SetupIntentPaymentMethod'Variants -> Bool
$c/= :: SetupIntentPaymentMethod'Variants
-> SetupIntentPaymentMethod'Variants -> Bool
== :: SetupIntentPaymentMethod'Variants
-> SetupIntentPaymentMethod'Variants -> Bool
$c== :: SetupIntentPaymentMethod'Variants
-> SetupIntentPaymentMethod'Variants -> Bool
GHC.Classes.Eq)

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

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

-- | Defines the object schema located at @components.schemas.setup_intent.properties.payment_method_options.anyOf@ in the specification.
--
-- Payment-method-specific configuration for this SetupIntent.
data SetupIntentPaymentMethodOptions' = SetupIntentPaymentMethodOptions'
  { -- | acss_debit:
    SetupIntentPaymentMethodOptions'
-> Maybe SetupIntentPaymentMethodOptionsAcssDebit
setupIntentPaymentMethodOptions'AcssDebit :: (GHC.Maybe.Maybe SetupIntentPaymentMethodOptionsAcssDebit),
    -- | card:
    SetupIntentPaymentMethodOptions'
-> Maybe SetupIntentPaymentMethodOptionsCard
setupIntentPaymentMethodOptions'Card :: (GHC.Maybe.Maybe SetupIntentPaymentMethodOptionsCard),
    -- | sepa_debit:
    SetupIntentPaymentMethodOptions'
-> Maybe SetupIntentPaymentMethodOptionsSepaDebit
setupIntentPaymentMethodOptions'SepaDebit :: (GHC.Maybe.Maybe SetupIntentPaymentMethodOptionsSepaDebit)
  }
  deriving
    ( Int -> SetupIntentPaymentMethodOptions' -> ShowS
[SetupIntentPaymentMethodOptions'] -> ShowS
SetupIntentPaymentMethodOptions' -> String
(Int -> SetupIntentPaymentMethodOptions' -> ShowS)
-> (SetupIntentPaymentMethodOptions' -> String)
-> ([SetupIntentPaymentMethodOptions'] -> ShowS)
-> Show SetupIntentPaymentMethodOptions'
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [SetupIntentPaymentMethodOptions'] -> ShowS
$cshowList :: [SetupIntentPaymentMethodOptions'] -> ShowS
show :: SetupIntentPaymentMethodOptions' -> String
$cshow :: SetupIntentPaymentMethodOptions' -> String
showsPrec :: Int -> SetupIntentPaymentMethodOptions' -> ShowS
$cshowsPrec :: Int -> SetupIntentPaymentMethodOptions' -> ShowS
GHC.Show.Show,
      SetupIntentPaymentMethodOptions'
-> SetupIntentPaymentMethodOptions' -> Bool
(SetupIntentPaymentMethodOptions'
 -> SetupIntentPaymentMethodOptions' -> Bool)
-> (SetupIntentPaymentMethodOptions'
    -> SetupIntentPaymentMethodOptions' -> Bool)
-> Eq SetupIntentPaymentMethodOptions'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: SetupIntentPaymentMethodOptions'
-> SetupIntentPaymentMethodOptions' -> Bool
$c/= :: SetupIntentPaymentMethodOptions'
-> SetupIntentPaymentMethodOptions' -> Bool
== :: SetupIntentPaymentMethodOptions'
-> SetupIntentPaymentMethodOptions' -> Bool
$c== :: SetupIntentPaymentMethodOptions'
-> SetupIntentPaymentMethodOptions' -> Bool
GHC.Classes.Eq
    )

instance Data.Aeson.Types.ToJSON.ToJSON SetupIntentPaymentMethodOptions' where
  toJSON :: SetupIntentPaymentMethodOptions' -> Value
toJSON SetupIntentPaymentMethodOptions'
obj = [Pair] -> Value
Data.Aeson.Types.Internal.object (Text
"acss_debit" Text -> Maybe SetupIntentPaymentMethodOptionsAcssDebit -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntentPaymentMethodOptions'
-> Maybe SetupIntentPaymentMethodOptionsAcssDebit
setupIntentPaymentMethodOptions'AcssDebit SetupIntentPaymentMethodOptions'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"card" Text -> Maybe SetupIntentPaymentMethodOptionsCard -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntentPaymentMethodOptions'
-> Maybe SetupIntentPaymentMethodOptionsCard
setupIntentPaymentMethodOptions'Card SetupIntentPaymentMethodOptions'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"sepa_debit" Text -> Maybe SetupIntentPaymentMethodOptionsSepaDebit -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntentPaymentMethodOptions'
-> Maybe SetupIntentPaymentMethodOptionsSepaDebit
setupIntentPaymentMethodOptions'SepaDebit SetupIntentPaymentMethodOptions'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: SetupIntentPaymentMethodOptions' -> Encoding
toEncoding SetupIntentPaymentMethodOptions'
obj = Series -> Encoding
Data.Aeson.Encoding.Internal.pairs ((Text
"acss_debit" Text -> Maybe SetupIntentPaymentMethodOptionsAcssDebit -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntentPaymentMethodOptions'
-> Maybe SetupIntentPaymentMethodOptionsAcssDebit
setupIntentPaymentMethodOptions'AcssDebit SetupIntentPaymentMethodOptions'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"card" Text -> Maybe SetupIntentPaymentMethodOptionsCard -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntentPaymentMethodOptions'
-> Maybe SetupIntentPaymentMethodOptionsCard
setupIntentPaymentMethodOptions'Card SetupIntentPaymentMethodOptions'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> (Text
"sepa_debit" Text -> Maybe SetupIntentPaymentMethodOptionsSepaDebit -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= SetupIntentPaymentMethodOptions'
-> Maybe SetupIntentPaymentMethodOptionsSepaDebit
setupIntentPaymentMethodOptions'SepaDebit SetupIntentPaymentMethodOptions'
obj)))

instance Data.Aeson.Types.FromJSON.FromJSON SetupIntentPaymentMethodOptions' where
  parseJSON :: Value -> Parser SetupIntentPaymentMethodOptions'
parseJSON = String
-> (Object -> Parser SetupIntentPaymentMethodOptions')
-> Value
-> Parser SetupIntentPaymentMethodOptions'
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.Aeson.Types.FromJSON.withObject String
"SetupIntentPaymentMethodOptions'" (\Object
obj -> (((Maybe SetupIntentPaymentMethodOptionsAcssDebit
 -> Maybe SetupIntentPaymentMethodOptionsCard
 -> Maybe SetupIntentPaymentMethodOptionsSepaDebit
 -> SetupIntentPaymentMethodOptions')
-> Parser
     (Maybe SetupIntentPaymentMethodOptionsAcssDebit
      -> Maybe SetupIntentPaymentMethodOptionsCard
      -> Maybe SetupIntentPaymentMethodOptionsSepaDebit
      -> SetupIntentPaymentMethodOptions')
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure Maybe SetupIntentPaymentMethodOptionsAcssDebit
-> Maybe SetupIntentPaymentMethodOptionsCard
-> Maybe SetupIntentPaymentMethodOptionsSepaDebit
-> SetupIntentPaymentMethodOptions'
SetupIntentPaymentMethodOptions' Parser
  (Maybe SetupIntentPaymentMethodOptionsAcssDebit
   -> Maybe SetupIntentPaymentMethodOptionsCard
   -> Maybe SetupIntentPaymentMethodOptionsSepaDebit
   -> SetupIntentPaymentMethodOptions')
-> Parser (Maybe SetupIntentPaymentMethodOptionsAcssDebit)
-> Parser
     (Maybe SetupIntentPaymentMethodOptionsCard
      -> Maybe SetupIntentPaymentMethodOptionsSepaDebit
      -> SetupIntentPaymentMethodOptions')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text -> Parser (Maybe SetupIntentPaymentMethodOptionsAcssDebit)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"acss_debit")) Parser
  (Maybe SetupIntentPaymentMethodOptionsCard
   -> Maybe SetupIntentPaymentMethodOptionsSepaDebit
   -> SetupIntentPaymentMethodOptions')
-> Parser (Maybe SetupIntentPaymentMethodOptionsCard)
-> Parser
     (Maybe SetupIntentPaymentMethodOptionsSepaDebit
      -> SetupIntentPaymentMethodOptions')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text -> Parser (Maybe SetupIntentPaymentMethodOptionsCard)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"card")) Parser
  (Maybe SetupIntentPaymentMethodOptionsSepaDebit
   -> SetupIntentPaymentMethodOptions')
-> Parser (Maybe SetupIntentPaymentMethodOptionsSepaDebit)
-> Parser SetupIntentPaymentMethodOptions'
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text -> Parser (Maybe SetupIntentPaymentMethodOptionsSepaDebit)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"sepa_debit"))

-- | Create a new 'SetupIntentPaymentMethodOptions'' with all required fields.
mkSetupIntentPaymentMethodOptions' :: SetupIntentPaymentMethodOptions'
mkSetupIntentPaymentMethodOptions' :: SetupIntentPaymentMethodOptions'
mkSetupIntentPaymentMethodOptions' =
  SetupIntentPaymentMethodOptions' :: Maybe SetupIntentPaymentMethodOptionsAcssDebit
-> Maybe SetupIntentPaymentMethodOptionsCard
-> Maybe SetupIntentPaymentMethodOptionsSepaDebit
-> SetupIntentPaymentMethodOptions'
SetupIntentPaymentMethodOptions'
    { setupIntentPaymentMethodOptions'AcssDebit :: Maybe SetupIntentPaymentMethodOptionsAcssDebit
setupIntentPaymentMethodOptions'AcssDebit = Maybe SetupIntentPaymentMethodOptionsAcssDebit
forall a. Maybe a
GHC.Maybe.Nothing,
      setupIntentPaymentMethodOptions'Card :: Maybe SetupIntentPaymentMethodOptionsCard
setupIntentPaymentMethodOptions'Card = Maybe SetupIntentPaymentMethodOptionsCard
forall a. Maybe a
GHC.Maybe.Nothing,
      setupIntentPaymentMethodOptions'SepaDebit :: Maybe SetupIntentPaymentMethodOptionsSepaDebit
setupIntentPaymentMethodOptions'SepaDebit = Maybe SetupIntentPaymentMethodOptionsSepaDebit
forall a. Maybe a
GHC.Maybe.Nothing
    }

-- | Defines the oneOf schema located at @components.schemas.setup_intent.properties.single_use_mandate.anyOf@ in the specification.
--
-- ID of the single_use Mandate generated by the SetupIntent.
data SetupIntentSingleUseMandate'Variants
  = SetupIntentSingleUseMandate'Text Data.Text.Internal.Text
  | SetupIntentSingleUseMandate'Mandate Mandate
  deriving (Int -> SetupIntentSingleUseMandate'Variants -> ShowS
[SetupIntentSingleUseMandate'Variants] -> ShowS
SetupIntentSingleUseMandate'Variants -> String
(Int -> SetupIntentSingleUseMandate'Variants -> ShowS)
-> (SetupIntentSingleUseMandate'Variants -> String)
-> ([SetupIntentSingleUseMandate'Variants] -> ShowS)
-> Show SetupIntentSingleUseMandate'Variants
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [SetupIntentSingleUseMandate'Variants] -> ShowS
$cshowList :: [SetupIntentSingleUseMandate'Variants] -> ShowS
show :: SetupIntentSingleUseMandate'Variants -> String
$cshow :: SetupIntentSingleUseMandate'Variants -> String
showsPrec :: Int -> SetupIntentSingleUseMandate'Variants -> ShowS
$cshowsPrec :: Int -> SetupIntentSingleUseMandate'Variants -> ShowS
GHC.Show.Show, SetupIntentSingleUseMandate'Variants
-> SetupIntentSingleUseMandate'Variants -> Bool
(SetupIntentSingleUseMandate'Variants
 -> SetupIntentSingleUseMandate'Variants -> Bool)
-> (SetupIntentSingleUseMandate'Variants
    -> SetupIntentSingleUseMandate'Variants -> Bool)
-> Eq SetupIntentSingleUseMandate'Variants
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: SetupIntentSingleUseMandate'Variants
-> SetupIntentSingleUseMandate'Variants -> Bool
$c/= :: SetupIntentSingleUseMandate'Variants
-> SetupIntentSingleUseMandate'Variants -> Bool
== :: SetupIntentSingleUseMandate'Variants
-> SetupIntentSingleUseMandate'Variants -> Bool
$c== :: SetupIntentSingleUseMandate'Variants
-> SetupIntentSingleUseMandate'Variants -> Bool
GHC.Classes.Eq)

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

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

-- | Defines the enum schema located at @components.schemas.setup_intent.properties.status@ in the specification.
--
-- [Status](https:\/\/stripe.com\/docs\/payments\/intents\#intent-statuses) of this SetupIntent, one of \`requires_payment_method\`, \`requires_confirmation\`, \`requires_action\`, \`processing\`, \`canceled\`, or \`succeeded\`.
data SetupIntentStatus'
  = -- | This case is used if the value encountered during decoding does not match any of the provided cases in the specification.
    SetupIntentStatus'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.
    SetupIntentStatus'Typed Data.Text.Internal.Text
  | -- | Represents the JSON value @"canceled"@
    SetupIntentStatus'EnumCanceled
  | -- | Represents the JSON value @"processing"@
    SetupIntentStatus'EnumProcessing
  | -- | Represents the JSON value @"requires_action"@
    SetupIntentStatus'EnumRequiresAction
  | -- | Represents the JSON value @"requires_confirmation"@
    SetupIntentStatus'EnumRequiresConfirmation
  | -- | Represents the JSON value @"requires_payment_method"@
    SetupIntentStatus'EnumRequiresPaymentMethod
  | -- | Represents the JSON value @"succeeded"@
    SetupIntentStatus'EnumSucceeded
  deriving (Int -> SetupIntentStatus' -> ShowS
[SetupIntentStatus'] -> ShowS
SetupIntentStatus' -> String
(Int -> SetupIntentStatus' -> ShowS)
-> (SetupIntentStatus' -> String)
-> ([SetupIntentStatus'] -> ShowS)
-> Show SetupIntentStatus'
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [SetupIntentStatus'] -> ShowS
$cshowList :: [SetupIntentStatus'] -> ShowS
show :: SetupIntentStatus' -> String
$cshow :: SetupIntentStatus' -> String
showsPrec :: Int -> SetupIntentStatus' -> ShowS
$cshowsPrec :: Int -> SetupIntentStatus' -> ShowS
GHC.Show.Show, SetupIntentStatus' -> SetupIntentStatus' -> Bool
(SetupIntentStatus' -> SetupIntentStatus' -> Bool)
-> (SetupIntentStatus' -> SetupIntentStatus' -> Bool)
-> Eq SetupIntentStatus'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: SetupIntentStatus' -> SetupIntentStatus' -> Bool
$c/= :: SetupIntentStatus' -> SetupIntentStatus' -> Bool
== :: SetupIntentStatus' -> SetupIntentStatus' -> Bool
$c== :: SetupIntentStatus' -> SetupIntentStatus' -> Bool
GHC.Classes.Eq)

instance Data.Aeson.Types.ToJSON.ToJSON SetupIntentStatus' where
  toJSON :: SetupIntentStatus' -> Value
toJSON (SetupIntentStatus'Other Value
val) = Value
val
  toJSON (SetupIntentStatus'Typed Text
val) = Text -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON Text
val
  toJSON (SetupIntentStatus'
SetupIntentStatus'EnumCanceled) = Value
"canceled"
  toJSON (SetupIntentStatus'
SetupIntentStatus'EnumProcessing) = Value
"processing"
  toJSON (SetupIntentStatus'
SetupIntentStatus'EnumRequiresAction) = Value
"requires_action"
  toJSON (SetupIntentStatus'
SetupIntentStatus'EnumRequiresConfirmation) = Value
"requires_confirmation"
  toJSON (SetupIntentStatus'
SetupIntentStatus'EnumRequiresPaymentMethod) = Value
"requires_payment_method"
  toJSON (SetupIntentStatus'
SetupIntentStatus'EnumSucceeded) = Value
"succeeded"

instance Data.Aeson.Types.FromJSON.FromJSON SetupIntentStatus' where
  parseJSON :: Value -> Parser SetupIntentStatus'
parseJSON Value
val =
    SetupIntentStatus' -> Parser SetupIntentStatus'
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure
      ( if
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"canceled" -> SetupIntentStatus'
SetupIntentStatus'EnumCanceled
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"processing" -> SetupIntentStatus'
SetupIntentStatus'EnumProcessing
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"requires_action" -> SetupIntentStatus'
SetupIntentStatus'EnumRequiresAction
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"requires_confirmation" -> SetupIntentStatus'
SetupIntentStatus'EnumRequiresConfirmation
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"requires_payment_method" -> SetupIntentStatus'
SetupIntentStatus'EnumRequiresPaymentMethod
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"succeeded" -> SetupIntentStatus'
SetupIntentStatus'EnumSucceeded
            | Bool
GHC.Base.otherwise -> Value -> SetupIntentStatus'
SetupIntentStatus'Other Value
val
      )