{-# LANGUAGE MultiWayIf #-}
{-# LANGUAGE OverloadedStrings #-}
module StripeAPI.Types.PaymentMethodDetailsSofort 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.Mandate
import {-# SOURCE #-} StripeAPI.Types.PaymentMethod
import qualified Prelude as GHC.Integer.Type
import qualified Prelude as GHC.Maybe
data PaymentMethodDetailsSofort = PaymentMethodDetailsSofort
{
PaymentMethodDetailsSofort -> Maybe Text
paymentMethodDetailsSofortBankCode :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
PaymentMethodDetailsSofort -> Maybe Text
paymentMethodDetailsSofortBankName :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
PaymentMethodDetailsSofort -> Maybe Text
paymentMethodDetailsSofortBic :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
PaymentMethodDetailsSofort -> Maybe Text
paymentMethodDetailsSofortCountry :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
PaymentMethodDetailsSofort
-> Maybe PaymentMethodDetailsSofortGeneratedSepaDebit'Variants
paymentMethodDetailsSofortGeneratedSepaDebit :: (GHC.Maybe.Maybe PaymentMethodDetailsSofortGeneratedSepaDebit'Variants),
PaymentMethodDetailsSofort
-> Maybe
PaymentMethodDetailsSofortGeneratedSepaDebitMandate'Variants
paymentMethodDetailsSofortGeneratedSepaDebitMandate :: (GHC.Maybe.Maybe PaymentMethodDetailsSofortGeneratedSepaDebitMandate'Variants),
PaymentMethodDetailsSofort -> Maybe Text
paymentMethodDetailsSofortIbanLast4 :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
PaymentMethodDetailsSofort
-> Maybe PaymentMethodDetailsSofortPreferredLanguage'
paymentMethodDetailsSofortPreferredLanguage :: (GHC.Maybe.Maybe PaymentMethodDetailsSofortPreferredLanguage'),
PaymentMethodDetailsSofort -> Maybe Text
paymentMethodDetailsSofortVerifiedName :: (GHC.Maybe.Maybe Data.Text.Internal.Text)
}
deriving
( Int -> PaymentMethodDetailsSofort -> ShowS
[PaymentMethodDetailsSofort] -> ShowS
PaymentMethodDetailsSofort -> String
(Int -> PaymentMethodDetailsSofort -> ShowS)
-> (PaymentMethodDetailsSofort -> String)
-> ([PaymentMethodDetailsSofort] -> ShowS)
-> Show PaymentMethodDetailsSofort
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PaymentMethodDetailsSofort] -> ShowS
$cshowList :: [PaymentMethodDetailsSofort] -> ShowS
show :: PaymentMethodDetailsSofort -> String
$cshow :: PaymentMethodDetailsSofort -> String
showsPrec :: Int -> PaymentMethodDetailsSofort -> ShowS
$cshowsPrec :: Int -> PaymentMethodDetailsSofort -> ShowS
GHC.Show.Show,
PaymentMethodDetailsSofort -> PaymentMethodDetailsSofort -> Bool
(PaymentMethodDetailsSofort -> PaymentMethodDetailsSofort -> Bool)
-> (PaymentMethodDetailsSofort
-> PaymentMethodDetailsSofort -> Bool)
-> Eq PaymentMethodDetailsSofort
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PaymentMethodDetailsSofort -> PaymentMethodDetailsSofort -> Bool
$c/= :: PaymentMethodDetailsSofort -> PaymentMethodDetailsSofort -> Bool
== :: PaymentMethodDetailsSofort -> PaymentMethodDetailsSofort -> Bool
$c== :: PaymentMethodDetailsSofort -> PaymentMethodDetailsSofort -> Bool
GHC.Classes.Eq
)
instance Data.Aeson.Types.ToJSON.ToJSON PaymentMethodDetailsSofort where
toJSON :: PaymentMethodDetailsSofort -> Value
toJSON PaymentMethodDetailsSofort
obj = [Pair] -> Value
Data.Aeson.Types.Internal.object (Text
"bank_code" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentMethodDetailsSofort -> Maybe Text
paymentMethodDetailsSofortBankCode PaymentMethodDetailsSofort
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..= PaymentMethodDetailsSofort -> Maybe Text
paymentMethodDetailsSofortBankName PaymentMethodDetailsSofort
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"bic" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentMethodDetailsSofort -> Maybe Text
paymentMethodDetailsSofortBic PaymentMethodDetailsSofort
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..= PaymentMethodDetailsSofort -> Maybe Text
paymentMethodDetailsSofortCountry PaymentMethodDetailsSofort
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"generated_sepa_debit" Text
-> Maybe PaymentMethodDetailsSofortGeneratedSepaDebit'Variants
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentMethodDetailsSofort
-> Maybe PaymentMethodDetailsSofortGeneratedSepaDebit'Variants
paymentMethodDetailsSofortGeneratedSepaDebit PaymentMethodDetailsSofort
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"generated_sepa_debit_mandate" Text
-> Maybe
PaymentMethodDetailsSofortGeneratedSepaDebitMandate'Variants
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentMethodDetailsSofort
-> Maybe
PaymentMethodDetailsSofortGeneratedSepaDebitMandate'Variants
paymentMethodDetailsSofortGeneratedSepaDebitMandate PaymentMethodDetailsSofort
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"iban_last4" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentMethodDetailsSofort -> Maybe Text
paymentMethodDetailsSofortIbanLast4 PaymentMethodDetailsSofort
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"preferred_language" Text -> Maybe PaymentMethodDetailsSofortPreferredLanguage' -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentMethodDetailsSofort
-> Maybe PaymentMethodDetailsSofortPreferredLanguage'
paymentMethodDetailsSofortPreferredLanguage PaymentMethodDetailsSofort
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..= PaymentMethodDetailsSofort -> Maybe Text
paymentMethodDetailsSofortVerifiedName PaymentMethodDetailsSofort
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
toEncoding :: PaymentMethodDetailsSofort -> Encoding
toEncoding PaymentMethodDetailsSofort
obj = Series -> Encoding
Data.Aeson.Encoding.Internal.pairs ((Text
"bank_code" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentMethodDetailsSofort -> Maybe Text
paymentMethodDetailsSofortBankCode PaymentMethodDetailsSofort
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..= PaymentMethodDetailsSofort -> Maybe Text
paymentMethodDetailsSofortBankName PaymentMethodDetailsSofort
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"bic" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentMethodDetailsSofort -> Maybe Text
paymentMethodDetailsSofortBic PaymentMethodDetailsSofort
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..= PaymentMethodDetailsSofort -> Maybe Text
paymentMethodDetailsSofortCountry PaymentMethodDetailsSofort
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"generated_sepa_debit" Text
-> Maybe PaymentMethodDetailsSofortGeneratedSepaDebit'Variants
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentMethodDetailsSofort
-> Maybe PaymentMethodDetailsSofortGeneratedSepaDebit'Variants
paymentMethodDetailsSofortGeneratedSepaDebit PaymentMethodDetailsSofort
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"generated_sepa_debit_mandate" Text
-> Maybe
PaymentMethodDetailsSofortGeneratedSepaDebitMandate'Variants
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentMethodDetailsSofort
-> Maybe
PaymentMethodDetailsSofortGeneratedSepaDebitMandate'Variants
paymentMethodDetailsSofortGeneratedSepaDebitMandate PaymentMethodDetailsSofort
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"iban_last4" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentMethodDetailsSofort -> Maybe Text
paymentMethodDetailsSofortIbanLast4 PaymentMethodDetailsSofort
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"preferred_language" Text
-> Maybe PaymentMethodDetailsSofortPreferredLanguage' -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PaymentMethodDetailsSofort
-> Maybe PaymentMethodDetailsSofortPreferredLanguage'
paymentMethodDetailsSofortPreferredLanguage PaymentMethodDetailsSofort
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..= PaymentMethodDetailsSofort -> Maybe Text
paymentMethodDetailsSofortVerifiedName PaymentMethodDetailsSofort
obj)))))))))
instance Data.Aeson.Types.FromJSON.FromJSON PaymentMethodDetailsSofort where
parseJSON :: Value -> Parser PaymentMethodDetailsSofort
parseJSON = String
-> (Object -> Parser PaymentMethodDetailsSofort)
-> Value
-> Parser PaymentMethodDetailsSofort
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.Aeson.Types.FromJSON.withObject String
"PaymentMethodDetailsSofort" (\Object
obj -> (((((((((Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe PaymentMethodDetailsSofortGeneratedSepaDebit'Variants
-> Maybe
PaymentMethodDetailsSofortGeneratedSepaDebitMandate'Variants
-> Maybe Text
-> Maybe PaymentMethodDetailsSofortPreferredLanguage'
-> Maybe Text
-> PaymentMethodDetailsSofort)
-> Parser
(Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe PaymentMethodDetailsSofortGeneratedSepaDebit'Variants
-> Maybe
PaymentMethodDetailsSofortGeneratedSepaDebitMandate'Variants
-> Maybe Text
-> Maybe PaymentMethodDetailsSofortPreferredLanguage'
-> Maybe Text
-> PaymentMethodDetailsSofort)
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe PaymentMethodDetailsSofortGeneratedSepaDebit'Variants
-> Maybe
PaymentMethodDetailsSofortGeneratedSepaDebitMandate'Variants
-> Maybe Text
-> Maybe PaymentMethodDetailsSofortPreferredLanguage'
-> Maybe Text
-> PaymentMethodDetailsSofort
PaymentMethodDetailsSofort Parser
(Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe PaymentMethodDetailsSofortGeneratedSepaDebit'Variants
-> Maybe
PaymentMethodDetailsSofortGeneratedSepaDebitMandate'Variants
-> Maybe Text
-> Maybe PaymentMethodDetailsSofortPreferredLanguage'
-> Maybe Text
-> PaymentMethodDetailsSofort)
-> Parser (Maybe Text)
-> Parser
(Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe PaymentMethodDetailsSofortGeneratedSepaDebit'Variants
-> Maybe
PaymentMethodDetailsSofortGeneratedSepaDebitMandate'Variants
-> Maybe Text
-> Maybe PaymentMethodDetailsSofortPreferredLanguage'
-> Maybe Text
-> PaymentMethodDetailsSofort)
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_code")) Parser
(Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe PaymentMethodDetailsSofortGeneratedSepaDebit'Variants
-> Maybe
PaymentMethodDetailsSofortGeneratedSepaDebitMandate'Variants
-> Maybe Text
-> Maybe PaymentMethodDetailsSofortPreferredLanguage'
-> Maybe Text
-> PaymentMethodDetailsSofort)
-> Parser (Maybe Text)
-> Parser
(Maybe Text
-> Maybe Text
-> Maybe PaymentMethodDetailsSofortGeneratedSepaDebit'Variants
-> Maybe
PaymentMethodDetailsSofortGeneratedSepaDebitMandate'Variants
-> Maybe Text
-> Maybe PaymentMethodDetailsSofortPreferredLanguage'
-> Maybe Text
-> PaymentMethodDetailsSofort)
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 Text
-> Maybe PaymentMethodDetailsSofortGeneratedSepaDebit'Variants
-> Maybe
PaymentMethodDetailsSofortGeneratedSepaDebitMandate'Variants
-> Maybe Text
-> Maybe PaymentMethodDetailsSofortPreferredLanguage'
-> Maybe Text
-> PaymentMethodDetailsSofort)
-> Parser (Maybe Text)
-> Parser
(Maybe Text
-> Maybe PaymentMethodDetailsSofortGeneratedSepaDebit'Variants
-> Maybe
PaymentMethodDetailsSofortGeneratedSepaDebitMandate'Variants
-> Maybe Text
-> Maybe PaymentMethodDetailsSofortPreferredLanguage'
-> Maybe Text
-> PaymentMethodDetailsSofort)
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
"bic")) Parser
(Maybe Text
-> Maybe PaymentMethodDetailsSofortGeneratedSepaDebit'Variants
-> Maybe
PaymentMethodDetailsSofortGeneratedSepaDebitMandate'Variants
-> Maybe Text
-> Maybe PaymentMethodDetailsSofortPreferredLanguage'
-> Maybe Text
-> PaymentMethodDetailsSofort)
-> Parser (Maybe Text)
-> Parser
(Maybe PaymentMethodDetailsSofortGeneratedSepaDebit'Variants
-> Maybe
PaymentMethodDetailsSofortGeneratedSepaDebitMandate'Variants
-> Maybe Text
-> Maybe PaymentMethodDetailsSofortPreferredLanguage'
-> Maybe Text
-> PaymentMethodDetailsSofort)
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 PaymentMethodDetailsSofortGeneratedSepaDebit'Variants
-> Maybe
PaymentMethodDetailsSofortGeneratedSepaDebitMandate'Variants
-> Maybe Text
-> Maybe PaymentMethodDetailsSofortPreferredLanguage'
-> Maybe Text
-> PaymentMethodDetailsSofort)
-> Parser
(Maybe PaymentMethodDetailsSofortGeneratedSepaDebit'Variants)
-> Parser
(Maybe PaymentMethodDetailsSofortGeneratedSepaDebitMandate'Variants
-> Maybe Text
-> Maybe PaymentMethodDetailsSofortPreferredLanguage'
-> Maybe Text
-> PaymentMethodDetailsSofort)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
(Maybe PaymentMethodDetailsSofortGeneratedSepaDebit'Variants)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"generated_sepa_debit")) Parser
(Maybe PaymentMethodDetailsSofortGeneratedSepaDebitMandate'Variants
-> Maybe Text
-> Maybe PaymentMethodDetailsSofortPreferredLanguage'
-> Maybe Text
-> PaymentMethodDetailsSofort)
-> Parser
(Maybe
PaymentMethodDetailsSofortGeneratedSepaDebitMandate'Variants)
-> Parser
(Maybe Text
-> Maybe PaymentMethodDetailsSofortPreferredLanguage'
-> Maybe Text
-> PaymentMethodDetailsSofort)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
(Maybe
PaymentMethodDetailsSofortGeneratedSepaDebitMandate'Variants)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"generated_sepa_debit_mandate")) Parser
(Maybe Text
-> Maybe PaymentMethodDetailsSofortPreferredLanguage'
-> Maybe Text
-> PaymentMethodDetailsSofort)
-> Parser (Maybe Text)
-> Parser
(Maybe PaymentMethodDetailsSofortPreferredLanguage'
-> Maybe Text -> PaymentMethodDetailsSofort)
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
"iban_last4")) Parser
(Maybe PaymentMethodDetailsSofortPreferredLanguage'
-> Maybe Text -> PaymentMethodDetailsSofort)
-> Parser (Maybe PaymentMethodDetailsSofortPreferredLanguage')
-> Parser (Maybe Text -> PaymentMethodDetailsSofort)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser (Maybe PaymentMethodDetailsSofortPreferredLanguage')
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"preferred_language")) Parser (Maybe Text -> PaymentMethodDetailsSofort)
-> Parser (Maybe Text) -> Parser PaymentMethodDetailsSofort
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"))
mkPaymentMethodDetailsSofort :: PaymentMethodDetailsSofort
mkPaymentMethodDetailsSofort :: PaymentMethodDetailsSofort
mkPaymentMethodDetailsSofort =
PaymentMethodDetailsSofort :: Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe PaymentMethodDetailsSofortGeneratedSepaDebit'Variants
-> Maybe
PaymentMethodDetailsSofortGeneratedSepaDebitMandate'Variants
-> Maybe Text
-> Maybe PaymentMethodDetailsSofortPreferredLanguage'
-> Maybe Text
-> PaymentMethodDetailsSofort
PaymentMethodDetailsSofort
{ paymentMethodDetailsSofortBankCode :: Maybe Text
paymentMethodDetailsSofortBankCode = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
paymentMethodDetailsSofortBankName :: Maybe Text
paymentMethodDetailsSofortBankName = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
paymentMethodDetailsSofortBic :: Maybe Text
paymentMethodDetailsSofortBic = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
paymentMethodDetailsSofortCountry :: Maybe Text
paymentMethodDetailsSofortCountry = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
paymentMethodDetailsSofortGeneratedSepaDebit :: Maybe PaymentMethodDetailsSofortGeneratedSepaDebit'Variants
paymentMethodDetailsSofortGeneratedSepaDebit = Maybe PaymentMethodDetailsSofortGeneratedSepaDebit'Variants
forall a. Maybe a
GHC.Maybe.Nothing,
paymentMethodDetailsSofortGeneratedSepaDebitMandate :: Maybe PaymentMethodDetailsSofortGeneratedSepaDebitMandate'Variants
paymentMethodDetailsSofortGeneratedSepaDebitMandate = Maybe PaymentMethodDetailsSofortGeneratedSepaDebitMandate'Variants
forall a. Maybe a
GHC.Maybe.Nothing,
paymentMethodDetailsSofortIbanLast4 :: Maybe Text
paymentMethodDetailsSofortIbanLast4 = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
paymentMethodDetailsSofortPreferredLanguage :: Maybe PaymentMethodDetailsSofortPreferredLanguage'
paymentMethodDetailsSofortPreferredLanguage = Maybe PaymentMethodDetailsSofortPreferredLanguage'
forall a. Maybe a
GHC.Maybe.Nothing,
paymentMethodDetailsSofortVerifiedName :: Maybe Text
paymentMethodDetailsSofortVerifiedName = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing
}
data PaymentMethodDetailsSofortGeneratedSepaDebit'Variants
= PaymentMethodDetailsSofortGeneratedSepaDebit'Text Data.Text.Internal.Text
| PaymentMethodDetailsSofortGeneratedSepaDebit'PaymentMethod PaymentMethod
deriving (Int
-> PaymentMethodDetailsSofortGeneratedSepaDebit'Variants -> ShowS
[PaymentMethodDetailsSofortGeneratedSepaDebit'Variants] -> ShowS
PaymentMethodDetailsSofortGeneratedSepaDebit'Variants -> String
(Int
-> PaymentMethodDetailsSofortGeneratedSepaDebit'Variants -> ShowS)
-> (PaymentMethodDetailsSofortGeneratedSepaDebit'Variants
-> String)
-> ([PaymentMethodDetailsSofortGeneratedSepaDebit'Variants]
-> ShowS)
-> Show PaymentMethodDetailsSofortGeneratedSepaDebit'Variants
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PaymentMethodDetailsSofortGeneratedSepaDebit'Variants] -> ShowS
$cshowList :: [PaymentMethodDetailsSofortGeneratedSepaDebit'Variants] -> ShowS
show :: PaymentMethodDetailsSofortGeneratedSepaDebit'Variants -> String
$cshow :: PaymentMethodDetailsSofortGeneratedSepaDebit'Variants -> String
showsPrec :: Int
-> PaymentMethodDetailsSofortGeneratedSepaDebit'Variants -> ShowS
$cshowsPrec :: Int
-> PaymentMethodDetailsSofortGeneratedSepaDebit'Variants -> ShowS
GHC.Show.Show, PaymentMethodDetailsSofortGeneratedSepaDebit'Variants
-> PaymentMethodDetailsSofortGeneratedSepaDebit'Variants -> Bool
(PaymentMethodDetailsSofortGeneratedSepaDebit'Variants
-> PaymentMethodDetailsSofortGeneratedSepaDebit'Variants -> Bool)
-> (PaymentMethodDetailsSofortGeneratedSepaDebit'Variants
-> PaymentMethodDetailsSofortGeneratedSepaDebit'Variants -> Bool)
-> Eq PaymentMethodDetailsSofortGeneratedSepaDebit'Variants
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PaymentMethodDetailsSofortGeneratedSepaDebit'Variants
-> PaymentMethodDetailsSofortGeneratedSepaDebit'Variants -> Bool
$c/= :: PaymentMethodDetailsSofortGeneratedSepaDebit'Variants
-> PaymentMethodDetailsSofortGeneratedSepaDebit'Variants -> Bool
== :: PaymentMethodDetailsSofortGeneratedSepaDebit'Variants
-> PaymentMethodDetailsSofortGeneratedSepaDebit'Variants -> Bool
$c== :: PaymentMethodDetailsSofortGeneratedSepaDebit'Variants
-> PaymentMethodDetailsSofortGeneratedSepaDebit'Variants -> Bool
GHC.Classes.Eq)
instance Data.Aeson.Types.ToJSON.ToJSON PaymentMethodDetailsSofortGeneratedSepaDebit'Variants where
toJSON :: PaymentMethodDetailsSofortGeneratedSepaDebit'Variants -> Value
toJSON (PaymentMethodDetailsSofortGeneratedSepaDebit'Text Text
a) = Text -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON Text
a
toJSON (PaymentMethodDetailsSofortGeneratedSepaDebit'PaymentMethod PaymentMethod
a) = PaymentMethod -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON PaymentMethod
a
instance Data.Aeson.Types.FromJSON.FromJSON PaymentMethodDetailsSofortGeneratedSepaDebit'Variants where
parseJSON :: Value
-> Parser PaymentMethodDetailsSofortGeneratedSepaDebit'Variants
parseJSON Value
val = case (Text -> PaymentMethodDetailsSofortGeneratedSepaDebit'Variants
PaymentMethodDetailsSofortGeneratedSepaDebit'Text (Text -> PaymentMethodDetailsSofortGeneratedSepaDebit'Variants)
-> Result Text
-> Result PaymentMethodDetailsSofortGeneratedSepaDebit'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 PaymentMethodDetailsSofortGeneratedSepaDebit'Variants
-> Result PaymentMethodDetailsSofortGeneratedSepaDebit'Variants
-> Result PaymentMethodDetailsSofortGeneratedSepaDebit'Variants
forall (f :: * -> *) a. Alternative f => f a -> f a -> f a
GHC.Base.<|> ((PaymentMethod
-> PaymentMethodDetailsSofortGeneratedSepaDebit'Variants
PaymentMethodDetailsSofortGeneratedSepaDebit'PaymentMethod (PaymentMethod
-> PaymentMethodDetailsSofortGeneratedSepaDebit'Variants)
-> Result PaymentMethod
-> Result PaymentMethodDetailsSofortGeneratedSepaDebit'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 PaymentMethodDetailsSofortGeneratedSepaDebit'Variants
-> Result PaymentMethodDetailsSofortGeneratedSepaDebit'Variants
-> Result PaymentMethodDetailsSofortGeneratedSepaDebit'Variants
forall (f :: * -> *) a. Alternative f => f a -> f a -> f a
GHC.Base.<|> String
-> Result PaymentMethodDetailsSofortGeneratedSepaDebit'Variants
forall a. String -> Result a
Data.Aeson.Types.Internal.Error String
"No variant matched") of
Data.Aeson.Types.Internal.Success PaymentMethodDetailsSofortGeneratedSepaDebit'Variants
a -> PaymentMethodDetailsSofortGeneratedSepaDebit'Variants
-> Parser PaymentMethodDetailsSofortGeneratedSepaDebit'Variants
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure PaymentMethodDetailsSofortGeneratedSepaDebit'Variants
a
Data.Aeson.Types.Internal.Error String
a -> String
-> Parser PaymentMethodDetailsSofortGeneratedSepaDebit'Variants
forall (m :: * -> *) a. MonadFail m => String -> m a
Control.Monad.Fail.fail String
a
data PaymentMethodDetailsSofortGeneratedSepaDebitMandate'Variants
= PaymentMethodDetailsSofortGeneratedSepaDebitMandate'Text Data.Text.Internal.Text
| PaymentMethodDetailsSofortGeneratedSepaDebitMandate'Mandate Mandate
deriving (Int
-> PaymentMethodDetailsSofortGeneratedSepaDebitMandate'Variants
-> ShowS
[PaymentMethodDetailsSofortGeneratedSepaDebitMandate'Variants]
-> ShowS
PaymentMethodDetailsSofortGeneratedSepaDebitMandate'Variants
-> String
(Int
-> PaymentMethodDetailsSofortGeneratedSepaDebitMandate'Variants
-> ShowS)
-> (PaymentMethodDetailsSofortGeneratedSepaDebitMandate'Variants
-> String)
-> ([PaymentMethodDetailsSofortGeneratedSepaDebitMandate'Variants]
-> ShowS)
-> Show
PaymentMethodDetailsSofortGeneratedSepaDebitMandate'Variants
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PaymentMethodDetailsSofortGeneratedSepaDebitMandate'Variants]
-> ShowS
$cshowList :: [PaymentMethodDetailsSofortGeneratedSepaDebitMandate'Variants]
-> ShowS
show :: PaymentMethodDetailsSofortGeneratedSepaDebitMandate'Variants
-> String
$cshow :: PaymentMethodDetailsSofortGeneratedSepaDebitMandate'Variants
-> String
showsPrec :: Int
-> PaymentMethodDetailsSofortGeneratedSepaDebitMandate'Variants
-> ShowS
$cshowsPrec :: Int
-> PaymentMethodDetailsSofortGeneratedSepaDebitMandate'Variants
-> ShowS
GHC.Show.Show, PaymentMethodDetailsSofortGeneratedSepaDebitMandate'Variants
-> PaymentMethodDetailsSofortGeneratedSepaDebitMandate'Variants
-> Bool
(PaymentMethodDetailsSofortGeneratedSepaDebitMandate'Variants
-> PaymentMethodDetailsSofortGeneratedSepaDebitMandate'Variants
-> Bool)
-> (PaymentMethodDetailsSofortGeneratedSepaDebitMandate'Variants
-> PaymentMethodDetailsSofortGeneratedSepaDebitMandate'Variants
-> Bool)
-> Eq PaymentMethodDetailsSofortGeneratedSepaDebitMandate'Variants
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PaymentMethodDetailsSofortGeneratedSepaDebitMandate'Variants
-> PaymentMethodDetailsSofortGeneratedSepaDebitMandate'Variants
-> Bool
$c/= :: PaymentMethodDetailsSofortGeneratedSepaDebitMandate'Variants
-> PaymentMethodDetailsSofortGeneratedSepaDebitMandate'Variants
-> Bool
== :: PaymentMethodDetailsSofortGeneratedSepaDebitMandate'Variants
-> PaymentMethodDetailsSofortGeneratedSepaDebitMandate'Variants
-> Bool
$c== :: PaymentMethodDetailsSofortGeneratedSepaDebitMandate'Variants
-> PaymentMethodDetailsSofortGeneratedSepaDebitMandate'Variants
-> Bool
GHC.Classes.Eq)
instance Data.Aeson.Types.ToJSON.ToJSON PaymentMethodDetailsSofortGeneratedSepaDebitMandate'Variants where
toJSON :: PaymentMethodDetailsSofortGeneratedSepaDebitMandate'Variants
-> Value
toJSON (PaymentMethodDetailsSofortGeneratedSepaDebitMandate'Text Text
a) = Text -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON Text
a
toJSON (PaymentMethodDetailsSofortGeneratedSepaDebitMandate'Mandate Mandate
a) = Mandate -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON Mandate
a
instance Data.Aeson.Types.FromJSON.FromJSON PaymentMethodDetailsSofortGeneratedSepaDebitMandate'Variants where
parseJSON :: Value
-> Parser
PaymentMethodDetailsSofortGeneratedSepaDebitMandate'Variants
parseJSON Value
val = case (Text
-> PaymentMethodDetailsSofortGeneratedSepaDebitMandate'Variants
PaymentMethodDetailsSofortGeneratedSepaDebitMandate'Text (Text
-> PaymentMethodDetailsSofortGeneratedSepaDebitMandate'Variants)
-> Result Text
-> Result
PaymentMethodDetailsSofortGeneratedSepaDebitMandate'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 PaymentMethodDetailsSofortGeneratedSepaDebitMandate'Variants
-> Result
PaymentMethodDetailsSofortGeneratedSepaDebitMandate'Variants
-> Result
PaymentMethodDetailsSofortGeneratedSepaDebitMandate'Variants
forall (f :: * -> *) a. Alternative f => f a -> f a -> f a
GHC.Base.<|> ((Mandate
-> PaymentMethodDetailsSofortGeneratedSepaDebitMandate'Variants
PaymentMethodDetailsSofortGeneratedSepaDebitMandate'Mandate (Mandate
-> PaymentMethodDetailsSofortGeneratedSepaDebitMandate'Variants)
-> Result Mandate
-> Result
PaymentMethodDetailsSofortGeneratedSepaDebitMandate'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 PaymentMethodDetailsSofortGeneratedSepaDebitMandate'Variants
-> Result
PaymentMethodDetailsSofortGeneratedSepaDebitMandate'Variants
-> Result
PaymentMethodDetailsSofortGeneratedSepaDebitMandate'Variants
forall (f :: * -> *) a. Alternative f => f a -> f a -> f a
GHC.Base.<|> String
-> Result
PaymentMethodDetailsSofortGeneratedSepaDebitMandate'Variants
forall a. String -> Result a
Data.Aeson.Types.Internal.Error String
"No variant matched") of
Data.Aeson.Types.Internal.Success PaymentMethodDetailsSofortGeneratedSepaDebitMandate'Variants
a -> PaymentMethodDetailsSofortGeneratedSepaDebitMandate'Variants
-> Parser
PaymentMethodDetailsSofortGeneratedSepaDebitMandate'Variants
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure PaymentMethodDetailsSofortGeneratedSepaDebitMandate'Variants
a
Data.Aeson.Types.Internal.Error String
a -> String
-> Parser
PaymentMethodDetailsSofortGeneratedSepaDebitMandate'Variants
forall (m :: * -> *) a. MonadFail m => String -> m a
Control.Monad.Fail.fail String
a
data PaymentMethodDetailsSofortPreferredLanguage'
=
PaymentMethodDetailsSofortPreferredLanguage'Other Data.Aeson.Types.Internal.Value
|
PaymentMethodDetailsSofortPreferredLanguage'Typed Data.Text.Internal.Text
|
PaymentMethodDetailsSofortPreferredLanguage'EnumDe
|
PaymentMethodDetailsSofortPreferredLanguage'EnumEn
|
PaymentMethodDetailsSofortPreferredLanguage'EnumEs
|
PaymentMethodDetailsSofortPreferredLanguage'EnumFr
|
PaymentMethodDetailsSofortPreferredLanguage'EnumIt
|
PaymentMethodDetailsSofortPreferredLanguage'EnumNl
|
PaymentMethodDetailsSofortPreferredLanguage'EnumPl
deriving (Int -> PaymentMethodDetailsSofortPreferredLanguage' -> ShowS
[PaymentMethodDetailsSofortPreferredLanguage'] -> ShowS
PaymentMethodDetailsSofortPreferredLanguage' -> String
(Int -> PaymentMethodDetailsSofortPreferredLanguage' -> ShowS)
-> (PaymentMethodDetailsSofortPreferredLanguage' -> String)
-> ([PaymentMethodDetailsSofortPreferredLanguage'] -> ShowS)
-> Show PaymentMethodDetailsSofortPreferredLanguage'
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PaymentMethodDetailsSofortPreferredLanguage'] -> ShowS
$cshowList :: [PaymentMethodDetailsSofortPreferredLanguage'] -> ShowS
show :: PaymentMethodDetailsSofortPreferredLanguage' -> String
$cshow :: PaymentMethodDetailsSofortPreferredLanguage' -> String
showsPrec :: Int -> PaymentMethodDetailsSofortPreferredLanguage' -> ShowS
$cshowsPrec :: Int -> PaymentMethodDetailsSofortPreferredLanguage' -> ShowS
GHC.Show.Show, PaymentMethodDetailsSofortPreferredLanguage'
-> PaymentMethodDetailsSofortPreferredLanguage' -> Bool
(PaymentMethodDetailsSofortPreferredLanguage'
-> PaymentMethodDetailsSofortPreferredLanguage' -> Bool)
-> (PaymentMethodDetailsSofortPreferredLanguage'
-> PaymentMethodDetailsSofortPreferredLanguage' -> Bool)
-> Eq PaymentMethodDetailsSofortPreferredLanguage'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PaymentMethodDetailsSofortPreferredLanguage'
-> PaymentMethodDetailsSofortPreferredLanguage' -> Bool
$c/= :: PaymentMethodDetailsSofortPreferredLanguage'
-> PaymentMethodDetailsSofortPreferredLanguage' -> Bool
== :: PaymentMethodDetailsSofortPreferredLanguage'
-> PaymentMethodDetailsSofortPreferredLanguage' -> Bool
$c== :: PaymentMethodDetailsSofortPreferredLanguage'
-> PaymentMethodDetailsSofortPreferredLanguage' -> Bool
GHC.Classes.Eq)
instance Data.Aeson.Types.ToJSON.ToJSON PaymentMethodDetailsSofortPreferredLanguage' where
toJSON :: PaymentMethodDetailsSofortPreferredLanguage' -> Value
toJSON (PaymentMethodDetailsSofortPreferredLanguage'Other Value
val) = Value
val
toJSON (PaymentMethodDetailsSofortPreferredLanguage'Typed Text
val) = Text -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON Text
val
toJSON (PaymentMethodDetailsSofortPreferredLanguage'
PaymentMethodDetailsSofortPreferredLanguage'EnumDe) = Value
"de"
toJSON (PaymentMethodDetailsSofortPreferredLanguage'
PaymentMethodDetailsSofortPreferredLanguage'EnumEn) = Value
"en"
toJSON (PaymentMethodDetailsSofortPreferredLanguage'
PaymentMethodDetailsSofortPreferredLanguage'EnumEs) = Value
"es"
toJSON (PaymentMethodDetailsSofortPreferredLanguage'
PaymentMethodDetailsSofortPreferredLanguage'EnumFr) = Value
"fr"
toJSON (PaymentMethodDetailsSofortPreferredLanguage'
PaymentMethodDetailsSofortPreferredLanguage'EnumIt) = Value
"it"
toJSON (PaymentMethodDetailsSofortPreferredLanguage'
PaymentMethodDetailsSofortPreferredLanguage'EnumNl) = Value
"nl"
toJSON (PaymentMethodDetailsSofortPreferredLanguage'
PaymentMethodDetailsSofortPreferredLanguage'EnumPl) = Value
"pl"
instance Data.Aeson.Types.FromJSON.FromJSON PaymentMethodDetailsSofortPreferredLanguage' where
parseJSON :: Value -> Parser PaymentMethodDetailsSofortPreferredLanguage'
parseJSON Value
val =
PaymentMethodDetailsSofortPreferredLanguage'
-> Parser PaymentMethodDetailsSofortPreferredLanguage'
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure
( if
| Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"de" -> PaymentMethodDetailsSofortPreferredLanguage'
PaymentMethodDetailsSofortPreferredLanguage'EnumDe
| Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"en" -> PaymentMethodDetailsSofortPreferredLanguage'
PaymentMethodDetailsSofortPreferredLanguage'EnumEn
| Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"es" -> PaymentMethodDetailsSofortPreferredLanguage'
PaymentMethodDetailsSofortPreferredLanguage'EnumEs
| Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"fr" -> PaymentMethodDetailsSofortPreferredLanguage'
PaymentMethodDetailsSofortPreferredLanguage'EnumFr
| Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"it" -> PaymentMethodDetailsSofortPreferredLanguage'
PaymentMethodDetailsSofortPreferredLanguage'EnumIt
| Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"nl" -> PaymentMethodDetailsSofortPreferredLanguage'
PaymentMethodDetailsSofortPreferredLanguage'EnumNl
| Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"pl" -> PaymentMethodDetailsSofortPreferredLanguage'
PaymentMethodDetailsSofortPreferredLanguage'EnumPl
| Bool
GHC.Base.otherwise -> Value -> PaymentMethodDetailsSofortPreferredLanguage'
PaymentMethodDetailsSofortPreferredLanguage'Other Value
val
)