{-# LANGUAGE MultiWayIf #-}
{-# LANGUAGE OverloadedStrings #-}
module StripeAPI.Types.CustomerBalanceTransaction 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.CreditNote
import {-# SOURCE #-} StripeAPI.Types.Customer
import {-# SOURCE #-} StripeAPI.Types.Invoice
import qualified Prelude as GHC.Integer.Type
import qualified Prelude as GHC.Maybe
data CustomerBalanceTransaction = CustomerBalanceTransaction
{
CustomerBalanceTransaction -> Int
customerBalanceTransactionAmount :: GHC.Types.Int,
CustomerBalanceTransaction -> Int
customerBalanceTransactionCreated :: GHC.Types.Int,
CustomerBalanceTransaction
-> Maybe CustomerBalanceTransactionCreditNote'Variants
customerBalanceTransactionCreditNote :: (GHC.Maybe.Maybe CustomerBalanceTransactionCreditNote'Variants),
CustomerBalanceTransaction -> Text
customerBalanceTransactionCurrency :: Data.Text.Internal.Text,
CustomerBalanceTransaction
-> CustomerBalanceTransactionCustomer'Variants
customerBalanceTransactionCustomer :: CustomerBalanceTransactionCustomer'Variants,
CustomerBalanceTransaction -> Maybe Text
customerBalanceTransactionDescription :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
CustomerBalanceTransaction -> Int
customerBalanceTransactionEndingBalance :: GHC.Types.Int,
CustomerBalanceTransaction -> Text
customerBalanceTransactionId :: Data.Text.Internal.Text,
CustomerBalanceTransaction
-> Maybe CustomerBalanceTransactionInvoice'Variants
customerBalanceTransactionInvoice :: (GHC.Maybe.Maybe CustomerBalanceTransactionInvoice'Variants),
CustomerBalanceTransaction -> Bool
customerBalanceTransactionLivemode :: GHC.Types.Bool,
CustomerBalanceTransaction -> Maybe Object
customerBalanceTransactionMetadata :: (GHC.Maybe.Maybe Data.Aeson.Types.Internal.Object),
CustomerBalanceTransaction -> CustomerBalanceTransactionType'
customerBalanceTransactionType :: CustomerBalanceTransactionType'
}
deriving
( Int -> CustomerBalanceTransaction -> ShowS
[CustomerBalanceTransaction] -> ShowS
CustomerBalanceTransaction -> String
(Int -> CustomerBalanceTransaction -> ShowS)
-> (CustomerBalanceTransaction -> String)
-> ([CustomerBalanceTransaction] -> ShowS)
-> Show CustomerBalanceTransaction
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CustomerBalanceTransaction] -> ShowS
$cshowList :: [CustomerBalanceTransaction] -> ShowS
show :: CustomerBalanceTransaction -> String
$cshow :: CustomerBalanceTransaction -> String
showsPrec :: Int -> CustomerBalanceTransaction -> ShowS
$cshowsPrec :: Int -> CustomerBalanceTransaction -> ShowS
GHC.Show.Show,
CustomerBalanceTransaction -> CustomerBalanceTransaction -> Bool
(CustomerBalanceTransaction -> CustomerBalanceTransaction -> Bool)
-> (CustomerBalanceTransaction
-> CustomerBalanceTransaction -> Bool)
-> Eq CustomerBalanceTransaction
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CustomerBalanceTransaction -> CustomerBalanceTransaction -> Bool
$c/= :: CustomerBalanceTransaction -> CustomerBalanceTransaction -> Bool
== :: CustomerBalanceTransaction -> CustomerBalanceTransaction -> Bool
$c== :: CustomerBalanceTransaction -> CustomerBalanceTransaction -> Bool
GHC.Classes.Eq
)
instance Data.Aeson.Types.ToJSON.ToJSON CustomerBalanceTransaction where
toJSON :: CustomerBalanceTransaction -> Value
toJSON CustomerBalanceTransaction
obj = [Pair] -> Value
Data.Aeson.Types.Internal.object (Text
"amount" Text -> Int -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= CustomerBalanceTransaction -> Int
customerBalanceTransactionAmount CustomerBalanceTransaction
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..= CustomerBalanceTransaction -> Int
customerBalanceTransactionCreated CustomerBalanceTransaction
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"credit_note" Text -> Maybe CustomerBalanceTransactionCreditNote'Variants -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= CustomerBalanceTransaction
-> Maybe CustomerBalanceTransactionCreditNote'Variants
customerBalanceTransactionCreditNote CustomerBalanceTransaction
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"currency" Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= CustomerBalanceTransaction -> Text
customerBalanceTransactionCurrency CustomerBalanceTransaction
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"customer" Text -> CustomerBalanceTransactionCustomer'Variants -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= CustomerBalanceTransaction
-> CustomerBalanceTransactionCustomer'Variants
customerBalanceTransactionCustomer CustomerBalanceTransaction
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..= CustomerBalanceTransaction -> Maybe Text
customerBalanceTransactionDescription CustomerBalanceTransaction
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"ending_balance" Text -> Int -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= CustomerBalanceTransaction -> Int
customerBalanceTransactionEndingBalance CustomerBalanceTransaction
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..= CustomerBalanceTransaction -> Text
customerBalanceTransactionId CustomerBalanceTransaction
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"invoice" Text -> Maybe CustomerBalanceTransactionInvoice'Variants -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= CustomerBalanceTransaction
-> Maybe CustomerBalanceTransactionInvoice'Variants
customerBalanceTransactionInvoice CustomerBalanceTransaction
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..= CustomerBalanceTransaction -> Bool
customerBalanceTransactionLivemode CustomerBalanceTransaction
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..= CustomerBalanceTransaction -> Maybe Object
customerBalanceTransactionMetadata CustomerBalanceTransaction
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"type" Text -> CustomerBalanceTransactionType' -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= CustomerBalanceTransaction -> CustomerBalanceTransactionType'
customerBalanceTransactionType CustomerBalanceTransaction
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
"customer_balance_transaction" Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
toEncoding :: CustomerBalanceTransaction -> Encoding
toEncoding CustomerBalanceTransaction
obj = Series -> Encoding
Data.Aeson.Encoding.Internal.pairs ((Text
"amount" Text -> Int -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= CustomerBalanceTransaction -> Int
customerBalanceTransactionAmount CustomerBalanceTransaction
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..= CustomerBalanceTransaction -> Int
customerBalanceTransactionCreated CustomerBalanceTransaction
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"credit_note" Text
-> Maybe CustomerBalanceTransactionCreditNote'Variants -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= CustomerBalanceTransaction
-> Maybe CustomerBalanceTransactionCreditNote'Variants
customerBalanceTransactionCreditNote CustomerBalanceTransaction
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"currency" Text -> Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= CustomerBalanceTransaction -> Text
customerBalanceTransactionCurrency CustomerBalanceTransaction
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"customer" Text -> CustomerBalanceTransactionCustomer'Variants -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= CustomerBalanceTransaction
-> CustomerBalanceTransactionCustomer'Variants
customerBalanceTransactionCustomer CustomerBalanceTransaction
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..= CustomerBalanceTransaction -> Maybe Text
customerBalanceTransactionDescription CustomerBalanceTransaction
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"ending_balance" Text -> Int -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= CustomerBalanceTransaction -> Int
customerBalanceTransactionEndingBalance CustomerBalanceTransaction
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..= CustomerBalanceTransaction -> Text
customerBalanceTransactionId CustomerBalanceTransaction
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"invoice" Text -> Maybe CustomerBalanceTransactionInvoice'Variants -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= CustomerBalanceTransaction
-> Maybe CustomerBalanceTransactionInvoice'Variants
customerBalanceTransactionInvoice CustomerBalanceTransaction
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..= CustomerBalanceTransaction -> Bool
customerBalanceTransactionLivemode CustomerBalanceTransaction
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..= CustomerBalanceTransaction -> Maybe Object
customerBalanceTransactionMetadata CustomerBalanceTransaction
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"type" Text -> CustomerBalanceTransactionType' -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= CustomerBalanceTransaction -> CustomerBalanceTransactionType'
customerBalanceTransactionType CustomerBalanceTransaction
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
"customer_balance_transaction")))))))))))))
instance Data.Aeson.Types.FromJSON.FromJSON CustomerBalanceTransaction where
parseJSON :: Value -> Parser CustomerBalanceTransaction
parseJSON = String
-> (Object -> Parser CustomerBalanceTransaction)
-> Value
-> Parser CustomerBalanceTransaction
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.Aeson.Types.FromJSON.withObject String
"CustomerBalanceTransaction" (\Object
obj -> ((((((((((((Int
-> Int
-> Maybe CustomerBalanceTransactionCreditNote'Variants
-> Text
-> CustomerBalanceTransactionCustomer'Variants
-> Maybe Text
-> Int
-> Text
-> Maybe CustomerBalanceTransactionInvoice'Variants
-> Bool
-> Maybe Object
-> CustomerBalanceTransactionType'
-> CustomerBalanceTransaction)
-> Parser
(Int
-> Int
-> Maybe CustomerBalanceTransactionCreditNote'Variants
-> Text
-> CustomerBalanceTransactionCustomer'Variants
-> Maybe Text
-> Int
-> Text
-> Maybe CustomerBalanceTransactionInvoice'Variants
-> Bool
-> Maybe Object
-> CustomerBalanceTransactionType'
-> CustomerBalanceTransaction)
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure Int
-> Int
-> Maybe CustomerBalanceTransactionCreditNote'Variants
-> Text
-> CustomerBalanceTransactionCustomer'Variants
-> Maybe Text
-> Int
-> Text
-> Maybe CustomerBalanceTransactionInvoice'Variants
-> Bool
-> Maybe Object
-> CustomerBalanceTransactionType'
-> CustomerBalanceTransaction
CustomerBalanceTransaction Parser
(Int
-> Int
-> Maybe CustomerBalanceTransactionCreditNote'Variants
-> Text
-> CustomerBalanceTransactionCustomer'Variants
-> Maybe Text
-> Int
-> Text
-> Maybe CustomerBalanceTransactionInvoice'Variants
-> Bool
-> Maybe Object
-> CustomerBalanceTransactionType'
-> CustomerBalanceTransaction)
-> Parser Int
-> Parser
(Int
-> Maybe CustomerBalanceTransactionCreditNote'Variants
-> Text
-> CustomerBalanceTransactionCustomer'Variants
-> Maybe Text
-> Int
-> Text
-> Maybe CustomerBalanceTransactionInvoice'Variants
-> Bool
-> Maybe Object
-> CustomerBalanceTransactionType'
-> CustomerBalanceTransaction)
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
"amount")) Parser
(Int
-> Maybe CustomerBalanceTransactionCreditNote'Variants
-> Text
-> CustomerBalanceTransactionCustomer'Variants
-> Maybe Text
-> Int
-> Text
-> Maybe CustomerBalanceTransactionInvoice'Variants
-> Bool
-> Maybe Object
-> CustomerBalanceTransactionType'
-> CustomerBalanceTransaction)
-> Parser Int
-> Parser
(Maybe CustomerBalanceTransactionCreditNote'Variants
-> Text
-> CustomerBalanceTransactionCustomer'Variants
-> Maybe Text
-> Int
-> Text
-> Maybe CustomerBalanceTransactionInvoice'Variants
-> Bool
-> Maybe Object
-> CustomerBalanceTransactionType'
-> CustomerBalanceTransaction)
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 CustomerBalanceTransactionCreditNote'Variants
-> Text
-> CustomerBalanceTransactionCustomer'Variants
-> Maybe Text
-> Int
-> Text
-> Maybe CustomerBalanceTransactionInvoice'Variants
-> Bool
-> Maybe Object
-> CustomerBalanceTransactionType'
-> CustomerBalanceTransaction)
-> Parser (Maybe CustomerBalanceTransactionCreditNote'Variants)
-> Parser
(Text
-> CustomerBalanceTransactionCustomer'Variants
-> Maybe Text
-> Int
-> Text
-> Maybe CustomerBalanceTransactionInvoice'Variants
-> Bool
-> Maybe Object
-> CustomerBalanceTransactionType'
-> CustomerBalanceTransaction)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser (Maybe CustomerBalanceTransactionCreditNote'Variants)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"credit_note")) Parser
(Text
-> CustomerBalanceTransactionCustomer'Variants
-> Maybe Text
-> Int
-> Text
-> Maybe CustomerBalanceTransactionInvoice'Variants
-> Bool
-> Maybe Object
-> CustomerBalanceTransactionType'
-> CustomerBalanceTransaction)
-> Parser Text
-> Parser
(CustomerBalanceTransactionCustomer'Variants
-> Maybe Text
-> Int
-> Text
-> Maybe CustomerBalanceTransactionInvoice'Variants
-> Bool
-> Maybe Object
-> CustomerBalanceTransactionType'
-> CustomerBalanceTransaction)
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
"currency")) Parser
(CustomerBalanceTransactionCustomer'Variants
-> Maybe Text
-> Int
-> Text
-> Maybe CustomerBalanceTransactionInvoice'Variants
-> Bool
-> Maybe Object
-> CustomerBalanceTransactionType'
-> CustomerBalanceTransaction)
-> Parser CustomerBalanceTransactionCustomer'Variants
-> Parser
(Maybe Text
-> Int
-> Text
-> Maybe CustomerBalanceTransactionInvoice'Variants
-> Bool
-> Maybe Object
-> CustomerBalanceTransactionType'
-> CustomerBalanceTransaction)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text -> Parser CustomerBalanceTransactionCustomer'Variants
forall a. FromJSON a => Object -> Text -> Parser a
Data.Aeson.Types.FromJSON..: Text
"customer")) Parser
(Maybe Text
-> Int
-> Text
-> Maybe CustomerBalanceTransactionInvoice'Variants
-> Bool
-> Maybe Object
-> CustomerBalanceTransactionType'
-> CustomerBalanceTransaction)
-> Parser (Maybe Text)
-> Parser
(Int
-> Text
-> Maybe CustomerBalanceTransactionInvoice'Variants
-> Bool
-> Maybe Object
-> CustomerBalanceTransactionType'
-> CustomerBalanceTransaction)
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
(Int
-> Text
-> Maybe CustomerBalanceTransactionInvoice'Variants
-> Bool
-> Maybe Object
-> CustomerBalanceTransactionType'
-> CustomerBalanceTransaction)
-> Parser Int
-> Parser
(Text
-> Maybe CustomerBalanceTransactionInvoice'Variants
-> Bool
-> Maybe Object
-> CustomerBalanceTransactionType'
-> CustomerBalanceTransaction)
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
"ending_balance")) Parser
(Text
-> Maybe CustomerBalanceTransactionInvoice'Variants
-> Bool
-> Maybe Object
-> CustomerBalanceTransactionType'
-> CustomerBalanceTransaction)
-> Parser Text
-> Parser
(Maybe CustomerBalanceTransactionInvoice'Variants
-> Bool
-> Maybe Object
-> CustomerBalanceTransactionType'
-> CustomerBalanceTransaction)
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 CustomerBalanceTransactionInvoice'Variants
-> Bool
-> Maybe Object
-> CustomerBalanceTransactionType'
-> CustomerBalanceTransaction)
-> Parser (Maybe CustomerBalanceTransactionInvoice'Variants)
-> Parser
(Bool
-> Maybe Object
-> CustomerBalanceTransactionType'
-> CustomerBalanceTransaction)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser (Maybe CustomerBalanceTransactionInvoice'Variants)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"invoice")) Parser
(Bool
-> Maybe Object
-> CustomerBalanceTransactionType'
-> CustomerBalanceTransaction)
-> Parser Bool
-> Parser
(Maybe Object
-> CustomerBalanceTransactionType' -> CustomerBalanceTransaction)
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 Object
-> CustomerBalanceTransactionType' -> CustomerBalanceTransaction)
-> Parser (Maybe Object)
-> Parser
(CustomerBalanceTransactionType' -> CustomerBalanceTransaction)
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
(CustomerBalanceTransactionType' -> CustomerBalanceTransaction)
-> Parser CustomerBalanceTransactionType'
-> Parser CustomerBalanceTransaction
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser CustomerBalanceTransactionType'
forall a. FromJSON a => Object -> Text -> Parser a
Data.Aeson.Types.FromJSON..: Text
"type"))
mkCustomerBalanceTransaction ::
GHC.Types.Int ->
GHC.Types.Int ->
Data.Text.Internal.Text ->
CustomerBalanceTransactionCustomer'Variants ->
GHC.Types.Int ->
Data.Text.Internal.Text ->
GHC.Types.Bool ->
CustomerBalanceTransactionType' ->
CustomerBalanceTransaction
mkCustomerBalanceTransaction :: Int
-> Int
-> Text
-> CustomerBalanceTransactionCustomer'Variants
-> Int
-> Text
-> Bool
-> CustomerBalanceTransactionType'
-> CustomerBalanceTransaction
mkCustomerBalanceTransaction Int
customerBalanceTransactionAmount Int
customerBalanceTransactionCreated Text
customerBalanceTransactionCurrency CustomerBalanceTransactionCustomer'Variants
customerBalanceTransactionCustomer Int
customerBalanceTransactionEndingBalance Text
customerBalanceTransactionId Bool
customerBalanceTransactionLivemode CustomerBalanceTransactionType'
customerBalanceTransactionType =
CustomerBalanceTransaction :: Int
-> Int
-> Maybe CustomerBalanceTransactionCreditNote'Variants
-> Text
-> CustomerBalanceTransactionCustomer'Variants
-> Maybe Text
-> Int
-> Text
-> Maybe CustomerBalanceTransactionInvoice'Variants
-> Bool
-> Maybe Object
-> CustomerBalanceTransactionType'
-> CustomerBalanceTransaction
CustomerBalanceTransaction
{ customerBalanceTransactionAmount :: Int
customerBalanceTransactionAmount = Int
customerBalanceTransactionAmount,
customerBalanceTransactionCreated :: Int
customerBalanceTransactionCreated = Int
customerBalanceTransactionCreated,
customerBalanceTransactionCreditNote :: Maybe CustomerBalanceTransactionCreditNote'Variants
customerBalanceTransactionCreditNote = Maybe CustomerBalanceTransactionCreditNote'Variants
forall a. Maybe a
GHC.Maybe.Nothing,
customerBalanceTransactionCurrency :: Text
customerBalanceTransactionCurrency = Text
customerBalanceTransactionCurrency,
customerBalanceTransactionCustomer :: CustomerBalanceTransactionCustomer'Variants
customerBalanceTransactionCustomer = CustomerBalanceTransactionCustomer'Variants
customerBalanceTransactionCustomer,
customerBalanceTransactionDescription :: Maybe Text
customerBalanceTransactionDescription = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
customerBalanceTransactionEndingBalance :: Int
customerBalanceTransactionEndingBalance = Int
customerBalanceTransactionEndingBalance,
customerBalanceTransactionId :: Text
customerBalanceTransactionId = Text
customerBalanceTransactionId,
customerBalanceTransactionInvoice :: Maybe CustomerBalanceTransactionInvoice'Variants
customerBalanceTransactionInvoice = Maybe CustomerBalanceTransactionInvoice'Variants
forall a. Maybe a
GHC.Maybe.Nothing,
customerBalanceTransactionLivemode :: Bool
customerBalanceTransactionLivemode = Bool
customerBalanceTransactionLivemode,
customerBalanceTransactionMetadata :: Maybe Object
customerBalanceTransactionMetadata = Maybe Object
forall a. Maybe a
GHC.Maybe.Nothing,
customerBalanceTransactionType :: CustomerBalanceTransactionType'
customerBalanceTransactionType = CustomerBalanceTransactionType'
customerBalanceTransactionType
}
data CustomerBalanceTransactionCreditNote'Variants
= CustomerBalanceTransactionCreditNote'Text Data.Text.Internal.Text
| CustomerBalanceTransactionCreditNote'CreditNote CreditNote
deriving (Int -> CustomerBalanceTransactionCreditNote'Variants -> ShowS
[CustomerBalanceTransactionCreditNote'Variants] -> ShowS
CustomerBalanceTransactionCreditNote'Variants -> String
(Int -> CustomerBalanceTransactionCreditNote'Variants -> ShowS)
-> (CustomerBalanceTransactionCreditNote'Variants -> String)
-> ([CustomerBalanceTransactionCreditNote'Variants] -> ShowS)
-> Show CustomerBalanceTransactionCreditNote'Variants
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CustomerBalanceTransactionCreditNote'Variants] -> ShowS
$cshowList :: [CustomerBalanceTransactionCreditNote'Variants] -> ShowS
show :: CustomerBalanceTransactionCreditNote'Variants -> String
$cshow :: CustomerBalanceTransactionCreditNote'Variants -> String
showsPrec :: Int -> CustomerBalanceTransactionCreditNote'Variants -> ShowS
$cshowsPrec :: Int -> CustomerBalanceTransactionCreditNote'Variants -> ShowS
GHC.Show.Show, CustomerBalanceTransactionCreditNote'Variants
-> CustomerBalanceTransactionCreditNote'Variants -> Bool
(CustomerBalanceTransactionCreditNote'Variants
-> CustomerBalanceTransactionCreditNote'Variants -> Bool)
-> (CustomerBalanceTransactionCreditNote'Variants
-> CustomerBalanceTransactionCreditNote'Variants -> Bool)
-> Eq CustomerBalanceTransactionCreditNote'Variants
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CustomerBalanceTransactionCreditNote'Variants
-> CustomerBalanceTransactionCreditNote'Variants -> Bool
$c/= :: CustomerBalanceTransactionCreditNote'Variants
-> CustomerBalanceTransactionCreditNote'Variants -> Bool
== :: CustomerBalanceTransactionCreditNote'Variants
-> CustomerBalanceTransactionCreditNote'Variants -> Bool
$c== :: CustomerBalanceTransactionCreditNote'Variants
-> CustomerBalanceTransactionCreditNote'Variants -> Bool
GHC.Classes.Eq)
instance Data.Aeson.Types.ToJSON.ToJSON CustomerBalanceTransactionCreditNote'Variants where
toJSON :: CustomerBalanceTransactionCreditNote'Variants -> Value
toJSON (CustomerBalanceTransactionCreditNote'Text Text
a) = Text -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON Text
a
toJSON (CustomerBalanceTransactionCreditNote'CreditNote CreditNote
a) = CreditNote -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON CreditNote
a
instance Data.Aeson.Types.FromJSON.FromJSON CustomerBalanceTransactionCreditNote'Variants where
parseJSON :: Value -> Parser CustomerBalanceTransactionCreditNote'Variants
parseJSON Value
val = case (Text -> CustomerBalanceTransactionCreditNote'Variants
CustomerBalanceTransactionCreditNote'Text (Text -> CustomerBalanceTransactionCreditNote'Variants)
-> Result Text
-> Result CustomerBalanceTransactionCreditNote'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 CustomerBalanceTransactionCreditNote'Variants
-> Result CustomerBalanceTransactionCreditNote'Variants
-> Result CustomerBalanceTransactionCreditNote'Variants
forall (f :: * -> *) a. Alternative f => f a -> f a -> f a
GHC.Base.<|> ((CreditNote -> CustomerBalanceTransactionCreditNote'Variants
CustomerBalanceTransactionCreditNote'CreditNote (CreditNote -> CustomerBalanceTransactionCreditNote'Variants)
-> Result CreditNote
-> Result CustomerBalanceTransactionCreditNote'Variants
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Data.Functor.<$> Value -> Result CreditNote
forall a. FromJSON a => Value -> Result a
Data.Aeson.Types.FromJSON.fromJSON Value
val) Result CustomerBalanceTransactionCreditNote'Variants
-> Result CustomerBalanceTransactionCreditNote'Variants
-> Result CustomerBalanceTransactionCreditNote'Variants
forall (f :: * -> *) a. Alternative f => f a -> f a -> f a
GHC.Base.<|> String -> Result CustomerBalanceTransactionCreditNote'Variants
forall a. String -> Result a
Data.Aeson.Types.Internal.Error String
"No variant matched") of
Data.Aeson.Types.Internal.Success CustomerBalanceTransactionCreditNote'Variants
a -> CustomerBalanceTransactionCreditNote'Variants
-> Parser CustomerBalanceTransactionCreditNote'Variants
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure CustomerBalanceTransactionCreditNote'Variants
a
Data.Aeson.Types.Internal.Error String
a -> String -> Parser CustomerBalanceTransactionCreditNote'Variants
forall (m :: * -> *) a. MonadFail m => String -> m a
Control.Monad.Fail.fail String
a
data CustomerBalanceTransactionCustomer'Variants
= CustomerBalanceTransactionCustomer'Text Data.Text.Internal.Text
| CustomerBalanceTransactionCustomer'Customer Customer
deriving (Int -> CustomerBalanceTransactionCustomer'Variants -> ShowS
[CustomerBalanceTransactionCustomer'Variants] -> ShowS
CustomerBalanceTransactionCustomer'Variants -> String
(Int -> CustomerBalanceTransactionCustomer'Variants -> ShowS)
-> (CustomerBalanceTransactionCustomer'Variants -> String)
-> ([CustomerBalanceTransactionCustomer'Variants] -> ShowS)
-> Show CustomerBalanceTransactionCustomer'Variants
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CustomerBalanceTransactionCustomer'Variants] -> ShowS
$cshowList :: [CustomerBalanceTransactionCustomer'Variants] -> ShowS
show :: CustomerBalanceTransactionCustomer'Variants -> String
$cshow :: CustomerBalanceTransactionCustomer'Variants -> String
showsPrec :: Int -> CustomerBalanceTransactionCustomer'Variants -> ShowS
$cshowsPrec :: Int -> CustomerBalanceTransactionCustomer'Variants -> ShowS
GHC.Show.Show, CustomerBalanceTransactionCustomer'Variants
-> CustomerBalanceTransactionCustomer'Variants -> Bool
(CustomerBalanceTransactionCustomer'Variants
-> CustomerBalanceTransactionCustomer'Variants -> Bool)
-> (CustomerBalanceTransactionCustomer'Variants
-> CustomerBalanceTransactionCustomer'Variants -> Bool)
-> Eq CustomerBalanceTransactionCustomer'Variants
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CustomerBalanceTransactionCustomer'Variants
-> CustomerBalanceTransactionCustomer'Variants -> Bool
$c/= :: CustomerBalanceTransactionCustomer'Variants
-> CustomerBalanceTransactionCustomer'Variants -> Bool
== :: CustomerBalanceTransactionCustomer'Variants
-> CustomerBalanceTransactionCustomer'Variants -> Bool
$c== :: CustomerBalanceTransactionCustomer'Variants
-> CustomerBalanceTransactionCustomer'Variants -> Bool
GHC.Classes.Eq)
instance Data.Aeson.Types.ToJSON.ToJSON CustomerBalanceTransactionCustomer'Variants where
toJSON :: CustomerBalanceTransactionCustomer'Variants -> Value
toJSON (CustomerBalanceTransactionCustomer'Text Text
a) = Text -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON Text
a
toJSON (CustomerBalanceTransactionCustomer'Customer Customer
a) = Customer -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON Customer
a
instance Data.Aeson.Types.FromJSON.FromJSON CustomerBalanceTransactionCustomer'Variants where
parseJSON :: Value -> Parser CustomerBalanceTransactionCustomer'Variants
parseJSON Value
val = case (Text -> CustomerBalanceTransactionCustomer'Variants
CustomerBalanceTransactionCustomer'Text (Text -> CustomerBalanceTransactionCustomer'Variants)
-> Result Text
-> Result CustomerBalanceTransactionCustomer'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 CustomerBalanceTransactionCustomer'Variants
-> Result CustomerBalanceTransactionCustomer'Variants
-> Result CustomerBalanceTransactionCustomer'Variants
forall (f :: * -> *) a. Alternative f => f a -> f a -> f a
GHC.Base.<|> ((Customer -> CustomerBalanceTransactionCustomer'Variants
CustomerBalanceTransactionCustomer'Customer (Customer -> CustomerBalanceTransactionCustomer'Variants)
-> Result Customer
-> Result CustomerBalanceTransactionCustomer'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 CustomerBalanceTransactionCustomer'Variants
-> Result CustomerBalanceTransactionCustomer'Variants
-> Result CustomerBalanceTransactionCustomer'Variants
forall (f :: * -> *) a. Alternative f => f a -> f a -> f a
GHC.Base.<|> String -> Result CustomerBalanceTransactionCustomer'Variants
forall a. String -> Result a
Data.Aeson.Types.Internal.Error String
"No variant matched") of
Data.Aeson.Types.Internal.Success CustomerBalanceTransactionCustomer'Variants
a -> CustomerBalanceTransactionCustomer'Variants
-> Parser CustomerBalanceTransactionCustomer'Variants
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure CustomerBalanceTransactionCustomer'Variants
a
Data.Aeson.Types.Internal.Error String
a -> String -> Parser CustomerBalanceTransactionCustomer'Variants
forall (m :: * -> *) a. MonadFail m => String -> m a
Control.Monad.Fail.fail String
a
data CustomerBalanceTransactionInvoice'Variants
= CustomerBalanceTransactionInvoice'Text Data.Text.Internal.Text
| CustomerBalanceTransactionInvoice'Invoice Invoice
deriving (Int -> CustomerBalanceTransactionInvoice'Variants -> ShowS
[CustomerBalanceTransactionInvoice'Variants] -> ShowS
CustomerBalanceTransactionInvoice'Variants -> String
(Int -> CustomerBalanceTransactionInvoice'Variants -> ShowS)
-> (CustomerBalanceTransactionInvoice'Variants -> String)
-> ([CustomerBalanceTransactionInvoice'Variants] -> ShowS)
-> Show CustomerBalanceTransactionInvoice'Variants
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CustomerBalanceTransactionInvoice'Variants] -> ShowS
$cshowList :: [CustomerBalanceTransactionInvoice'Variants] -> ShowS
show :: CustomerBalanceTransactionInvoice'Variants -> String
$cshow :: CustomerBalanceTransactionInvoice'Variants -> String
showsPrec :: Int -> CustomerBalanceTransactionInvoice'Variants -> ShowS
$cshowsPrec :: Int -> CustomerBalanceTransactionInvoice'Variants -> ShowS
GHC.Show.Show, CustomerBalanceTransactionInvoice'Variants
-> CustomerBalanceTransactionInvoice'Variants -> Bool
(CustomerBalanceTransactionInvoice'Variants
-> CustomerBalanceTransactionInvoice'Variants -> Bool)
-> (CustomerBalanceTransactionInvoice'Variants
-> CustomerBalanceTransactionInvoice'Variants -> Bool)
-> Eq CustomerBalanceTransactionInvoice'Variants
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CustomerBalanceTransactionInvoice'Variants
-> CustomerBalanceTransactionInvoice'Variants -> Bool
$c/= :: CustomerBalanceTransactionInvoice'Variants
-> CustomerBalanceTransactionInvoice'Variants -> Bool
== :: CustomerBalanceTransactionInvoice'Variants
-> CustomerBalanceTransactionInvoice'Variants -> Bool
$c== :: CustomerBalanceTransactionInvoice'Variants
-> CustomerBalanceTransactionInvoice'Variants -> Bool
GHC.Classes.Eq)
instance Data.Aeson.Types.ToJSON.ToJSON CustomerBalanceTransactionInvoice'Variants where
toJSON :: CustomerBalanceTransactionInvoice'Variants -> Value
toJSON (CustomerBalanceTransactionInvoice'Text Text
a) = Text -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON Text
a
toJSON (CustomerBalanceTransactionInvoice'Invoice Invoice
a) = Invoice -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON Invoice
a
instance Data.Aeson.Types.FromJSON.FromJSON CustomerBalanceTransactionInvoice'Variants where
parseJSON :: Value -> Parser CustomerBalanceTransactionInvoice'Variants
parseJSON Value
val = case (Text -> CustomerBalanceTransactionInvoice'Variants
CustomerBalanceTransactionInvoice'Text (Text -> CustomerBalanceTransactionInvoice'Variants)
-> Result Text -> Result CustomerBalanceTransactionInvoice'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 CustomerBalanceTransactionInvoice'Variants
-> Result CustomerBalanceTransactionInvoice'Variants
-> Result CustomerBalanceTransactionInvoice'Variants
forall (f :: * -> *) a. Alternative f => f a -> f a -> f a
GHC.Base.<|> ((Invoice -> CustomerBalanceTransactionInvoice'Variants
CustomerBalanceTransactionInvoice'Invoice (Invoice -> CustomerBalanceTransactionInvoice'Variants)
-> Result Invoice
-> Result CustomerBalanceTransactionInvoice'Variants
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Data.Functor.<$> Value -> Result Invoice
forall a. FromJSON a => Value -> Result a
Data.Aeson.Types.FromJSON.fromJSON Value
val) Result CustomerBalanceTransactionInvoice'Variants
-> Result CustomerBalanceTransactionInvoice'Variants
-> Result CustomerBalanceTransactionInvoice'Variants
forall (f :: * -> *) a. Alternative f => f a -> f a -> f a
GHC.Base.<|> String -> Result CustomerBalanceTransactionInvoice'Variants
forall a. String -> Result a
Data.Aeson.Types.Internal.Error String
"No variant matched") of
Data.Aeson.Types.Internal.Success CustomerBalanceTransactionInvoice'Variants
a -> CustomerBalanceTransactionInvoice'Variants
-> Parser CustomerBalanceTransactionInvoice'Variants
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure CustomerBalanceTransactionInvoice'Variants
a
Data.Aeson.Types.Internal.Error String
a -> String -> Parser CustomerBalanceTransactionInvoice'Variants
forall (m :: * -> *) a. MonadFail m => String -> m a
Control.Monad.Fail.fail String
a
data CustomerBalanceTransactionType'
=
CustomerBalanceTransactionType'Other Data.Aeson.Types.Internal.Value
|
CustomerBalanceTransactionType'Typed Data.Text.Internal.Text
|
CustomerBalanceTransactionType'EnumAdjustment
|
CustomerBalanceTransactionType'EnumAppliedToInvoice
|
CustomerBalanceTransactionType'EnumCreditNote
|
CustomerBalanceTransactionType'EnumInitial
|
CustomerBalanceTransactionType'EnumInvoiceTooLarge
|
CustomerBalanceTransactionType'EnumInvoiceTooSmall
|
CustomerBalanceTransactionType'EnumMigration
|
CustomerBalanceTransactionType'EnumUnappliedFromInvoice
|
CustomerBalanceTransactionType'EnumUnspentReceiverCredit
deriving (Int -> CustomerBalanceTransactionType' -> ShowS
[CustomerBalanceTransactionType'] -> ShowS
CustomerBalanceTransactionType' -> String
(Int -> CustomerBalanceTransactionType' -> ShowS)
-> (CustomerBalanceTransactionType' -> String)
-> ([CustomerBalanceTransactionType'] -> ShowS)
-> Show CustomerBalanceTransactionType'
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CustomerBalanceTransactionType'] -> ShowS
$cshowList :: [CustomerBalanceTransactionType'] -> ShowS
show :: CustomerBalanceTransactionType' -> String
$cshow :: CustomerBalanceTransactionType' -> String
showsPrec :: Int -> CustomerBalanceTransactionType' -> ShowS
$cshowsPrec :: Int -> CustomerBalanceTransactionType' -> ShowS
GHC.Show.Show, CustomerBalanceTransactionType'
-> CustomerBalanceTransactionType' -> Bool
(CustomerBalanceTransactionType'
-> CustomerBalanceTransactionType' -> Bool)
-> (CustomerBalanceTransactionType'
-> CustomerBalanceTransactionType' -> Bool)
-> Eq CustomerBalanceTransactionType'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CustomerBalanceTransactionType'
-> CustomerBalanceTransactionType' -> Bool
$c/= :: CustomerBalanceTransactionType'
-> CustomerBalanceTransactionType' -> Bool
== :: CustomerBalanceTransactionType'
-> CustomerBalanceTransactionType' -> Bool
$c== :: CustomerBalanceTransactionType'
-> CustomerBalanceTransactionType' -> Bool
GHC.Classes.Eq)
instance Data.Aeson.Types.ToJSON.ToJSON CustomerBalanceTransactionType' where
toJSON :: CustomerBalanceTransactionType' -> Value
toJSON (CustomerBalanceTransactionType'Other Value
val) = Value
val
toJSON (CustomerBalanceTransactionType'Typed Text
val) = Text -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON Text
val
toJSON (CustomerBalanceTransactionType'
CustomerBalanceTransactionType'EnumAdjustment) = Value
"adjustment"
toJSON (CustomerBalanceTransactionType'
CustomerBalanceTransactionType'EnumAppliedToInvoice) = Value
"applied_to_invoice"
toJSON (CustomerBalanceTransactionType'
CustomerBalanceTransactionType'EnumCreditNote) = Value
"credit_note"
toJSON (CustomerBalanceTransactionType'
CustomerBalanceTransactionType'EnumInitial) = Value
"initial"
toJSON (CustomerBalanceTransactionType'
CustomerBalanceTransactionType'EnumInvoiceTooLarge) = Value
"invoice_too_large"
toJSON (CustomerBalanceTransactionType'
CustomerBalanceTransactionType'EnumInvoiceTooSmall) = Value
"invoice_too_small"
toJSON (CustomerBalanceTransactionType'
CustomerBalanceTransactionType'EnumMigration) = Value
"migration"
toJSON (CustomerBalanceTransactionType'
CustomerBalanceTransactionType'EnumUnappliedFromInvoice) = Value
"unapplied_from_invoice"
toJSON (CustomerBalanceTransactionType'
CustomerBalanceTransactionType'EnumUnspentReceiverCredit) = Value
"unspent_receiver_credit"
instance Data.Aeson.Types.FromJSON.FromJSON CustomerBalanceTransactionType' where
parseJSON :: Value -> Parser CustomerBalanceTransactionType'
parseJSON Value
val =
CustomerBalanceTransactionType'
-> Parser CustomerBalanceTransactionType'
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
"adjustment" -> CustomerBalanceTransactionType'
CustomerBalanceTransactionType'EnumAdjustment
| Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"applied_to_invoice" -> CustomerBalanceTransactionType'
CustomerBalanceTransactionType'EnumAppliedToInvoice
| Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"credit_note" -> CustomerBalanceTransactionType'
CustomerBalanceTransactionType'EnumCreditNote
| Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"initial" -> CustomerBalanceTransactionType'
CustomerBalanceTransactionType'EnumInitial
| Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"invoice_too_large" -> CustomerBalanceTransactionType'
CustomerBalanceTransactionType'EnumInvoiceTooLarge
| Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"invoice_too_small" -> CustomerBalanceTransactionType'
CustomerBalanceTransactionType'EnumInvoiceTooSmall
| Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"migration" -> CustomerBalanceTransactionType'
CustomerBalanceTransactionType'EnumMigration
| Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"unapplied_from_invoice" -> CustomerBalanceTransactionType'
CustomerBalanceTransactionType'EnumUnappliedFromInvoice
| Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"unspent_receiver_credit" -> CustomerBalanceTransactionType'
CustomerBalanceTransactionType'EnumUnspentReceiverCredit
| Bool
GHC.Base.otherwise -> Value -> CustomerBalanceTransactionType'
CustomerBalanceTransactionType'Other Value
val
)