{-# LANGUAGE MultiWayIf #-}
{-# LANGUAGE OverloadedStrings #-}
module StripeAPI.Types.IssuerFraudRecord 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.Charge
import qualified Prelude as GHC.Integer.Type
import qualified Prelude as GHC.Maybe
data IssuerFraudRecord = IssuerFraudRecord
{
IssuerFraudRecord -> Bool
issuerFraudRecordActionable :: GHC.Types.Bool,
IssuerFraudRecord -> IssuerFraudRecordCharge'Variants
issuerFraudRecordCharge :: IssuerFraudRecordCharge'Variants,
IssuerFraudRecord -> Int
issuerFraudRecordCreated :: GHC.Types.Int,
IssuerFraudRecord -> Text
issuerFraudRecordFraudType :: Data.Text.Internal.Text,
IssuerFraudRecord -> Bool
issuerFraudRecordHasLiabilityShift :: GHC.Types.Bool,
IssuerFraudRecord -> Text
issuerFraudRecordId :: Data.Text.Internal.Text,
IssuerFraudRecord -> Bool
issuerFraudRecordLivemode :: GHC.Types.Bool,
IssuerFraudRecord -> Int
issuerFraudRecordPostDate :: GHC.Types.Int
}
deriving
( Int -> IssuerFraudRecord -> ShowS
[IssuerFraudRecord] -> ShowS
IssuerFraudRecord -> String
(Int -> IssuerFraudRecord -> ShowS)
-> (IssuerFraudRecord -> String)
-> ([IssuerFraudRecord] -> ShowS)
-> Show IssuerFraudRecord
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [IssuerFraudRecord] -> ShowS
$cshowList :: [IssuerFraudRecord] -> ShowS
show :: IssuerFraudRecord -> String
$cshow :: IssuerFraudRecord -> String
showsPrec :: Int -> IssuerFraudRecord -> ShowS
$cshowsPrec :: Int -> IssuerFraudRecord -> ShowS
GHC.Show.Show,
IssuerFraudRecord -> IssuerFraudRecord -> Bool
(IssuerFraudRecord -> IssuerFraudRecord -> Bool)
-> (IssuerFraudRecord -> IssuerFraudRecord -> Bool)
-> Eq IssuerFraudRecord
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: IssuerFraudRecord -> IssuerFraudRecord -> Bool
$c/= :: IssuerFraudRecord -> IssuerFraudRecord -> Bool
== :: IssuerFraudRecord -> IssuerFraudRecord -> Bool
$c== :: IssuerFraudRecord -> IssuerFraudRecord -> Bool
GHC.Classes.Eq
)
instance Data.Aeson.Types.ToJSON.ToJSON IssuerFraudRecord where
toJSON :: IssuerFraudRecord -> Value
toJSON IssuerFraudRecord
obj = [Pair] -> Value
Data.Aeson.Types.Internal.object (Text
"actionable" Text -> Bool -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= IssuerFraudRecord -> Bool
issuerFraudRecordActionable IssuerFraudRecord
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"charge" Text -> IssuerFraudRecordCharge'Variants -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= IssuerFraudRecord -> IssuerFraudRecordCharge'Variants
issuerFraudRecordCharge IssuerFraudRecord
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..= IssuerFraudRecord -> Int
issuerFraudRecordCreated IssuerFraudRecord
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"fraud_type" Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= IssuerFraudRecord -> Text
issuerFraudRecordFraudType IssuerFraudRecord
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"has_liability_shift" Text -> Bool -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= IssuerFraudRecord -> Bool
issuerFraudRecordHasLiabilityShift IssuerFraudRecord
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..= IssuerFraudRecord -> Text
issuerFraudRecordId IssuerFraudRecord
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..= IssuerFraudRecord -> Bool
issuerFraudRecordLivemode IssuerFraudRecord
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"post_date" Text -> Int -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= IssuerFraudRecord -> Int
issuerFraudRecordPostDate IssuerFraudRecord
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
"issuer_fraud_record" Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
toEncoding :: IssuerFraudRecord -> Encoding
toEncoding IssuerFraudRecord
obj = Series -> Encoding
Data.Aeson.Encoding.Internal.pairs ((Text
"actionable" Text -> Bool -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= IssuerFraudRecord -> Bool
issuerFraudRecordActionable IssuerFraudRecord
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"charge" Text -> IssuerFraudRecordCharge'Variants -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= IssuerFraudRecord -> IssuerFraudRecordCharge'Variants
issuerFraudRecordCharge IssuerFraudRecord
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..= IssuerFraudRecord -> Int
issuerFraudRecordCreated IssuerFraudRecord
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"fraud_type" Text -> Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= IssuerFraudRecord -> Text
issuerFraudRecordFraudType IssuerFraudRecord
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"has_liability_shift" Text -> Bool -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= IssuerFraudRecord -> Bool
issuerFraudRecordHasLiabilityShift IssuerFraudRecord
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..= IssuerFraudRecord -> Text
issuerFraudRecordId IssuerFraudRecord
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..= IssuerFraudRecord -> Bool
issuerFraudRecordLivemode IssuerFraudRecord
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"post_date" Text -> Int -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= IssuerFraudRecord -> Int
issuerFraudRecordPostDate IssuerFraudRecord
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
"issuer_fraud_record")))))))))
instance Data.Aeson.Types.FromJSON.FromJSON IssuerFraudRecord where
parseJSON :: Value -> Parser IssuerFraudRecord
parseJSON = String
-> (Object -> Parser IssuerFraudRecord)
-> Value
-> Parser IssuerFraudRecord
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.Aeson.Types.FromJSON.withObject String
"IssuerFraudRecord" (\Object
obj -> ((((((((Bool
-> IssuerFraudRecordCharge'Variants
-> Int
-> Text
-> Bool
-> Text
-> Bool
-> Int
-> IssuerFraudRecord)
-> Parser
(Bool
-> IssuerFraudRecordCharge'Variants
-> Int
-> Text
-> Bool
-> Text
-> Bool
-> Int
-> IssuerFraudRecord)
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure Bool
-> IssuerFraudRecordCharge'Variants
-> Int
-> Text
-> Bool
-> Text
-> Bool
-> Int
-> IssuerFraudRecord
IssuerFraudRecord Parser
(Bool
-> IssuerFraudRecordCharge'Variants
-> Int
-> Text
-> Bool
-> Text
-> Bool
-> Int
-> IssuerFraudRecord)
-> Parser Bool
-> Parser
(IssuerFraudRecordCharge'Variants
-> Int -> Text -> Bool -> Text -> Bool -> Int -> IssuerFraudRecord)
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
"actionable")) Parser
(IssuerFraudRecordCharge'Variants
-> Int -> Text -> Bool -> Text -> Bool -> Int -> IssuerFraudRecord)
-> Parser IssuerFraudRecordCharge'Variants
-> Parser
(Int -> Text -> Bool -> Text -> Bool -> Int -> IssuerFraudRecord)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser IssuerFraudRecordCharge'Variants
forall a. FromJSON a => Object -> Text -> Parser a
Data.Aeson.Types.FromJSON..: Text
"charge")) Parser
(Int -> Text -> Bool -> Text -> Bool -> Int -> IssuerFraudRecord)
-> Parser Int
-> Parser
(Text -> Bool -> Text -> Bool -> Int -> IssuerFraudRecord)
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 (Text -> Bool -> Text -> Bool -> Int -> IssuerFraudRecord)
-> Parser Text
-> Parser (Bool -> Text -> Bool -> Int -> IssuerFraudRecord)
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
"fraud_type")) Parser (Bool -> Text -> Bool -> Int -> IssuerFraudRecord)
-> Parser Bool -> Parser (Text -> Bool -> Int -> IssuerFraudRecord)
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
"has_liability_shift")) Parser (Text -> Bool -> Int -> IssuerFraudRecord)
-> Parser Text -> Parser (Bool -> Int -> IssuerFraudRecord)
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 (Bool -> Int -> IssuerFraudRecord)
-> Parser Bool -> Parser (Int -> IssuerFraudRecord)
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 (Int -> IssuerFraudRecord)
-> Parser Int -> Parser IssuerFraudRecord
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
"post_date"))
mkIssuerFraudRecord ::
GHC.Types.Bool ->
IssuerFraudRecordCharge'Variants ->
GHC.Types.Int ->
Data.Text.Internal.Text ->
GHC.Types.Bool ->
Data.Text.Internal.Text ->
GHC.Types.Bool ->
GHC.Types.Int ->
IssuerFraudRecord
mkIssuerFraudRecord :: Bool
-> IssuerFraudRecordCharge'Variants
-> Int
-> Text
-> Bool
-> Text
-> Bool
-> Int
-> IssuerFraudRecord
mkIssuerFraudRecord Bool
issuerFraudRecordActionable IssuerFraudRecordCharge'Variants
issuerFraudRecordCharge Int
issuerFraudRecordCreated Text
issuerFraudRecordFraudType Bool
issuerFraudRecordHasLiabilityShift Text
issuerFraudRecordId Bool
issuerFraudRecordLivemode Int
issuerFraudRecordPostDate =
IssuerFraudRecord :: Bool
-> IssuerFraudRecordCharge'Variants
-> Int
-> Text
-> Bool
-> Text
-> Bool
-> Int
-> IssuerFraudRecord
IssuerFraudRecord
{ issuerFraudRecordActionable :: Bool
issuerFraudRecordActionable = Bool
issuerFraudRecordActionable,
issuerFraudRecordCharge :: IssuerFraudRecordCharge'Variants
issuerFraudRecordCharge = IssuerFraudRecordCharge'Variants
issuerFraudRecordCharge,
issuerFraudRecordCreated :: Int
issuerFraudRecordCreated = Int
issuerFraudRecordCreated,
issuerFraudRecordFraudType :: Text
issuerFraudRecordFraudType = Text
issuerFraudRecordFraudType,
issuerFraudRecordHasLiabilityShift :: Bool
issuerFraudRecordHasLiabilityShift = Bool
issuerFraudRecordHasLiabilityShift,
issuerFraudRecordId :: Text
issuerFraudRecordId = Text
issuerFraudRecordId,
issuerFraudRecordLivemode :: Bool
issuerFraudRecordLivemode = Bool
issuerFraudRecordLivemode,
issuerFraudRecordPostDate :: Int
issuerFraudRecordPostDate = Int
issuerFraudRecordPostDate
}
data IssuerFraudRecordCharge'Variants
= IssuerFraudRecordCharge'Text Data.Text.Internal.Text
| IssuerFraudRecordCharge'Charge Charge
deriving (Int -> IssuerFraudRecordCharge'Variants -> ShowS
[IssuerFraudRecordCharge'Variants] -> ShowS
IssuerFraudRecordCharge'Variants -> String
(Int -> IssuerFraudRecordCharge'Variants -> ShowS)
-> (IssuerFraudRecordCharge'Variants -> String)
-> ([IssuerFraudRecordCharge'Variants] -> ShowS)
-> Show IssuerFraudRecordCharge'Variants
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [IssuerFraudRecordCharge'Variants] -> ShowS
$cshowList :: [IssuerFraudRecordCharge'Variants] -> ShowS
show :: IssuerFraudRecordCharge'Variants -> String
$cshow :: IssuerFraudRecordCharge'Variants -> String
showsPrec :: Int -> IssuerFraudRecordCharge'Variants -> ShowS
$cshowsPrec :: Int -> IssuerFraudRecordCharge'Variants -> ShowS
GHC.Show.Show, IssuerFraudRecordCharge'Variants
-> IssuerFraudRecordCharge'Variants -> Bool
(IssuerFraudRecordCharge'Variants
-> IssuerFraudRecordCharge'Variants -> Bool)
-> (IssuerFraudRecordCharge'Variants
-> IssuerFraudRecordCharge'Variants -> Bool)
-> Eq IssuerFraudRecordCharge'Variants
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: IssuerFraudRecordCharge'Variants
-> IssuerFraudRecordCharge'Variants -> Bool
$c/= :: IssuerFraudRecordCharge'Variants
-> IssuerFraudRecordCharge'Variants -> Bool
== :: IssuerFraudRecordCharge'Variants
-> IssuerFraudRecordCharge'Variants -> Bool
$c== :: IssuerFraudRecordCharge'Variants
-> IssuerFraudRecordCharge'Variants -> Bool
GHC.Classes.Eq)
instance Data.Aeson.Types.ToJSON.ToJSON IssuerFraudRecordCharge'Variants where
toJSON :: IssuerFraudRecordCharge'Variants -> Value
toJSON (IssuerFraudRecordCharge'Text Text
a) = Text -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON Text
a
toJSON (IssuerFraudRecordCharge'Charge Charge
a) = Charge -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON Charge
a
instance Data.Aeson.Types.FromJSON.FromJSON IssuerFraudRecordCharge'Variants where
parseJSON :: Value -> Parser IssuerFraudRecordCharge'Variants
parseJSON Value
val = case (Text -> IssuerFraudRecordCharge'Variants
IssuerFraudRecordCharge'Text (Text -> IssuerFraudRecordCharge'Variants)
-> Result Text -> Result IssuerFraudRecordCharge'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 IssuerFraudRecordCharge'Variants
-> Result IssuerFraudRecordCharge'Variants
-> Result IssuerFraudRecordCharge'Variants
forall (f :: * -> *) a. Alternative f => f a -> f a -> f a
GHC.Base.<|> ((Charge -> IssuerFraudRecordCharge'Variants
IssuerFraudRecordCharge'Charge (Charge -> IssuerFraudRecordCharge'Variants)
-> Result Charge -> Result IssuerFraudRecordCharge'Variants
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Data.Functor.<$> Value -> Result Charge
forall a. FromJSON a => Value -> Result a
Data.Aeson.Types.FromJSON.fromJSON Value
val) Result IssuerFraudRecordCharge'Variants
-> Result IssuerFraudRecordCharge'Variants
-> Result IssuerFraudRecordCharge'Variants
forall (f :: * -> *) a. Alternative f => f a -> f a -> f a
GHC.Base.<|> String -> Result IssuerFraudRecordCharge'Variants
forall a. String -> Result a
Data.Aeson.Types.Internal.Error String
"No variant matched") of
Data.Aeson.Types.Internal.Success IssuerFraudRecordCharge'Variants
a -> IssuerFraudRecordCharge'Variants
-> Parser IssuerFraudRecordCharge'Variants
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure IssuerFraudRecordCharge'Variants
a
Data.Aeson.Types.Internal.Error String
a -> String -> Parser IssuerFraudRecordCharge'Variants
forall (m :: * -> *) a. MonadFail m => String -> m a
Control.Monad.Fail.fail String
a