{-# LANGUAGE MultiWayIf #-}
{-# LANGUAGE OverloadedStrings #-}
module StripeAPI.Types.Mandate 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.CustomerAcceptance
import {-# SOURCE #-} StripeAPI.Types.MandatePaymentMethodDetails
import {-# SOURCE #-} StripeAPI.Types.MandateSingleUse
import {-# SOURCE #-} StripeAPI.Types.PaymentMethod
import qualified Prelude as GHC.Integer.Type
import qualified Prelude as GHC.Maybe
data Mandate = Mandate
{
Mandate -> CustomerAcceptance
mandateCustomerAcceptance :: CustomerAcceptance,
Mandate -> Text
mandateId :: Data.Text.Internal.Text,
Mandate -> Bool
mandateLivemode :: GHC.Types.Bool,
Mandate -> Maybe MandateMultiUse
mandateMultiUse :: (GHC.Maybe.Maybe MandateMultiUse),
Mandate -> MandatePaymentMethod'Variants
mandatePaymentMethod :: MandatePaymentMethod'Variants,
Mandate -> MandatePaymentMethodDetails
mandatePaymentMethodDetails :: MandatePaymentMethodDetails,
Mandate -> Maybe MandateSingleUse
mandateSingleUse :: (GHC.Maybe.Maybe MandateSingleUse),
Mandate -> MandateStatus'
mandateStatus :: MandateStatus',
Mandate -> MandateType'
mandateType :: MandateType'
}
deriving
( Int -> Mandate -> ShowS
[Mandate] -> ShowS
Mandate -> String
(Int -> Mandate -> ShowS)
-> (Mandate -> String) -> ([Mandate] -> ShowS) -> Show Mandate
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [Mandate] -> ShowS
$cshowList :: [Mandate] -> ShowS
show :: Mandate -> String
$cshow :: Mandate -> String
showsPrec :: Int -> Mandate -> ShowS
$cshowsPrec :: Int -> Mandate -> ShowS
GHC.Show.Show,
Mandate -> Mandate -> Bool
(Mandate -> Mandate -> Bool)
-> (Mandate -> Mandate -> Bool) -> Eq Mandate
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: Mandate -> Mandate -> Bool
$c/= :: Mandate -> Mandate -> Bool
== :: Mandate -> Mandate -> Bool
$c== :: Mandate -> Mandate -> Bool
GHC.Classes.Eq
)
instance Data.Aeson.Types.ToJSON.ToJSON Mandate where
toJSON :: Mandate -> Value
toJSON Mandate
obj = [Pair] -> Value
Data.Aeson.Types.Internal.object (Text
"customer_acceptance" Text -> CustomerAcceptance -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Mandate -> CustomerAcceptance
mandateCustomerAcceptance Mandate
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..= Mandate -> Text
mandateId Mandate
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..= Mandate -> Bool
mandateLivemode Mandate
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"multi_use" Text -> Maybe MandateMultiUse -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Mandate -> Maybe MandateMultiUse
mandateMultiUse Mandate
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"payment_method" Text -> MandatePaymentMethod'Variants -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Mandate -> MandatePaymentMethod'Variants
mandatePaymentMethod Mandate
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"payment_method_details" Text -> MandatePaymentMethodDetails -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Mandate -> MandatePaymentMethodDetails
mandatePaymentMethodDetails Mandate
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"single_use" Text -> Maybe MandateSingleUse -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Mandate -> Maybe MandateSingleUse
mandateSingleUse Mandate
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"status" Text -> MandateStatus' -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Mandate -> MandateStatus'
mandateStatus Mandate
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"type" Text -> MandateType' -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Mandate -> MandateType'
mandateType Mandate
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
"mandate" Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
toEncoding :: Mandate -> Encoding
toEncoding Mandate
obj = Series -> Encoding
Data.Aeson.Encoding.Internal.pairs ((Text
"customer_acceptance" Text -> CustomerAcceptance -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Mandate -> CustomerAcceptance
mandateCustomerAcceptance Mandate
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..= Mandate -> Text
mandateId Mandate
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..= Mandate -> Bool
mandateLivemode Mandate
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"multi_use" Text -> Maybe MandateMultiUse -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Mandate -> Maybe MandateMultiUse
mandateMultiUse Mandate
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"payment_method" Text -> MandatePaymentMethod'Variants -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Mandate -> MandatePaymentMethod'Variants
mandatePaymentMethod Mandate
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"payment_method_details" Text -> MandatePaymentMethodDetails -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Mandate -> MandatePaymentMethodDetails
mandatePaymentMethodDetails Mandate
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"single_use" Text -> Maybe MandateSingleUse -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Mandate -> Maybe MandateSingleUse
mandateSingleUse Mandate
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"status" Text -> MandateStatus' -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Mandate -> MandateStatus'
mandateStatus Mandate
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"type" Text -> MandateType' -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Mandate -> MandateType'
mandateType Mandate
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
"mandate"))))))))))
instance Data.Aeson.Types.FromJSON.FromJSON Mandate where
parseJSON :: Value -> Parser Mandate
parseJSON = String
-> (MandateMultiUse -> Parser Mandate) -> Value -> Parser Mandate
forall a.
String -> (MandateMultiUse -> Parser a) -> Value -> Parser a
Data.Aeson.Types.FromJSON.withObject String
"Mandate" (\MandateMultiUse
obj -> (((((((((CustomerAcceptance
-> Text
-> Bool
-> Maybe MandateMultiUse
-> MandatePaymentMethod'Variants
-> MandatePaymentMethodDetails
-> Maybe MandateSingleUse
-> MandateStatus'
-> MandateType'
-> Mandate)
-> Parser
(CustomerAcceptance
-> Text
-> Bool
-> Maybe MandateMultiUse
-> MandatePaymentMethod'Variants
-> MandatePaymentMethodDetails
-> Maybe MandateSingleUse
-> MandateStatus'
-> MandateType'
-> Mandate)
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure CustomerAcceptance
-> Text
-> Bool
-> Maybe MandateMultiUse
-> MandatePaymentMethod'Variants
-> MandatePaymentMethodDetails
-> Maybe MandateSingleUse
-> MandateStatus'
-> MandateType'
-> Mandate
Mandate Parser
(CustomerAcceptance
-> Text
-> Bool
-> Maybe MandateMultiUse
-> MandatePaymentMethod'Variants
-> MandatePaymentMethodDetails
-> Maybe MandateSingleUse
-> MandateStatus'
-> MandateType'
-> Mandate)
-> Parser CustomerAcceptance
-> Parser
(Text
-> Bool
-> Maybe MandateMultiUse
-> MandatePaymentMethod'Variants
-> MandatePaymentMethodDetails
-> Maybe MandateSingleUse
-> MandateStatus'
-> MandateType'
-> Mandate)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (MandateMultiUse
obj MandateMultiUse -> Text -> Parser CustomerAcceptance
forall a. FromJSON a => MandateMultiUse -> Text -> Parser a
Data.Aeson.Types.FromJSON..: Text
"customer_acceptance")) Parser
(Text
-> Bool
-> Maybe MandateMultiUse
-> MandatePaymentMethod'Variants
-> MandatePaymentMethodDetails
-> Maybe MandateSingleUse
-> MandateStatus'
-> MandateType'
-> Mandate)
-> Parser Text
-> Parser
(Bool
-> Maybe MandateMultiUse
-> MandatePaymentMethod'Variants
-> MandatePaymentMethodDetails
-> Maybe MandateSingleUse
-> MandateStatus'
-> MandateType'
-> Mandate)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (MandateMultiUse
obj MandateMultiUse -> Text -> Parser Text
forall a. FromJSON a => MandateMultiUse -> Text -> Parser a
Data.Aeson.Types.FromJSON..: Text
"id")) Parser
(Bool
-> Maybe MandateMultiUse
-> MandatePaymentMethod'Variants
-> MandatePaymentMethodDetails
-> Maybe MandateSingleUse
-> MandateStatus'
-> MandateType'
-> Mandate)
-> Parser Bool
-> Parser
(Maybe MandateMultiUse
-> MandatePaymentMethod'Variants
-> MandatePaymentMethodDetails
-> Maybe MandateSingleUse
-> MandateStatus'
-> MandateType'
-> Mandate)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (MandateMultiUse
obj MandateMultiUse -> Text -> Parser Bool
forall a. FromJSON a => MandateMultiUse -> Text -> Parser a
Data.Aeson.Types.FromJSON..: Text
"livemode")) Parser
(Maybe MandateMultiUse
-> MandatePaymentMethod'Variants
-> MandatePaymentMethodDetails
-> Maybe MandateSingleUse
-> MandateStatus'
-> MandateType'
-> Mandate)
-> Parser (Maybe MandateMultiUse)
-> Parser
(MandatePaymentMethod'Variants
-> MandatePaymentMethodDetails
-> Maybe MandateSingleUse
-> MandateStatus'
-> MandateType'
-> Mandate)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (MandateMultiUse
obj MandateMultiUse -> Text -> Parser (Maybe MandateMultiUse)
forall a. FromJSON a => MandateMultiUse -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"multi_use")) Parser
(MandatePaymentMethod'Variants
-> MandatePaymentMethodDetails
-> Maybe MandateSingleUse
-> MandateStatus'
-> MandateType'
-> Mandate)
-> Parser MandatePaymentMethod'Variants
-> Parser
(MandatePaymentMethodDetails
-> Maybe MandateSingleUse
-> MandateStatus'
-> MandateType'
-> Mandate)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (MandateMultiUse
obj MandateMultiUse -> Text -> Parser MandatePaymentMethod'Variants
forall a. FromJSON a => MandateMultiUse -> Text -> Parser a
Data.Aeson.Types.FromJSON..: Text
"payment_method")) Parser
(MandatePaymentMethodDetails
-> Maybe MandateSingleUse
-> MandateStatus'
-> MandateType'
-> Mandate)
-> Parser MandatePaymentMethodDetails
-> Parser
(Maybe MandateSingleUse
-> MandateStatus' -> MandateType' -> Mandate)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (MandateMultiUse
obj MandateMultiUse -> Text -> Parser MandatePaymentMethodDetails
forall a. FromJSON a => MandateMultiUse -> Text -> Parser a
Data.Aeson.Types.FromJSON..: Text
"payment_method_details")) Parser
(Maybe MandateSingleUse
-> MandateStatus' -> MandateType' -> Mandate)
-> Parser (Maybe MandateSingleUse)
-> Parser (MandateStatus' -> MandateType' -> Mandate)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (MandateMultiUse
obj MandateMultiUse -> Text -> Parser (Maybe MandateSingleUse)
forall a. FromJSON a => MandateMultiUse -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"single_use")) Parser (MandateStatus' -> MandateType' -> Mandate)
-> Parser MandateStatus' -> Parser (MandateType' -> Mandate)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (MandateMultiUse
obj MandateMultiUse -> Text -> Parser MandateStatus'
forall a. FromJSON a => MandateMultiUse -> Text -> Parser a
Data.Aeson.Types.FromJSON..: Text
"status")) Parser (MandateType' -> Mandate)
-> Parser MandateType' -> Parser Mandate
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (MandateMultiUse
obj MandateMultiUse -> Text -> Parser MandateType'
forall a. FromJSON a => MandateMultiUse -> Text -> Parser a
Data.Aeson.Types.FromJSON..: Text
"type"))
mkMandate ::
CustomerAcceptance ->
Data.Text.Internal.Text ->
GHC.Types.Bool ->
MandatePaymentMethod'Variants ->
MandatePaymentMethodDetails ->
MandateStatus' ->
MandateType' ->
Mandate
mkMandate :: CustomerAcceptance
-> Text
-> Bool
-> MandatePaymentMethod'Variants
-> MandatePaymentMethodDetails
-> MandateStatus'
-> MandateType'
-> Mandate
mkMandate CustomerAcceptance
mandateCustomerAcceptance Text
mandateId Bool
mandateLivemode MandatePaymentMethod'Variants
mandatePaymentMethod MandatePaymentMethodDetails
mandatePaymentMethodDetails MandateStatus'
mandateStatus MandateType'
mandateType =
Mandate :: CustomerAcceptance
-> Text
-> Bool
-> Maybe MandateMultiUse
-> MandatePaymentMethod'Variants
-> MandatePaymentMethodDetails
-> Maybe MandateSingleUse
-> MandateStatus'
-> MandateType'
-> Mandate
Mandate
{ mandateCustomerAcceptance :: CustomerAcceptance
mandateCustomerAcceptance = CustomerAcceptance
mandateCustomerAcceptance,
mandateId :: Text
mandateId = Text
mandateId,
mandateLivemode :: Bool
mandateLivemode = Bool
mandateLivemode,
mandateMultiUse :: Maybe MandateMultiUse
mandateMultiUse = Maybe MandateMultiUse
forall a. Maybe a
GHC.Maybe.Nothing,
mandatePaymentMethod :: MandatePaymentMethod'Variants
mandatePaymentMethod = MandatePaymentMethod'Variants
mandatePaymentMethod,
mandatePaymentMethodDetails :: MandatePaymentMethodDetails
mandatePaymentMethodDetails = MandatePaymentMethodDetails
mandatePaymentMethodDetails,
mandateSingleUse :: Maybe MandateSingleUse
mandateSingleUse = Maybe MandateSingleUse
forall a. Maybe a
GHC.Maybe.Nothing,
mandateStatus :: MandateStatus'
mandateStatus = MandateStatus'
mandateStatus,
mandateType :: MandateType'
mandateType = MandateType'
mandateType
}
data MandatePaymentMethod'Variants
= MandatePaymentMethod'Text Data.Text.Internal.Text
| MandatePaymentMethod'PaymentMethod PaymentMethod
deriving (Int -> MandatePaymentMethod'Variants -> ShowS
[MandatePaymentMethod'Variants] -> ShowS
MandatePaymentMethod'Variants -> String
(Int -> MandatePaymentMethod'Variants -> ShowS)
-> (MandatePaymentMethod'Variants -> String)
-> ([MandatePaymentMethod'Variants] -> ShowS)
-> Show MandatePaymentMethod'Variants
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [MandatePaymentMethod'Variants] -> ShowS
$cshowList :: [MandatePaymentMethod'Variants] -> ShowS
show :: MandatePaymentMethod'Variants -> String
$cshow :: MandatePaymentMethod'Variants -> String
showsPrec :: Int -> MandatePaymentMethod'Variants -> ShowS
$cshowsPrec :: Int -> MandatePaymentMethod'Variants -> ShowS
GHC.Show.Show, MandatePaymentMethod'Variants
-> MandatePaymentMethod'Variants -> Bool
(MandatePaymentMethod'Variants
-> MandatePaymentMethod'Variants -> Bool)
-> (MandatePaymentMethod'Variants
-> MandatePaymentMethod'Variants -> Bool)
-> Eq MandatePaymentMethod'Variants
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: MandatePaymentMethod'Variants
-> MandatePaymentMethod'Variants -> Bool
$c/= :: MandatePaymentMethod'Variants
-> MandatePaymentMethod'Variants -> Bool
== :: MandatePaymentMethod'Variants
-> MandatePaymentMethod'Variants -> Bool
$c== :: MandatePaymentMethod'Variants
-> MandatePaymentMethod'Variants -> Bool
GHC.Classes.Eq)
instance Data.Aeson.Types.ToJSON.ToJSON MandatePaymentMethod'Variants where
toJSON :: MandatePaymentMethod'Variants -> Value
toJSON (MandatePaymentMethod'Text Text
a) = Text -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON Text
a
toJSON (MandatePaymentMethod'PaymentMethod PaymentMethod
a) = PaymentMethod -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON PaymentMethod
a
instance Data.Aeson.Types.FromJSON.FromJSON MandatePaymentMethod'Variants where
parseJSON :: Value -> Parser MandatePaymentMethod'Variants
parseJSON Value
val = case (Text -> MandatePaymentMethod'Variants
MandatePaymentMethod'Text (Text -> MandatePaymentMethod'Variants)
-> Result Text -> Result MandatePaymentMethod'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 MandatePaymentMethod'Variants
-> Result MandatePaymentMethod'Variants
-> Result MandatePaymentMethod'Variants
forall (f :: * -> *) a. Alternative f => f a -> f a -> f a
GHC.Base.<|> ((PaymentMethod -> MandatePaymentMethod'Variants
MandatePaymentMethod'PaymentMethod (PaymentMethod -> MandatePaymentMethod'Variants)
-> Result PaymentMethod -> Result MandatePaymentMethod'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 MandatePaymentMethod'Variants
-> Result MandatePaymentMethod'Variants
-> Result MandatePaymentMethod'Variants
forall (f :: * -> *) a. Alternative f => f a -> f a -> f a
GHC.Base.<|> String -> Result MandatePaymentMethod'Variants
forall a. String -> Result a
Data.Aeson.Types.Internal.Error String
"No variant matched") of
Data.Aeson.Types.Internal.Success MandatePaymentMethod'Variants
a -> MandatePaymentMethod'Variants
-> Parser MandatePaymentMethod'Variants
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure MandatePaymentMethod'Variants
a
Data.Aeson.Types.Internal.Error String
a -> String -> Parser MandatePaymentMethod'Variants
forall (m :: * -> *) a. MonadFail m => String -> m a
Control.Monad.Fail.fail String
a
data MandateStatus'
=
MandateStatus'Other Data.Aeson.Types.Internal.Value
|
MandateStatus'Typed Data.Text.Internal.Text
|
MandateStatus'EnumActive
|
MandateStatus'EnumInactive
|
MandateStatus'EnumPending
deriving (Int -> MandateStatus' -> ShowS
[MandateStatus'] -> ShowS
MandateStatus' -> String
(Int -> MandateStatus' -> ShowS)
-> (MandateStatus' -> String)
-> ([MandateStatus'] -> ShowS)
-> Show MandateStatus'
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [MandateStatus'] -> ShowS
$cshowList :: [MandateStatus'] -> ShowS
show :: MandateStatus' -> String
$cshow :: MandateStatus' -> String
showsPrec :: Int -> MandateStatus' -> ShowS
$cshowsPrec :: Int -> MandateStatus' -> ShowS
GHC.Show.Show, MandateStatus' -> MandateStatus' -> Bool
(MandateStatus' -> MandateStatus' -> Bool)
-> (MandateStatus' -> MandateStatus' -> Bool) -> Eq MandateStatus'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: MandateStatus' -> MandateStatus' -> Bool
$c/= :: MandateStatus' -> MandateStatus' -> Bool
== :: MandateStatus' -> MandateStatus' -> Bool
$c== :: MandateStatus' -> MandateStatus' -> Bool
GHC.Classes.Eq)
instance Data.Aeson.Types.ToJSON.ToJSON MandateStatus' where
toJSON :: MandateStatus' -> Value
toJSON (MandateStatus'Other Value
val) = Value
val
toJSON (MandateStatus'Typed Text
val) = Text -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON Text
val
toJSON (MandateStatus'
MandateStatus'EnumActive) = Value
"active"
toJSON (MandateStatus'
MandateStatus'EnumInactive) = Value
"inactive"
toJSON (MandateStatus'
MandateStatus'EnumPending) = Value
"pending"
instance Data.Aeson.Types.FromJSON.FromJSON MandateStatus' where
parseJSON :: Value -> Parser MandateStatus'
parseJSON Value
val =
MandateStatus' -> Parser MandateStatus'
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
"active" -> MandateStatus'
MandateStatus'EnumActive
| Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"inactive" -> MandateStatus'
MandateStatus'EnumInactive
| Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"pending" -> MandateStatus'
MandateStatus'EnumPending
| Bool
GHC.Base.otherwise -> Value -> MandateStatus'
MandateStatus'Other Value
val
)
data MandateType'
=
MandateType'Other Data.Aeson.Types.Internal.Value
|
MandateType'Typed Data.Text.Internal.Text
|
MandateType'EnumMultiUse
|
MandateType'EnumSingleUse
deriving (Int -> MandateType' -> ShowS
[MandateType'] -> ShowS
MandateType' -> String
(Int -> MandateType' -> ShowS)
-> (MandateType' -> String)
-> ([MandateType'] -> ShowS)
-> Show MandateType'
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [MandateType'] -> ShowS
$cshowList :: [MandateType'] -> ShowS
show :: MandateType' -> String
$cshow :: MandateType' -> String
showsPrec :: Int -> MandateType' -> ShowS
$cshowsPrec :: Int -> MandateType' -> ShowS
GHC.Show.Show, MandateType' -> MandateType' -> Bool
(MandateType' -> MandateType' -> Bool)
-> (MandateType' -> MandateType' -> Bool) -> Eq MandateType'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: MandateType' -> MandateType' -> Bool
$c/= :: MandateType' -> MandateType' -> Bool
== :: MandateType' -> MandateType' -> Bool
$c== :: MandateType' -> MandateType' -> Bool
GHC.Classes.Eq)
instance Data.Aeson.Types.ToJSON.ToJSON MandateType' where
toJSON :: MandateType' -> Value
toJSON (MandateType'Other Value
val) = Value
val
toJSON (MandateType'Typed Text
val) = Text -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON Text
val
toJSON (MandateType'
MandateType'EnumMultiUse) = Value
"multi_use"
toJSON (MandateType'
MandateType'EnumSingleUse) = Value
"single_use"
instance Data.Aeson.Types.FromJSON.FromJSON MandateType' where
parseJSON :: Value -> Parser MandateType'
parseJSON Value
val =
MandateType' -> Parser MandateType'
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
"multi_use" -> MandateType'
MandateType'EnumMultiUse
| Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"single_use" -> MandateType'
MandateType'EnumSingleUse
| Bool
GHC.Base.otherwise -> Value -> MandateType'
MandateType'Other Value
val
)