{-# 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 Treasury_Transaction module StripeAPI.Types.Treasury_Transaction 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.Foldable import qualified Data.Functor import qualified Data.Maybe 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.Issuing_Authorization import {-# SOURCE #-} StripeAPI.Types.TreasuryTransactionsResourceAbstractTransactionResourceStatusTransitions import {-# SOURCE #-} StripeAPI.Types.TreasuryTransactionsResourceBalanceImpact import {-# SOURCE #-} StripeAPI.Types.TreasuryTransactionsResourceFlowDetails import {-# SOURCE #-} StripeAPI.Types.Treasury_CreditReversal import {-# SOURCE #-} StripeAPI.Types.Treasury_DebitReversal import {-# SOURCE #-} StripeAPI.Types.Treasury_InboundTransfer import {-# SOURCE #-} StripeAPI.Types.Treasury_OutboundPayment import {-# SOURCE #-} StripeAPI.Types.Treasury_OutboundTransfer import {-# SOURCE #-} StripeAPI.Types.Treasury_ReceivedCredit import {-# SOURCE #-} StripeAPI.Types.Treasury_ReceivedDebit import {-# SOURCE #-} StripeAPI.Types.Treasury_TransactionEntry import qualified Prelude as GHC.Integer.Type import qualified Prelude as GHC.Maybe -- | Defines the object schema located at @components.schemas.treasury.transaction@ in the specification. -- -- Transactions represent changes to a [FinancialAccount\'s](https:\/\/stripe.com\/docs\/api\#financial_accounts) balance. data Treasury'transaction = Treasury'transaction { -- | amount: Amount (in cents) transferred. treasury'transactionAmount :: GHC.Types.Int, -- | balance_impact: Change to a FinancialAccount\'s balance treasury'transactionBalanceImpact :: TreasuryTransactionsResourceBalanceImpact, -- | created: Time at which the object was created. Measured in seconds since the Unix epoch. treasury'transactionCreated :: 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). treasury'transactionCurrency :: Data.Text.Internal.Text, -- | description: An arbitrary string attached to the object. Often useful for displaying to users. -- -- Constraints: -- -- * Maximum length of 5000 treasury'transactionDescription :: Data.Text.Internal.Text, -- | entries: A list of TransactionEntries that are part of this Transaction. This cannot be expanded in any list endpoints. treasury'transactionEntries :: (GHC.Maybe.Maybe (StripeAPI.Common.Nullable Treasury'transactionEntries'NonNullable)), -- | financial_account: The FinancialAccount associated with this object. -- -- Constraints: -- -- * Maximum length of 5000 treasury'transactionFinancialAccount :: Data.Text.Internal.Text, -- | flow: ID of the flow that created the Transaction. -- -- Constraints: -- -- * Maximum length of 5000 treasury'transactionFlow :: (GHC.Maybe.Maybe (StripeAPI.Common.Nullable Data.Text.Internal.Text)), -- | flow_details: Details of the flow that created the Transaction. treasury'transactionFlowDetails :: (GHC.Maybe.Maybe (StripeAPI.Common.Nullable Treasury'transactionFlowDetails'NonNullable)), -- | flow_type: Type of the flow that created the Transaction. treasury'transactionFlowType :: Treasury'transactionFlowType', -- | id: Unique identifier for the object. -- -- Constraints: -- -- * Maximum length of 5000 treasury'transactionId :: Data.Text.Internal.Text, -- | livemode: Has the value \`true\` if the object exists in live mode or the value \`false\` if the object exists in test mode. treasury'transactionLivemode :: GHC.Types.Bool, -- | status: Status of the Transaction. treasury'transactionStatus :: Treasury'transactionStatus', -- | status_transitions: treasury'transactionStatusTransitions :: TreasuryTransactionsResourceAbstractTransactionResourceStatusTransitions } deriving ( GHC.Show.Show, GHC.Classes.Eq ) instance Data.Aeson.Types.ToJSON.ToJSON Treasury'transaction where toJSON obj = Data.Aeson.Types.Internal.object (Data.Foldable.concat (["amount" Data.Aeson.Types.ToJSON..= treasury'transactionAmount obj] : ["balance_impact" Data.Aeson.Types.ToJSON..= treasury'transactionBalanceImpact obj] : ["created" Data.Aeson.Types.ToJSON..= treasury'transactionCreated obj] : ["currency" Data.Aeson.Types.ToJSON..= treasury'transactionCurrency obj] : ["description" Data.Aeson.Types.ToJSON..= treasury'transactionDescription obj] : Data.Maybe.maybe GHC.Base.mempty (GHC.Base.pure GHC.Base.. ("entries" Data.Aeson.Types.ToJSON..=)) (treasury'transactionEntries obj) : ["financial_account" Data.Aeson.Types.ToJSON..= treasury'transactionFinancialAccount obj] : Data.Maybe.maybe GHC.Base.mempty (GHC.Base.pure GHC.Base.. ("flow" Data.Aeson.Types.ToJSON..=)) (treasury'transactionFlow obj) : Data.Maybe.maybe GHC.Base.mempty (GHC.Base.pure GHC.Base.. ("flow_details" Data.Aeson.Types.ToJSON..=)) (treasury'transactionFlowDetails obj) : ["flow_type" Data.Aeson.Types.ToJSON..= treasury'transactionFlowType obj] : ["id" Data.Aeson.Types.ToJSON..= treasury'transactionId obj] : ["livemode" Data.Aeson.Types.ToJSON..= treasury'transactionLivemode obj] : ["status" Data.Aeson.Types.ToJSON..= treasury'transactionStatus obj] : ["status_transitions" Data.Aeson.Types.ToJSON..= treasury'transactionStatusTransitions obj] : ["object" Data.Aeson.Types.ToJSON..= Data.Aeson.Types.Internal.String "treasury.transaction"] : GHC.Base.mempty)) toEncoding obj = Data.Aeson.Encoding.Internal.pairs (GHC.Base.mconcat (Data.Foldable.concat (["amount" Data.Aeson.Types.ToJSON..= treasury'transactionAmount obj] : ["balance_impact" Data.Aeson.Types.ToJSON..= treasury'transactionBalanceImpact obj] : ["created" Data.Aeson.Types.ToJSON..= treasury'transactionCreated obj] : ["currency" Data.Aeson.Types.ToJSON..= treasury'transactionCurrency obj] : ["description" Data.Aeson.Types.ToJSON..= treasury'transactionDescription obj] : Data.Maybe.maybe GHC.Base.mempty (GHC.Base.pure GHC.Base.. ("entries" Data.Aeson.Types.ToJSON..=)) (treasury'transactionEntries obj) : ["financial_account" Data.Aeson.Types.ToJSON..= treasury'transactionFinancialAccount obj] : Data.Maybe.maybe GHC.Base.mempty (GHC.Base.pure GHC.Base.. ("flow" Data.Aeson.Types.ToJSON..=)) (treasury'transactionFlow obj) : Data.Maybe.maybe GHC.Base.mempty (GHC.Base.pure GHC.Base.. ("flow_details" Data.Aeson.Types.ToJSON..=)) (treasury'transactionFlowDetails obj) : ["flow_type" Data.Aeson.Types.ToJSON..= treasury'transactionFlowType obj] : ["id" Data.Aeson.Types.ToJSON..= treasury'transactionId obj] : ["livemode" Data.Aeson.Types.ToJSON..= treasury'transactionLivemode obj] : ["status" Data.Aeson.Types.ToJSON..= treasury'transactionStatus obj] : ["status_transitions" Data.Aeson.Types.ToJSON..= treasury'transactionStatusTransitions obj] : ["object" Data.Aeson.Types.ToJSON..= Data.Aeson.Types.Internal.String "treasury.transaction"] : GHC.Base.mempty))) instance Data.Aeson.Types.FromJSON.FromJSON Treasury'transaction where parseJSON = Data.Aeson.Types.FromJSON.withObject "Treasury'transaction" (\obj -> (((((((((((((GHC.Base.pure Treasury'transaction GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "amount")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "balance_impact")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "created")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "currency")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "description")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:! "entries")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "financial_account")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:! "flow")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:! "flow_details")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "flow_type")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "id")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "livemode")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "status")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "status_transitions")) -- | Create a new 'Treasury'transaction' with all required fields. mkTreasury'transaction :: -- | 'treasury'transactionAmount' GHC.Types.Int -> -- | 'treasury'transactionBalanceImpact' TreasuryTransactionsResourceBalanceImpact -> -- | 'treasury'transactionCreated' GHC.Types.Int -> -- | 'treasury'transactionCurrency' Data.Text.Internal.Text -> -- | 'treasury'transactionDescription' Data.Text.Internal.Text -> -- | 'treasury'transactionFinancialAccount' Data.Text.Internal.Text -> -- | 'treasury'transactionFlowType' Treasury'transactionFlowType' -> -- | 'treasury'transactionId' Data.Text.Internal.Text -> -- | 'treasury'transactionLivemode' GHC.Types.Bool -> -- | 'treasury'transactionStatus' Treasury'transactionStatus' -> -- | 'treasury'transactionStatusTransitions' TreasuryTransactionsResourceAbstractTransactionResourceStatusTransitions -> Treasury'transaction mkTreasury'transaction treasury'transactionAmount treasury'transactionBalanceImpact treasury'transactionCreated treasury'transactionCurrency treasury'transactionDescription treasury'transactionFinancialAccount treasury'transactionFlowType treasury'transactionId treasury'transactionLivemode treasury'transactionStatus treasury'transactionStatusTransitions = Treasury'transaction { treasury'transactionAmount = treasury'transactionAmount, treasury'transactionBalanceImpact = treasury'transactionBalanceImpact, treasury'transactionCreated = treasury'transactionCreated, treasury'transactionCurrency = treasury'transactionCurrency, treasury'transactionDescription = treasury'transactionDescription, treasury'transactionEntries = GHC.Maybe.Nothing, treasury'transactionFinancialAccount = treasury'transactionFinancialAccount, treasury'transactionFlow = GHC.Maybe.Nothing, treasury'transactionFlowDetails = GHC.Maybe.Nothing, treasury'transactionFlowType = treasury'transactionFlowType, treasury'transactionId = treasury'transactionId, treasury'transactionLivemode = treasury'transactionLivemode, treasury'transactionStatus = treasury'transactionStatus, treasury'transactionStatusTransitions = treasury'transactionStatusTransitions } -- | Defines the object schema located at @components.schemas.treasury.transaction.properties.entries@ in the specification. -- -- A list of TransactionEntries that are part of this Transaction. This cannot be expanded in any list endpoints. data Treasury'transactionEntries'NonNullable = Treasury'transactionEntries'NonNullable { -- | data: Details about each object. treasury'transactionEntries'NonNullableData :: ([Treasury'transactionEntry]), -- | has_more: True if this list has another page of items after this one that can be fetched. treasury'transactionEntries'NonNullableHasMore :: GHC.Types.Bool, -- | url: The URL where this list can be accessed. -- -- Constraints: -- -- * Maximum length of 5000 -- * Must match pattern \'^\/v1\/treasury\/transaction_entries\' treasury'transactionEntries'NonNullableUrl :: Data.Text.Internal.Text } deriving ( GHC.Show.Show, GHC.Classes.Eq ) instance Data.Aeson.Types.ToJSON.ToJSON Treasury'transactionEntries'NonNullable where toJSON obj = Data.Aeson.Types.Internal.object (Data.Foldable.concat (["data" Data.Aeson.Types.ToJSON..= treasury'transactionEntries'NonNullableData obj] : ["has_more" Data.Aeson.Types.ToJSON..= treasury'transactionEntries'NonNullableHasMore obj] : ["url" Data.Aeson.Types.ToJSON..= treasury'transactionEntries'NonNullableUrl obj] : ["object" Data.Aeson.Types.ToJSON..= Data.Aeson.Types.Internal.String "list"] : GHC.Base.mempty)) toEncoding obj = Data.Aeson.Encoding.Internal.pairs (GHC.Base.mconcat (Data.Foldable.concat (["data" Data.Aeson.Types.ToJSON..= treasury'transactionEntries'NonNullableData obj] : ["has_more" Data.Aeson.Types.ToJSON..= treasury'transactionEntries'NonNullableHasMore obj] : ["url" Data.Aeson.Types.ToJSON..= treasury'transactionEntries'NonNullableUrl obj] : ["object" Data.Aeson.Types.ToJSON..= Data.Aeson.Types.Internal.String "list"] : GHC.Base.mempty))) instance Data.Aeson.Types.FromJSON.FromJSON Treasury'transactionEntries'NonNullable where parseJSON = Data.Aeson.Types.FromJSON.withObject "Treasury'transactionEntries'NonNullable" (\obj -> ((GHC.Base.pure Treasury'transactionEntries'NonNullable GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "data")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "has_more")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "url")) -- | Create a new 'Treasury'transactionEntries'NonNullable' with all required fields. mkTreasury'transactionEntries'NonNullable :: -- | 'treasury'transactionEntries'NonNullableData' [Treasury'transactionEntry] -> -- | 'treasury'transactionEntries'NonNullableHasMore' GHC.Types.Bool -> -- | 'treasury'transactionEntries'NonNullableUrl' Data.Text.Internal.Text -> Treasury'transactionEntries'NonNullable mkTreasury'transactionEntries'NonNullable treasury'transactionEntries'NonNullableData treasury'transactionEntries'NonNullableHasMore treasury'transactionEntries'NonNullableUrl = Treasury'transactionEntries'NonNullable { treasury'transactionEntries'NonNullableData = treasury'transactionEntries'NonNullableData, treasury'transactionEntries'NonNullableHasMore = treasury'transactionEntries'NonNullableHasMore, treasury'transactionEntries'NonNullableUrl = treasury'transactionEntries'NonNullableUrl } -- | Defines the object schema located at @components.schemas.treasury.transaction.properties.flow_details.anyOf@ in the specification. -- -- Details of the flow that created the Transaction. data Treasury'transactionFlowDetails'NonNullable = Treasury'transactionFlowDetails'NonNullable { -- | credit_reversal: You can reverse some [ReceivedCredits](https:\/\/stripe.com\/docs\/api\#received_credits) depending on their network and source flow. Reversing a ReceivedCredit leads to the creation of a new object known as a CreditReversal. treasury'transactionFlowDetails'NonNullableCreditReversal :: (GHC.Maybe.Maybe Treasury'creditReversal), -- | debit_reversal: You can reverse some [ReceivedDebits](https:\/\/stripe.com\/docs\/api\#received_debits) depending on their network and source flow. Reversing a ReceivedDebit leads to the creation of a new object known as a DebitReversal. treasury'transactionFlowDetails'NonNullableDebitReversal :: (GHC.Maybe.Maybe Treasury'debitReversal), -- | inbound_transfer: Use [InboundTransfers](https:\/\/stripe.com\/docs\/treasury\/moving-money\/financial-accounts\/into\/inbound-transfers) to add funds to your [FinancialAccount](https:\/\/stripe.com\/docs\/api\#financial_accounts) via a PaymentMethod that is owned by you. The funds will be transferred via an ACH debit. treasury'transactionFlowDetails'NonNullableInboundTransfer :: (GHC.Maybe.Maybe Treasury'inboundTransfer), -- | issuing_authorization: When an [issued card](https:\/\/stripe.com\/docs\/issuing) is used to make a purchase, an Issuing \`Authorization\` -- object is created. [Authorizations](https:\/\/stripe.com\/docs\/issuing\/purchases\/authorizations) must be approved for the -- purchase to be completed successfully. -- -- Related guide: [Issued Card Authorizations](https:\/\/stripe.com\/docs\/issuing\/purchases\/authorizations). treasury'transactionFlowDetails'NonNullableIssuingAuthorization :: (GHC.Maybe.Maybe Issuing'authorization), -- | outbound_payment: Use OutboundPayments to send funds to another party\'s external bank account or [FinancialAccount](https:\/\/stripe.com\/docs\/api\#financial_accounts). To send money to an account belonging to the same user, use an [OutboundTransfer](https:\/\/stripe.com\/docs\/api\#outbound_transfers). -- -- Simulate OutboundPayment state changes with the \`\/v1\/test_helpers\/treasury\/outbound_payments\` endpoints. These methods can only be called on test mode objects. treasury'transactionFlowDetails'NonNullableOutboundPayment :: (GHC.Maybe.Maybe Treasury'outboundPayment), -- | outbound_transfer: Use OutboundTransfers to transfer funds from a [FinancialAccount](https:\/\/stripe.com\/docs\/api\#financial_accounts) to a PaymentMethod belonging to the same entity. To send funds to a different party, use [OutboundPayments](https:\/\/stripe.com\/docs\/api\#outbound_payments) instead. You can send funds over ACH rails or through a domestic wire transfer to a user\'s own external bank account. -- -- Simulate OutboundTransfer state changes with the \`\/v1\/test_helpers\/treasury\/outbound_transfers\` endpoints. These methods can only be called on test mode objects. treasury'transactionFlowDetails'NonNullableOutboundTransfer :: (GHC.Maybe.Maybe Treasury'outboundTransfer), -- | received_credit: ReceivedCredits represent funds sent to a [FinancialAccount](https:\/\/stripe.com\/docs\/api\#financial_accounts) (for example, via ACH or wire). These money movements are not initiated from the FinancialAccount. treasury'transactionFlowDetails'NonNullableReceivedCredit :: (GHC.Maybe.Maybe Treasury'receivedCredit), -- | received_debit: ReceivedDebits represent funds pulled from a [FinancialAccount](https:\/\/stripe.com\/docs\/api\#financial_accounts). These are not initiated from the FinancialAccount. treasury'transactionFlowDetails'NonNullableReceivedDebit :: (GHC.Maybe.Maybe Treasury'receivedDebit), -- | type: Type of the flow that created the Transaction. Set to the same value as \`flow_type\`. treasury'transactionFlowDetails'NonNullableType :: (GHC.Maybe.Maybe Treasury'transactionFlowDetails'NonNullableType') } deriving ( GHC.Show.Show, GHC.Classes.Eq ) instance Data.Aeson.Types.ToJSON.ToJSON Treasury'transactionFlowDetails'NonNullable where toJSON obj = Data.Aeson.Types.Internal.object (Data.Foldable.concat (Data.Maybe.maybe GHC.Base.mempty (GHC.Base.pure GHC.Base.. ("credit_reversal" Data.Aeson.Types.ToJSON..=)) (treasury'transactionFlowDetails'NonNullableCreditReversal obj) : Data.Maybe.maybe GHC.Base.mempty (GHC.Base.pure GHC.Base.. ("debit_reversal" Data.Aeson.Types.ToJSON..=)) (treasury'transactionFlowDetails'NonNullableDebitReversal obj) : Data.Maybe.maybe GHC.Base.mempty (GHC.Base.pure GHC.Base.. ("inbound_transfer" Data.Aeson.Types.ToJSON..=)) (treasury'transactionFlowDetails'NonNullableInboundTransfer obj) : Data.Maybe.maybe GHC.Base.mempty (GHC.Base.pure GHC.Base.. ("issuing_authorization" Data.Aeson.Types.ToJSON..=)) (treasury'transactionFlowDetails'NonNullableIssuingAuthorization obj) : Data.Maybe.maybe GHC.Base.mempty (GHC.Base.pure GHC.Base.. ("outbound_payment" Data.Aeson.Types.ToJSON..=)) (treasury'transactionFlowDetails'NonNullableOutboundPayment obj) : Data.Maybe.maybe GHC.Base.mempty (GHC.Base.pure GHC.Base.. ("outbound_transfer" Data.Aeson.Types.ToJSON..=)) (treasury'transactionFlowDetails'NonNullableOutboundTransfer obj) : Data.Maybe.maybe GHC.Base.mempty (GHC.Base.pure GHC.Base.. ("received_credit" Data.Aeson.Types.ToJSON..=)) (treasury'transactionFlowDetails'NonNullableReceivedCredit obj) : Data.Maybe.maybe GHC.Base.mempty (GHC.Base.pure GHC.Base.. ("received_debit" Data.Aeson.Types.ToJSON..=)) (treasury'transactionFlowDetails'NonNullableReceivedDebit obj) : Data.Maybe.maybe GHC.Base.mempty (GHC.Base.pure GHC.Base.. ("type" Data.Aeson.Types.ToJSON..=)) (treasury'transactionFlowDetails'NonNullableType obj) : GHC.Base.mempty)) toEncoding obj = Data.Aeson.Encoding.Internal.pairs (GHC.Base.mconcat (Data.Foldable.concat (Data.Maybe.maybe GHC.Base.mempty (GHC.Base.pure GHC.Base.. ("credit_reversal" Data.Aeson.Types.ToJSON..=)) (treasury'transactionFlowDetails'NonNullableCreditReversal obj) : Data.Maybe.maybe GHC.Base.mempty (GHC.Base.pure GHC.Base.. ("debit_reversal" Data.Aeson.Types.ToJSON..=)) (treasury'transactionFlowDetails'NonNullableDebitReversal obj) : Data.Maybe.maybe GHC.Base.mempty (GHC.Base.pure GHC.Base.. ("inbound_transfer" Data.Aeson.Types.ToJSON..=)) (treasury'transactionFlowDetails'NonNullableInboundTransfer obj) : Data.Maybe.maybe GHC.Base.mempty (GHC.Base.pure GHC.Base.. ("issuing_authorization" Data.Aeson.Types.ToJSON..=)) (treasury'transactionFlowDetails'NonNullableIssuingAuthorization obj) : Data.Maybe.maybe GHC.Base.mempty (GHC.Base.pure GHC.Base.. ("outbound_payment" Data.Aeson.Types.ToJSON..=)) (treasury'transactionFlowDetails'NonNullableOutboundPayment obj) : Data.Maybe.maybe GHC.Base.mempty (GHC.Base.pure GHC.Base.. ("outbound_transfer" Data.Aeson.Types.ToJSON..=)) (treasury'transactionFlowDetails'NonNullableOutboundTransfer obj) : Data.Maybe.maybe GHC.Base.mempty (GHC.Base.pure GHC.Base.. ("received_credit" Data.Aeson.Types.ToJSON..=)) (treasury'transactionFlowDetails'NonNullableReceivedCredit obj) : Data.Maybe.maybe GHC.Base.mempty (GHC.Base.pure GHC.Base.. ("received_debit" Data.Aeson.Types.ToJSON..=)) (treasury'transactionFlowDetails'NonNullableReceivedDebit obj) : Data.Maybe.maybe GHC.Base.mempty (GHC.Base.pure GHC.Base.. ("type" Data.Aeson.Types.ToJSON..=)) (treasury'transactionFlowDetails'NonNullableType obj) : GHC.Base.mempty))) instance Data.Aeson.Types.FromJSON.FromJSON Treasury'transactionFlowDetails'NonNullable where parseJSON = Data.Aeson.Types.FromJSON.withObject "Treasury'transactionFlowDetails'NonNullable" (\obj -> ((((((((GHC.Base.pure Treasury'transactionFlowDetails'NonNullable GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:! "credit_reversal")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:! "debit_reversal")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:! "inbound_transfer")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:! "issuing_authorization")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:! "outbound_payment")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:! "outbound_transfer")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:! "received_credit")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:! "received_debit")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:! "type")) -- | Create a new 'Treasury'transactionFlowDetails'NonNullable' with all required fields. mkTreasury'transactionFlowDetails'NonNullable :: Treasury'transactionFlowDetails'NonNullable mkTreasury'transactionFlowDetails'NonNullable = Treasury'transactionFlowDetails'NonNullable { treasury'transactionFlowDetails'NonNullableCreditReversal = GHC.Maybe.Nothing, treasury'transactionFlowDetails'NonNullableDebitReversal = GHC.Maybe.Nothing, treasury'transactionFlowDetails'NonNullableInboundTransfer = GHC.Maybe.Nothing, treasury'transactionFlowDetails'NonNullableIssuingAuthorization = GHC.Maybe.Nothing, treasury'transactionFlowDetails'NonNullableOutboundPayment = GHC.Maybe.Nothing, treasury'transactionFlowDetails'NonNullableOutboundTransfer = GHC.Maybe.Nothing, treasury'transactionFlowDetails'NonNullableReceivedCredit = GHC.Maybe.Nothing, treasury'transactionFlowDetails'NonNullableReceivedDebit = GHC.Maybe.Nothing, treasury'transactionFlowDetails'NonNullableType = GHC.Maybe.Nothing } -- | Defines the enum schema located at @components.schemas.treasury.transaction.properties.flow_details.anyOf.properties.type@ in the specification. -- -- Type of the flow that created the Transaction. Set to the same value as \`flow_type\`. data Treasury'transactionFlowDetails'NonNullableType' = -- | This case is used if the value encountered during decoding does not match any of the provided cases in the specification. Treasury'transactionFlowDetails'NonNullableType'Other Data.Aeson.Types.Internal.Value | -- | This constructor can be used to send values to the server which are not present in the specification yet. Treasury'transactionFlowDetails'NonNullableType'Typed Data.Text.Internal.Text | -- | Represents the JSON value @"credit_reversal"@ Treasury'transactionFlowDetails'NonNullableType'EnumCreditReversal | -- | Represents the JSON value @"debit_reversal"@ Treasury'transactionFlowDetails'NonNullableType'EnumDebitReversal | -- | Represents the JSON value @"inbound_transfer"@ Treasury'transactionFlowDetails'NonNullableType'EnumInboundTransfer | -- | Represents the JSON value @"issuing_authorization"@ Treasury'transactionFlowDetails'NonNullableType'EnumIssuingAuthorization | -- | Represents the JSON value @"other"@ Treasury'transactionFlowDetails'NonNullableType'EnumOther | -- | Represents the JSON value @"outbound_payment"@ Treasury'transactionFlowDetails'NonNullableType'EnumOutboundPayment | -- | Represents the JSON value @"outbound_transfer"@ Treasury'transactionFlowDetails'NonNullableType'EnumOutboundTransfer | -- | Represents the JSON value @"received_credit"@ Treasury'transactionFlowDetails'NonNullableType'EnumReceivedCredit | -- | Represents the JSON value @"received_debit"@ Treasury'transactionFlowDetails'NonNullableType'EnumReceivedDebit deriving (GHC.Show.Show, GHC.Classes.Eq) instance Data.Aeson.Types.ToJSON.ToJSON Treasury'transactionFlowDetails'NonNullableType' where toJSON (Treasury'transactionFlowDetails'NonNullableType'Other val) = val toJSON (Treasury'transactionFlowDetails'NonNullableType'Typed val) = Data.Aeson.Types.ToJSON.toJSON val toJSON (Treasury'transactionFlowDetails'NonNullableType'EnumCreditReversal) = "credit_reversal" toJSON (Treasury'transactionFlowDetails'NonNullableType'EnumDebitReversal) = "debit_reversal" toJSON (Treasury'transactionFlowDetails'NonNullableType'EnumInboundTransfer) = "inbound_transfer" toJSON (Treasury'transactionFlowDetails'NonNullableType'EnumIssuingAuthorization) = "issuing_authorization" toJSON (Treasury'transactionFlowDetails'NonNullableType'EnumOther) = "other" toJSON (Treasury'transactionFlowDetails'NonNullableType'EnumOutboundPayment) = "outbound_payment" toJSON (Treasury'transactionFlowDetails'NonNullableType'EnumOutboundTransfer) = "outbound_transfer" toJSON (Treasury'transactionFlowDetails'NonNullableType'EnumReceivedCredit) = "received_credit" toJSON (Treasury'transactionFlowDetails'NonNullableType'EnumReceivedDebit) = "received_debit" instance Data.Aeson.Types.FromJSON.FromJSON Treasury'transactionFlowDetails'NonNullableType' where parseJSON val = GHC.Base.pure ( if | val GHC.Classes.== "credit_reversal" -> Treasury'transactionFlowDetails'NonNullableType'EnumCreditReversal | val GHC.Classes.== "debit_reversal" -> Treasury'transactionFlowDetails'NonNullableType'EnumDebitReversal | val GHC.Classes.== "inbound_transfer" -> Treasury'transactionFlowDetails'NonNullableType'EnumInboundTransfer | val GHC.Classes.== "issuing_authorization" -> Treasury'transactionFlowDetails'NonNullableType'EnumIssuingAuthorization | val GHC.Classes.== "other" -> Treasury'transactionFlowDetails'NonNullableType'EnumOther | val GHC.Classes.== "outbound_payment" -> Treasury'transactionFlowDetails'NonNullableType'EnumOutboundPayment | val GHC.Classes.== "outbound_transfer" -> Treasury'transactionFlowDetails'NonNullableType'EnumOutboundTransfer | val GHC.Classes.== "received_credit" -> Treasury'transactionFlowDetails'NonNullableType'EnumReceivedCredit | val GHC.Classes.== "received_debit" -> Treasury'transactionFlowDetails'NonNullableType'EnumReceivedDebit | GHC.Base.otherwise -> Treasury'transactionFlowDetails'NonNullableType'Other val ) -- | Defines the enum schema located at @components.schemas.treasury.transaction.properties.flow_type@ in the specification. -- -- Type of the flow that created the Transaction. data Treasury'transactionFlowType' = -- | This case is used if the value encountered during decoding does not match any of the provided cases in the specification. Treasury'transactionFlowType'Other Data.Aeson.Types.Internal.Value | -- | This constructor can be used to send values to the server which are not present in the specification yet. Treasury'transactionFlowType'Typed Data.Text.Internal.Text | -- | Represents the JSON value @"credit_reversal"@ Treasury'transactionFlowType'EnumCreditReversal | -- | Represents the JSON value @"debit_reversal"@ Treasury'transactionFlowType'EnumDebitReversal | -- | Represents the JSON value @"inbound_transfer"@ Treasury'transactionFlowType'EnumInboundTransfer | -- | Represents the JSON value @"issuing_authorization"@ Treasury'transactionFlowType'EnumIssuingAuthorization | -- | Represents the JSON value @"other"@ Treasury'transactionFlowType'EnumOther | -- | Represents the JSON value @"outbound_payment"@ Treasury'transactionFlowType'EnumOutboundPayment | -- | Represents the JSON value @"outbound_transfer"@ Treasury'transactionFlowType'EnumOutboundTransfer | -- | Represents the JSON value @"received_credit"@ Treasury'transactionFlowType'EnumReceivedCredit | -- | Represents the JSON value @"received_debit"@ Treasury'transactionFlowType'EnumReceivedDebit deriving (GHC.Show.Show, GHC.Classes.Eq) instance Data.Aeson.Types.ToJSON.ToJSON Treasury'transactionFlowType' where toJSON (Treasury'transactionFlowType'Other val) = val toJSON (Treasury'transactionFlowType'Typed val) = Data.Aeson.Types.ToJSON.toJSON val toJSON (Treasury'transactionFlowType'EnumCreditReversal) = "credit_reversal" toJSON (Treasury'transactionFlowType'EnumDebitReversal) = "debit_reversal" toJSON (Treasury'transactionFlowType'EnumInboundTransfer) = "inbound_transfer" toJSON (Treasury'transactionFlowType'EnumIssuingAuthorization) = "issuing_authorization" toJSON (Treasury'transactionFlowType'EnumOther) = "other" toJSON (Treasury'transactionFlowType'EnumOutboundPayment) = "outbound_payment" toJSON (Treasury'transactionFlowType'EnumOutboundTransfer) = "outbound_transfer" toJSON (Treasury'transactionFlowType'EnumReceivedCredit) = "received_credit" toJSON (Treasury'transactionFlowType'EnumReceivedDebit) = "received_debit" instance Data.Aeson.Types.FromJSON.FromJSON Treasury'transactionFlowType' where parseJSON val = GHC.Base.pure ( if | val GHC.Classes.== "credit_reversal" -> Treasury'transactionFlowType'EnumCreditReversal | val GHC.Classes.== "debit_reversal" -> Treasury'transactionFlowType'EnumDebitReversal | val GHC.Classes.== "inbound_transfer" -> Treasury'transactionFlowType'EnumInboundTransfer | val GHC.Classes.== "issuing_authorization" -> Treasury'transactionFlowType'EnumIssuingAuthorization | val GHC.Classes.== "other" -> Treasury'transactionFlowType'EnumOther | val GHC.Classes.== "outbound_payment" -> Treasury'transactionFlowType'EnumOutboundPayment | val GHC.Classes.== "outbound_transfer" -> Treasury'transactionFlowType'EnumOutboundTransfer | val GHC.Classes.== "received_credit" -> Treasury'transactionFlowType'EnumReceivedCredit | val GHC.Classes.== "received_debit" -> Treasury'transactionFlowType'EnumReceivedDebit | GHC.Base.otherwise -> Treasury'transactionFlowType'Other val ) -- | Defines the enum schema located at @components.schemas.treasury.transaction.properties.status@ in the specification. -- -- Status of the Transaction. data Treasury'transactionStatus' = -- | This case is used if the value encountered during decoding does not match any of the provided cases in the specification. Treasury'transactionStatus'Other Data.Aeson.Types.Internal.Value | -- | This constructor can be used to send values to the server which are not present in the specification yet. Treasury'transactionStatus'Typed Data.Text.Internal.Text | -- | Represents the JSON value @"open"@ Treasury'transactionStatus'EnumOpen | -- | Represents the JSON value @"posted"@ Treasury'transactionStatus'EnumPosted | -- | Represents the JSON value @"void"@ Treasury'transactionStatus'EnumVoid deriving (GHC.Show.Show, GHC.Classes.Eq) instance Data.Aeson.Types.ToJSON.ToJSON Treasury'transactionStatus' where toJSON (Treasury'transactionStatus'Other val) = val toJSON (Treasury'transactionStatus'Typed val) = Data.Aeson.Types.ToJSON.toJSON val toJSON (Treasury'transactionStatus'EnumOpen) = "open" toJSON (Treasury'transactionStatus'EnumPosted) = "posted" toJSON (Treasury'transactionStatus'EnumVoid) = "void" instance Data.Aeson.Types.FromJSON.FromJSON Treasury'transactionStatus' where parseJSON val = GHC.Base.pure ( if | val GHC.Classes.== "open" -> Treasury'transactionStatus'EnumOpen | val GHC.Classes.== "posted" -> Treasury'transactionStatus'EnumPosted | val GHC.Classes.== "void" -> Treasury'transactionStatus'EnumVoid | GHC.Base.otherwise -> Treasury'transactionStatus'Other val )