{-# LANGUAGE MultiWayIf #-}
-- CHANGE WITH CAUTION: This is a generated code file generated by https://github.com/Haskell-OpenAPI-Code-Generator/Haskell-OpenAPI-Client-Code-Generator.
{-# LANGUAGE OverloadedStrings #-}

-- | Contains the types generated from the schema Issuing_Settlement
module StripeAPI.Types.Issuing_Settlement 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 qualified Prelude as GHC.Integer.Type
import qualified Prelude as GHC.Maybe

-- | Defines the object schema located at @components.schemas.issuing.settlement@ in the specification.
--
-- When a non-stripe BIN is used, any use of an [issued card](https:\/\/stripe.com\/docs\/issuing) must be settled directly with the card network. The net amount owed is represented by an Issuing \`Settlement\` object.
data Issuing'settlement = Issuing'settlement
  { -- | bin: The Bank Identification Number reflecting this settlement record.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    Issuing'settlement -> Text
issuing'settlementBin :: Data.Text.Internal.Text,
    -- | clearing_date: The date that the transactions are cleared and posted to user\'s accounts.
    Issuing'settlement -> Int
issuing'settlementClearingDate :: GHC.Types.Int,
    -- | created: Time at which the object was created. Measured in seconds since the Unix epoch.
    Issuing'settlement -> Int
issuing'settlementCreated :: GHC.Types.Int,
    -- | currency: Three-letter [ISO currency code](https:\/\/www.iso.org\/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https:\/\/stripe.com\/docs\/currencies).
    Issuing'settlement -> Text
issuing'settlementCurrency :: Data.Text.Internal.Text,
    -- | id: Unique identifier for the object.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    Issuing'settlement -> Text
issuing'settlementId :: Data.Text.Internal.Text,
    -- | interchange_fees: The total interchange received as reimbursement for the transactions.
    Issuing'settlement -> Int
issuing'settlementInterchangeFees :: GHC.Types.Int,
    -- | livemode: Has the value \`true\` if the object exists in live mode or the value \`false\` if the object exists in test mode.
    Issuing'settlement -> Bool
issuing'settlementLivemode :: GHC.Types.Bool,
    -- | metadata: Set of [key-value pairs](https:\/\/stripe.com\/docs\/api\/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
    Issuing'settlement -> Object
issuing'settlementMetadata :: Data.Aeson.Types.Internal.Object,
    -- | net_total: The total net amount required to settle with the network.
    Issuing'settlement -> Int
issuing'settlementNetTotal :: GHC.Types.Int,
    -- | network_fees: The total amount of fees owed to the network.
    Issuing'settlement -> Int
issuing'settlementNetworkFees :: GHC.Types.Int,
    -- | network_settlement_identifier: The Settlement Identification Number assigned by the network.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    Issuing'settlement -> Text
issuing'settlementNetworkSettlementIdentifier :: Data.Text.Internal.Text,
    -- | settlement_service: One of \`international\` or \`uk_national_net\`.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    Issuing'settlement -> Text
issuing'settlementSettlementService :: Data.Text.Internal.Text,
    -- | transaction_count: The total number of transactions reflected in this settlement.
    Issuing'settlement -> Int
issuing'settlementTransactionCount :: GHC.Types.Int,
    -- | transaction_volume: The total transaction amount reflected in this settlement.
    Issuing'settlement -> Int
issuing'settlementTransactionVolume :: GHC.Types.Int
  }
  deriving
    ( Int -> Issuing'settlement -> ShowS
[Issuing'settlement] -> ShowS
Issuing'settlement -> String
(Int -> Issuing'settlement -> ShowS)
-> (Issuing'settlement -> String)
-> ([Issuing'settlement] -> ShowS)
-> Show Issuing'settlement
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [Issuing'settlement] -> ShowS
$cshowList :: [Issuing'settlement] -> ShowS
show :: Issuing'settlement -> String
$cshow :: Issuing'settlement -> String
showsPrec :: Int -> Issuing'settlement -> ShowS
$cshowsPrec :: Int -> Issuing'settlement -> ShowS
GHC.Show.Show,
      Issuing'settlement -> Issuing'settlement -> Bool
(Issuing'settlement -> Issuing'settlement -> Bool)
-> (Issuing'settlement -> Issuing'settlement -> Bool)
-> Eq Issuing'settlement
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: Issuing'settlement -> Issuing'settlement -> Bool
$c/= :: Issuing'settlement -> Issuing'settlement -> Bool
== :: Issuing'settlement -> Issuing'settlement -> Bool
$c== :: Issuing'settlement -> Issuing'settlement -> Bool
GHC.Classes.Eq
    )

instance Data.Aeson.Types.ToJSON.ToJSON Issuing'settlement where
  toJSON :: Issuing'settlement -> Value
toJSON Issuing'settlement
obj = [Pair] -> Value
Data.Aeson.Types.Internal.object (Text
"bin" Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Issuing'settlement -> Text
issuing'settlementBin Issuing'settlement
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"clearing_date" Text -> Int -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Issuing'settlement -> Int
issuing'settlementClearingDate Issuing'settlement
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..= Issuing'settlement -> Int
issuing'settlementCreated Issuing'settlement
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..= Issuing'settlement -> Text
issuing'settlementCurrency Issuing'settlement
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..= Issuing'settlement -> Text
issuing'settlementId Issuing'settlement
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"interchange_fees" Text -> Int -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Issuing'settlement -> Int
issuing'settlementInterchangeFees Issuing'settlement
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..= Issuing'settlement -> Bool
issuing'settlementLivemode Issuing'settlement
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"metadata" Text -> Object -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Issuing'settlement -> Object
issuing'settlementMetadata Issuing'settlement
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"net_total" Text -> Int -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Issuing'settlement -> Int
issuing'settlementNetTotal Issuing'settlement
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"network_fees" Text -> Int -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Issuing'settlement -> Int
issuing'settlementNetworkFees Issuing'settlement
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"network_settlement_identifier" Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Issuing'settlement -> Text
issuing'settlementNetworkSettlementIdentifier Issuing'settlement
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"settlement_service" Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Issuing'settlement -> Text
issuing'settlementSettlementService Issuing'settlement
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"transaction_count" Text -> Int -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Issuing'settlement -> Int
issuing'settlementTransactionCount Issuing'settlement
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"transaction_volume" Text -> Int -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Issuing'settlement -> Int
issuing'settlementTransactionVolume Issuing'settlement
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"network" 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
"visa" 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
"issuing.settlement" Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: Issuing'settlement -> Encoding
toEncoding Issuing'settlement
obj = Series -> Encoding
Data.Aeson.Encoding.Internal.pairs ((Text
"bin" Text -> Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Issuing'settlement -> Text
issuing'settlementBin Issuing'settlement
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"clearing_date" Text -> Int -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Issuing'settlement -> Int
issuing'settlementClearingDate Issuing'settlement
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..= Issuing'settlement -> Int
issuing'settlementCreated Issuing'settlement
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..= Issuing'settlement -> Text
issuing'settlementCurrency Issuing'settlement
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..= Issuing'settlement -> Text
issuing'settlementId Issuing'settlement
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"interchange_fees" Text -> Int -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Issuing'settlement -> Int
issuing'settlementInterchangeFees Issuing'settlement
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..= Issuing'settlement -> Bool
issuing'settlementLivemode Issuing'settlement
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"metadata" Text -> Object -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Issuing'settlement -> Object
issuing'settlementMetadata Issuing'settlement
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"net_total" Text -> Int -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Issuing'settlement -> Int
issuing'settlementNetTotal Issuing'settlement
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"network_fees" Text -> Int -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Issuing'settlement -> Int
issuing'settlementNetworkFees Issuing'settlement
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"network_settlement_identifier" Text -> Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Issuing'settlement -> Text
issuing'settlementNetworkSettlementIdentifier Issuing'settlement
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"settlement_service" Text -> Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Issuing'settlement -> Text
issuing'settlementSettlementService Issuing'settlement
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"transaction_count" Text -> Int -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Issuing'settlement -> Int
issuing'settlementTransactionCount Issuing'settlement
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"transaction_volume" Text -> Int -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Issuing'settlement -> Int
issuing'settlementTransactionVolume Issuing'settlement
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"network" 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
"visa") 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
"issuing.settlement"))))))))))))))))

instance Data.Aeson.Types.FromJSON.FromJSON Issuing'settlement where
  parseJSON :: Value -> Parser Issuing'settlement
parseJSON = String
-> (Object -> Parser Issuing'settlement)
-> Value
-> Parser Issuing'settlement
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.Aeson.Types.FromJSON.withObject String
"Issuing'settlement" (\Object
obj -> ((((((((((((((Text
 -> Int
 -> Int
 -> Text
 -> Text
 -> Int
 -> Bool
 -> Object
 -> Int
 -> Int
 -> Text
 -> Text
 -> Int
 -> Int
 -> Issuing'settlement)
-> Parser
     (Text
      -> Int
      -> Int
      -> Text
      -> Text
      -> Int
      -> Bool
      -> Object
      -> Int
      -> Int
      -> Text
      -> Text
      -> Int
      -> Int
      -> Issuing'settlement)
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure Text
-> Int
-> Int
-> Text
-> Text
-> Int
-> Bool
-> Object
-> Int
-> Int
-> Text
-> Text
-> Int
-> Int
-> Issuing'settlement
Issuing'settlement Parser
  (Text
   -> Int
   -> Int
   -> Text
   -> Text
   -> Int
   -> Bool
   -> Object
   -> Int
   -> Int
   -> Text
   -> Text
   -> Int
   -> Int
   -> Issuing'settlement)
-> Parser Text
-> Parser
     (Int
      -> Int
      -> Text
      -> Text
      -> Int
      -> Bool
      -> Object
      -> Int
      -> Int
      -> Text
      -> Text
      -> Int
      -> Int
      -> Issuing'settlement)
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
"bin")) Parser
  (Int
   -> Int
   -> Text
   -> Text
   -> Int
   -> Bool
   -> Object
   -> Int
   -> Int
   -> Text
   -> Text
   -> Int
   -> Int
   -> Issuing'settlement)
-> Parser Int
-> Parser
     (Int
      -> Text
      -> Text
      -> Int
      -> Bool
      -> Object
      -> Int
      -> Int
      -> Text
      -> Text
      -> Int
      -> Int
      -> Issuing'settlement)
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
"clearing_date")) Parser
  (Int
   -> Text
   -> Text
   -> Int
   -> Bool
   -> Object
   -> Int
   -> Int
   -> Text
   -> Text
   -> Int
   -> Int
   -> Issuing'settlement)
-> Parser Int
-> Parser
     (Text
      -> Text
      -> Int
      -> Bool
      -> Object
      -> Int
      -> Int
      -> Text
      -> Text
      -> Int
      -> Int
      -> Issuing'settlement)
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
   -> Text
   -> Int
   -> Bool
   -> Object
   -> Int
   -> Int
   -> Text
   -> Text
   -> Int
   -> Int
   -> Issuing'settlement)
-> Parser Text
-> Parser
     (Text
      -> Int
      -> Bool
      -> Object
      -> Int
      -> Int
      -> Text
      -> Text
      -> Int
      -> Int
      -> Issuing'settlement)
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
  (Text
   -> Int
   -> Bool
   -> Object
   -> Int
   -> Int
   -> Text
   -> Text
   -> Int
   -> Int
   -> Issuing'settlement)
-> Parser Text
-> Parser
     (Int
      -> Bool
      -> Object
      -> Int
      -> Int
      -> Text
      -> Text
      -> Int
      -> Int
      -> Issuing'settlement)
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
  (Int
   -> Bool
   -> Object
   -> Int
   -> Int
   -> Text
   -> Text
   -> Int
   -> Int
   -> Issuing'settlement)
-> Parser Int
-> Parser
     (Bool
      -> Object
      -> Int
      -> Int
      -> Text
      -> Text
      -> Int
      -> Int
      -> Issuing'settlement)
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
"interchange_fees")) Parser
  (Bool
   -> Object
   -> Int
   -> Int
   -> Text
   -> Text
   -> Int
   -> Int
   -> Issuing'settlement)
-> Parser Bool
-> Parser
     (Object
      -> Int -> Int -> Text -> Text -> Int -> Int -> Issuing'settlement)
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
  (Object
   -> Int -> Int -> Text -> Text -> Int -> Int -> Issuing'settlement)
-> Parser Object
-> Parser
     (Int -> Int -> Text -> Text -> Int -> Int -> Issuing'settlement)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser Object
forall a. FromJSON a => Object -> Text -> Parser a
Data.Aeson.Types.FromJSON..: Text
"metadata")) Parser
  (Int -> Int -> Text -> Text -> Int -> Int -> Issuing'settlement)
-> Parser Int
-> Parser (Int -> Text -> Text -> Int -> Int -> Issuing'settlement)
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
"net_total")) Parser (Int -> Text -> Text -> Int -> Int -> Issuing'settlement)
-> Parser Int
-> Parser (Text -> Text -> Int -> Int -> Issuing'settlement)
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
"network_fees")) Parser (Text -> Text -> Int -> Int -> Issuing'settlement)
-> Parser Text -> Parser (Text -> Int -> Int -> Issuing'settlement)
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
"network_settlement_identifier")) Parser (Text -> Int -> Int -> Issuing'settlement)
-> Parser Text -> Parser (Int -> Int -> Issuing'settlement)
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
"settlement_service")) Parser (Int -> Int -> Issuing'settlement)
-> Parser Int -> Parser (Int -> Issuing'settlement)
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
"transaction_count")) Parser (Int -> Issuing'settlement)
-> Parser Int -> Parser Issuing'settlement
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
"transaction_volume"))

-- | Create a new 'Issuing'settlement' with all required fields.
mkIssuing'settlement ::
  -- | 'issuing'settlementBin'
  Data.Text.Internal.Text ->
  -- | 'issuing'settlementClearingDate'
  GHC.Types.Int ->
  -- | 'issuing'settlementCreated'
  GHC.Types.Int ->
  -- | 'issuing'settlementCurrency'
  Data.Text.Internal.Text ->
  -- | 'issuing'settlementId'
  Data.Text.Internal.Text ->
  -- | 'issuing'settlementInterchangeFees'
  GHC.Types.Int ->
  -- | 'issuing'settlementLivemode'
  GHC.Types.Bool ->
  -- | 'issuing'settlementMetadata'
  Data.Aeson.Types.Internal.Object ->
  -- | 'issuing'settlementNetTotal'
  GHC.Types.Int ->
  -- | 'issuing'settlementNetworkFees'
  GHC.Types.Int ->
  -- | 'issuing'settlementNetworkSettlementIdentifier'
  Data.Text.Internal.Text ->
  -- | 'issuing'settlementSettlementService'
  Data.Text.Internal.Text ->
  -- | 'issuing'settlementTransactionCount'
  GHC.Types.Int ->
  -- | 'issuing'settlementTransactionVolume'
  GHC.Types.Int ->
  Issuing'settlement
mkIssuing'settlement :: Text
-> Int
-> Int
-> Text
-> Text
-> Int
-> Bool
-> Object
-> Int
-> Int
-> Text
-> Text
-> Int
-> Int
-> Issuing'settlement
mkIssuing'settlement Text
issuing'settlementBin Int
issuing'settlementClearingDate Int
issuing'settlementCreated Text
issuing'settlementCurrency Text
issuing'settlementId Int
issuing'settlementInterchangeFees Bool
issuing'settlementLivemode Object
issuing'settlementMetadata Int
issuing'settlementNetTotal Int
issuing'settlementNetworkFees Text
issuing'settlementNetworkSettlementIdentifier Text
issuing'settlementSettlementService Int
issuing'settlementTransactionCount Int
issuing'settlementTransactionVolume =
  Issuing'settlement :: Text
-> Int
-> Int
-> Text
-> Text
-> Int
-> Bool
-> Object
-> Int
-> Int
-> Text
-> Text
-> Int
-> Int
-> Issuing'settlement
Issuing'settlement
    { issuing'settlementBin :: Text
issuing'settlementBin = Text
issuing'settlementBin,
      issuing'settlementClearingDate :: Int
issuing'settlementClearingDate = Int
issuing'settlementClearingDate,
      issuing'settlementCreated :: Int
issuing'settlementCreated = Int
issuing'settlementCreated,
      issuing'settlementCurrency :: Text
issuing'settlementCurrency = Text
issuing'settlementCurrency,
      issuing'settlementId :: Text
issuing'settlementId = Text
issuing'settlementId,
      issuing'settlementInterchangeFees :: Int
issuing'settlementInterchangeFees = Int
issuing'settlementInterchangeFees,
      issuing'settlementLivemode :: Bool
issuing'settlementLivemode = Bool
issuing'settlementLivemode,
      issuing'settlementMetadata :: Object
issuing'settlementMetadata = Object
issuing'settlementMetadata,
      issuing'settlementNetTotal :: Int
issuing'settlementNetTotal = Int
issuing'settlementNetTotal,
      issuing'settlementNetworkFees :: Int
issuing'settlementNetworkFees = Int
issuing'settlementNetworkFees,
      issuing'settlementNetworkSettlementIdentifier :: Text
issuing'settlementNetworkSettlementIdentifier = Text
issuing'settlementNetworkSettlementIdentifier,
      issuing'settlementSettlementService :: Text
issuing'settlementSettlementService = Text
issuing'settlementSettlementService,
      issuing'settlementTransactionCount :: Int
issuing'settlementTransactionCount = Int
issuing'settlementTransactionCount,
      issuing'settlementTransactionVolume :: Int
issuing'settlementTransactionVolume = Int
issuing'settlementTransactionVolume
    }