{-# 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_Transaction module StripeAPI.Types.Issuing_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.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.BalanceTransaction import {-# SOURCE #-} StripeAPI.Types.IssuingAuthorizationMerchantData import {-# SOURCE #-} StripeAPI.Types.IssuingTransactionAmountDetails import {-# SOURCE #-} StripeAPI.Types.IssuingTransactionFlightData import {-# SOURCE #-} StripeAPI.Types.IssuingTransactionFlightDataLeg import {-# SOURCE #-} StripeAPI.Types.IssuingTransactionFuelData import {-# SOURCE #-} StripeAPI.Types.IssuingTransactionLodgingData import {-# SOURCE #-} StripeAPI.Types.IssuingTransactionPurchaseDetails import {-# SOURCE #-} StripeAPI.Types.IssuingTransactionReceiptData import {-# SOURCE #-} StripeAPI.Types.Issuing_Authorization import {-# SOURCE #-} StripeAPI.Types.Issuing_Card import {-# SOURCE #-} StripeAPI.Types.Issuing_Cardholder import {-# SOURCE #-} StripeAPI.Types.Issuing_Dispute import qualified Prelude as GHC.Integer.Type import qualified Prelude as GHC.Maybe -- | Defines the object schema located at @components.schemas.issuing.transaction@ in the specification. -- -- Any use of an [issued card](https:\/\/stripe.com\/docs\/issuing) that results in funds entering or leaving -- your Stripe account, such as a completed purchase or refund, is represented by an Issuing -- \`Transaction\` object. -- -- Related guide: [Issued Card Transactions](https:\/\/stripe.com\/docs\/issuing\/purchases\/transactions). data Issuing'transaction = Issuing'transaction { -- | amount: The transaction amount, which will be reflected in your balance. This amount is in your currency and in the [smallest currency unit](https:\/\/stripe.com\/docs\/currencies\#zero-decimal). issuing'transactionAmount :: GHC.Types.Int, -- | amount_details: Detailed breakdown of amount components. These amounts are denominated in \`currency\` and in the [smallest currency unit](https:\/\/stripe.com\/docs\/currencies\#zero-decimal). issuing'transactionAmountDetails :: (GHC.Maybe.Maybe Issuing'transactionAmountDetails'), -- | authorization: The \`Authorization\` object that led to this transaction. issuing'transactionAuthorization :: (GHC.Maybe.Maybe Issuing'transactionAuthorization'Variants), -- | balance_transaction: ID of the [balance transaction](https:\/\/stripe.com\/docs\/api\/balance_transactions) associated with this transaction. issuing'transactionBalanceTransaction :: (GHC.Maybe.Maybe Issuing'transactionBalanceTransaction'Variants), -- | card: The card used to make this transaction. issuing'transactionCard :: Issuing'transactionCard'Variants, -- | cardholder: The cardholder to whom this transaction belongs. issuing'transactionCardholder :: (GHC.Maybe.Maybe Issuing'transactionCardholder'Variants), -- | created: Time at which the object was created. Measured in seconds since the Unix epoch. issuing'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). issuing'transactionCurrency :: Data.Text.Internal.Text, -- | dispute: If you\'ve disputed the transaction, the ID of the dispute. issuing'transactionDispute :: (GHC.Maybe.Maybe Issuing'transactionDispute'Variants), -- | id: Unique identifier for the object. -- -- Constraints: -- -- * Maximum length of 5000 issuing'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. issuing'transactionLivemode :: GHC.Types.Bool, -- | merchant_amount: The amount that the merchant will receive, denominated in \`merchant_currency\` and in the [smallest currency unit](https:\/\/stripe.com\/docs\/currencies\#zero-decimal). It will be different from \`amount\` if the merchant is taking payment in a different currency. issuing'transactionMerchantAmount :: GHC.Types.Int, -- | merchant_currency: The currency with which the merchant is taking payment. issuing'transactionMerchantCurrency :: Data.Text.Internal.Text, -- | merchant_data: issuing'transactionMerchantData :: IssuingAuthorizationMerchantData, -- | 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'transactionMetadata :: Data.Aeson.Types.Internal.Object, -- | purchase_details: Additional purchase information that is optionally provided by the merchant. issuing'transactionPurchaseDetails :: (GHC.Maybe.Maybe Issuing'transactionPurchaseDetails'), -- | type: The nature of the transaction. issuing'transactionType :: Issuing'transactionType' } deriving ( GHC.Show.Show, GHC.Classes.Eq ) instance Data.Aeson.Types.ToJSON.ToJSON Issuing'transaction where toJSON obj = Data.Aeson.Types.Internal.object ("amount" Data.Aeson.Types.ToJSON..= issuing'transactionAmount obj : "amount_details" Data.Aeson.Types.ToJSON..= issuing'transactionAmountDetails obj : "authorization" Data.Aeson.Types.ToJSON..= issuing'transactionAuthorization obj : "balance_transaction" Data.Aeson.Types.ToJSON..= issuing'transactionBalanceTransaction obj : "card" Data.Aeson.Types.ToJSON..= issuing'transactionCard obj : "cardholder" Data.Aeson.Types.ToJSON..= issuing'transactionCardholder obj : "created" Data.Aeson.Types.ToJSON..= issuing'transactionCreated obj : "currency" Data.Aeson.Types.ToJSON..= issuing'transactionCurrency obj : "dispute" Data.Aeson.Types.ToJSON..= issuing'transactionDispute obj : "id" Data.Aeson.Types.ToJSON..= issuing'transactionId obj : "livemode" Data.Aeson.Types.ToJSON..= issuing'transactionLivemode obj : "merchant_amount" Data.Aeson.Types.ToJSON..= issuing'transactionMerchantAmount obj : "merchant_currency" Data.Aeson.Types.ToJSON..= issuing'transactionMerchantCurrency obj : "merchant_data" Data.Aeson.Types.ToJSON..= issuing'transactionMerchantData obj : "metadata" Data.Aeson.Types.ToJSON..= issuing'transactionMetadata obj : "purchase_details" Data.Aeson.Types.ToJSON..= issuing'transactionPurchaseDetails obj : "type" Data.Aeson.Types.ToJSON..= issuing'transactionType obj : "object" Data.Aeson.Types.ToJSON..= Data.Aeson.Types.Internal.String "issuing.transaction" : GHC.Base.mempty) toEncoding obj = Data.Aeson.Encoding.Internal.pairs (("amount" Data.Aeson.Types.ToJSON..= issuing'transactionAmount obj) GHC.Base.<> (("amount_details" Data.Aeson.Types.ToJSON..= issuing'transactionAmountDetails obj) GHC.Base.<> (("authorization" Data.Aeson.Types.ToJSON..= issuing'transactionAuthorization obj) GHC.Base.<> (("balance_transaction" Data.Aeson.Types.ToJSON..= issuing'transactionBalanceTransaction obj) GHC.Base.<> (("card" Data.Aeson.Types.ToJSON..= issuing'transactionCard obj) GHC.Base.<> (("cardholder" Data.Aeson.Types.ToJSON..= issuing'transactionCardholder obj) GHC.Base.<> (("created" Data.Aeson.Types.ToJSON..= issuing'transactionCreated obj) GHC.Base.<> (("currency" Data.Aeson.Types.ToJSON..= issuing'transactionCurrency obj) GHC.Base.<> (("dispute" Data.Aeson.Types.ToJSON..= issuing'transactionDispute obj) GHC.Base.<> (("id" Data.Aeson.Types.ToJSON..= issuing'transactionId obj) GHC.Base.<> (("livemode" Data.Aeson.Types.ToJSON..= issuing'transactionLivemode obj) GHC.Base.<> (("merchant_amount" Data.Aeson.Types.ToJSON..= issuing'transactionMerchantAmount obj) GHC.Base.<> (("merchant_currency" Data.Aeson.Types.ToJSON..= issuing'transactionMerchantCurrency obj) GHC.Base.<> (("merchant_data" Data.Aeson.Types.ToJSON..= issuing'transactionMerchantData obj) GHC.Base.<> (("metadata" Data.Aeson.Types.ToJSON..= issuing'transactionMetadata obj) GHC.Base.<> (("purchase_details" Data.Aeson.Types.ToJSON..= issuing'transactionPurchaseDetails obj) GHC.Base.<> (("type" Data.Aeson.Types.ToJSON..= issuing'transactionType obj) GHC.Base.<> ("object" Data.Aeson.Types.ToJSON..= Data.Aeson.Types.Internal.String "issuing.transaction")))))))))))))))))) instance Data.Aeson.Types.FromJSON.FromJSON Issuing'transaction where parseJSON = Data.Aeson.Types.FromJSON.withObject "Issuing'transaction" (\obj -> ((((((((((((((((GHC.Base.pure Issuing'transaction GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "amount")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "amount_details")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "authorization")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "balance_transaction")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "card")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "cardholder")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "created")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "currency")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "dispute")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "id")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "livemode")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "merchant_amount")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "merchant_currency")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "merchant_data")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "metadata")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "purchase_details")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "type")) -- | Create a new 'Issuing'transaction' with all required fields. mkIssuing'transaction :: -- | 'issuing'transactionAmount' GHC.Types.Int -> -- | 'issuing'transactionCard' Issuing'transactionCard'Variants -> -- | 'issuing'transactionCreated' GHC.Types.Int -> -- | 'issuing'transactionCurrency' Data.Text.Internal.Text -> -- | 'issuing'transactionId' Data.Text.Internal.Text -> -- | 'issuing'transactionLivemode' GHC.Types.Bool -> -- | 'issuing'transactionMerchantAmount' GHC.Types.Int -> -- | 'issuing'transactionMerchantCurrency' Data.Text.Internal.Text -> -- | 'issuing'transactionMerchantData' IssuingAuthorizationMerchantData -> -- | 'issuing'transactionMetadata' Data.Aeson.Types.Internal.Object -> -- | 'issuing'transactionType' Issuing'transactionType' -> Issuing'transaction mkIssuing'transaction issuing'transactionAmount issuing'transactionCard issuing'transactionCreated issuing'transactionCurrency issuing'transactionId issuing'transactionLivemode issuing'transactionMerchantAmount issuing'transactionMerchantCurrency issuing'transactionMerchantData issuing'transactionMetadata issuing'transactionType = Issuing'transaction { issuing'transactionAmount = issuing'transactionAmount, issuing'transactionAmountDetails = GHC.Maybe.Nothing, issuing'transactionAuthorization = GHC.Maybe.Nothing, issuing'transactionBalanceTransaction = GHC.Maybe.Nothing, issuing'transactionCard = issuing'transactionCard, issuing'transactionCardholder = GHC.Maybe.Nothing, issuing'transactionCreated = issuing'transactionCreated, issuing'transactionCurrency = issuing'transactionCurrency, issuing'transactionDispute = GHC.Maybe.Nothing, issuing'transactionId = issuing'transactionId, issuing'transactionLivemode = issuing'transactionLivemode, issuing'transactionMerchantAmount = issuing'transactionMerchantAmount, issuing'transactionMerchantCurrency = issuing'transactionMerchantCurrency, issuing'transactionMerchantData = issuing'transactionMerchantData, issuing'transactionMetadata = issuing'transactionMetadata, issuing'transactionPurchaseDetails = GHC.Maybe.Nothing, issuing'transactionType = issuing'transactionType } -- | Defines the object schema located at @components.schemas.issuing.transaction.properties.amount_details.anyOf@ in the specification. -- -- Detailed breakdown of amount components. These amounts are denominated in \\\`currency\\\` and in the [smallest currency unit](https:\\\/\\\/stripe.com\\\/docs\\\/currencies\\\#zero-decimal). data Issuing'transactionAmountDetails' = Issuing'transactionAmountDetails' { -- | atm_fee: The fee charged by the ATM for the cash withdrawal. issuing'transactionAmountDetails'AtmFee :: (GHC.Maybe.Maybe GHC.Types.Int) } deriving ( GHC.Show.Show, GHC.Classes.Eq ) instance Data.Aeson.Types.ToJSON.ToJSON Issuing'transactionAmountDetails' where toJSON obj = Data.Aeson.Types.Internal.object ("atm_fee" Data.Aeson.Types.ToJSON..= issuing'transactionAmountDetails'AtmFee obj : GHC.Base.mempty) toEncoding obj = Data.Aeson.Encoding.Internal.pairs ("atm_fee" Data.Aeson.Types.ToJSON..= issuing'transactionAmountDetails'AtmFee obj) instance Data.Aeson.Types.FromJSON.FromJSON Issuing'transactionAmountDetails' where parseJSON = Data.Aeson.Types.FromJSON.withObject "Issuing'transactionAmountDetails'" (\obj -> GHC.Base.pure Issuing'transactionAmountDetails' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "atm_fee")) -- | Create a new 'Issuing'transactionAmountDetails'' with all required fields. mkIssuing'transactionAmountDetails' :: Issuing'transactionAmountDetails' mkIssuing'transactionAmountDetails' = Issuing'transactionAmountDetails' {issuing'transactionAmountDetails'AtmFee = GHC.Maybe.Nothing} -- | Defines the oneOf schema located at @components.schemas.issuing.transaction.properties.authorization.anyOf@ in the specification. -- -- The \`Authorization\` object that led to this transaction. data Issuing'transactionAuthorization'Variants = Issuing'transactionAuthorization'Text Data.Text.Internal.Text | Issuing'transactionAuthorization'Issuing'authorization Issuing'authorization deriving (GHC.Show.Show, GHC.Classes.Eq) instance Data.Aeson.Types.ToJSON.ToJSON Issuing'transactionAuthorization'Variants where toJSON (Issuing'transactionAuthorization'Text a) = Data.Aeson.Types.ToJSON.toJSON a toJSON (Issuing'transactionAuthorization'Issuing'authorization a) = Data.Aeson.Types.ToJSON.toJSON a instance Data.Aeson.Types.FromJSON.FromJSON Issuing'transactionAuthorization'Variants where parseJSON val = case (Issuing'transactionAuthorization'Text Data.Functor.<$> Data.Aeson.Types.FromJSON.fromJSON val) GHC.Base.<|> ((Issuing'transactionAuthorization'Issuing'authorization Data.Functor.<$> Data.Aeson.Types.FromJSON.fromJSON val) GHC.Base.<|> Data.Aeson.Types.Internal.Error "No variant matched") of Data.Aeson.Types.Internal.Success a -> GHC.Base.pure a Data.Aeson.Types.Internal.Error a -> Control.Monad.Fail.fail a -- | Defines the oneOf schema located at @components.schemas.issuing.transaction.properties.balance_transaction.anyOf@ in the specification. -- -- ID of the [balance transaction](https:\/\/stripe.com\/docs\/api\/balance_transactions) associated with this transaction. data Issuing'transactionBalanceTransaction'Variants = Issuing'transactionBalanceTransaction'Text Data.Text.Internal.Text | Issuing'transactionBalanceTransaction'BalanceTransaction BalanceTransaction deriving (GHC.Show.Show, GHC.Classes.Eq) instance Data.Aeson.Types.ToJSON.ToJSON Issuing'transactionBalanceTransaction'Variants where toJSON (Issuing'transactionBalanceTransaction'Text a) = Data.Aeson.Types.ToJSON.toJSON a toJSON (Issuing'transactionBalanceTransaction'BalanceTransaction a) = Data.Aeson.Types.ToJSON.toJSON a instance Data.Aeson.Types.FromJSON.FromJSON Issuing'transactionBalanceTransaction'Variants where parseJSON val = case (Issuing'transactionBalanceTransaction'Text Data.Functor.<$> Data.Aeson.Types.FromJSON.fromJSON val) GHC.Base.<|> ((Issuing'transactionBalanceTransaction'BalanceTransaction Data.Functor.<$> Data.Aeson.Types.FromJSON.fromJSON val) GHC.Base.<|> Data.Aeson.Types.Internal.Error "No variant matched") of Data.Aeson.Types.Internal.Success a -> GHC.Base.pure a Data.Aeson.Types.Internal.Error a -> Control.Monad.Fail.fail a -- | Defines the oneOf schema located at @components.schemas.issuing.transaction.properties.card.anyOf@ in the specification. -- -- The card used to make this transaction. data Issuing'transactionCard'Variants = Issuing'transactionCard'Text Data.Text.Internal.Text | Issuing'transactionCard'Issuing'card Issuing'card deriving (GHC.Show.Show, GHC.Classes.Eq) instance Data.Aeson.Types.ToJSON.ToJSON Issuing'transactionCard'Variants where toJSON (Issuing'transactionCard'Text a) = Data.Aeson.Types.ToJSON.toJSON a toJSON (Issuing'transactionCard'Issuing'card a) = Data.Aeson.Types.ToJSON.toJSON a instance Data.Aeson.Types.FromJSON.FromJSON Issuing'transactionCard'Variants where parseJSON val = case (Issuing'transactionCard'Text Data.Functor.<$> Data.Aeson.Types.FromJSON.fromJSON val) GHC.Base.<|> ((Issuing'transactionCard'Issuing'card Data.Functor.<$> Data.Aeson.Types.FromJSON.fromJSON val) GHC.Base.<|> Data.Aeson.Types.Internal.Error "No variant matched") of Data.Aeson.Types.Internal.Success a -> GHC.Base.pure a Data.Aeson.Types.Internal.Error a -> Control.Monad.Fail.fail a -- | Defines the oneOf schema located at @components.schemas.issuing.transaction.properties.cardholder.anyOf@ in the specification. -- -- The cardholder to whom this transaction belongs. data Issuing'transactionCardholder'Variants = Issuing'transactionCardholder'Text Data.Text.Internal.Text | Issuing'transactionCardholder'Issuing'cardholder Issuing'cardholder deriving (GHC.Show.Show, GHC.Classes.Eq) instance Data.Aeson.Types.ToJSON.ToJSON Issuing'transactionCardholder'Variants where toJSON (Issuing'transactionCardholder'Text a) = Data.Aeson.Types.ToJSON.toJSON a toJSON (Issuing'transactionCardholder'Issuing'cardholder a) = Data.Aeson.Types.ToJSON.toJSON a instance Data.Aeson.Types.FromJSON.FromJSON Issuing'transactionCardholder'Variants where parseJSON val = case (Issuing'transactionCardholder'Text Data.Functor.<$> Data.Aeson.Types.FromJSON.fromJSON val) GHC.Base.<|> ((Issuing'transactionCardholder'Issuing'cardholder Data.Functor.<$> Data.Aeson.Types.FromJSON.fromJSON val) GHC.Base.<|> Data.Aeson.Types.Internal.Error "No variant matched") of Data.Aeson.Types.Internal.Success a -> GHC.Base.pure a Data.Aeson.Types.Internal.Error a -> Control.Monad.Fail.fail a -- | Defines the oneOf schema located at @components.schemas.issuing.transaction.properties.dispute.anyOf@ in the specification. -- -- If you\'ve disputed the transaction, the ID of the dispute. data Issuing'transactionDispute'Variants = Issuing'transactionDispute'Text Data.Text.Internal.Text | Issuing'transactionDispute'Issuing'dispute Issuing'dispute deriving (GHC.Show.Show, GHC.Classes.Eq) instance Data.Aeson.Types.ToJSON.ToJSON Issuing'transactionDispute'Variants where toJSON (Issuing'transactionDispute'Text a) = Data.Aeson.Types.ToJSON.toJSON a toJSON (Issuing'transactionDispute'Issuing'dispute a) = Data.Aeson.Types.ToJSON.toJSON a instance Data.Aeson.Types.FromJSON.FromJSON Issuing'transactionDispute'Variants where parseJSON val = case (Issuing'transactionDispute'Text Data.Functor.<$> Data.Aeson.Types.FromJSON.fromJSON val) GHC.Base.<|> ((Issuing'transactionDispute'Issuing'dispute Data.Functor.<$> Data.Aeson.Types.FromJSON.fromJSON val) GHC.Base.<|> Data.Aeson.Types.Internal.Error "No variant matched") of Data.Aeson.Types.Internal.Success a -> GHC.Base.pure a Data.Aeson.Types.Internal.Error a -> Control.Monad.Fail.fail a -- | Defines the object schema located at @components.schemas.issuing.transaction.properties.purchase_details.anyOf@ in the specification. -- -- Additional purchase information that is optionally provided by the merchant. data Issuing'transactionPurchaseDetails' = Issuing'transactionPurchaseDetails' { -- | flight: Information about the flight that was purchased with this transaction. issuing'transactionPurchaseDetails'Flight :: (GHC.Maybe.Maybe Issuing'transactionPurchaseDetails'Flight'), -- | fuel: Information about fuel that was purchased with this transaction. issuing'transactionPurchaseDetails'Fuel :: (GHC.Maybe.Maybe Issuing'transactionPurchaseDetails'Fuel'), -- | lodging: Information about lodging that was purchased with this transaction. issuing'transactionPurchaseDetails'Lodging :: (GHC.Maybe.Maybe Issuing'transactionPurchaseDetails'Lodging'), -- | receipt: The line items in the purchase. issuing'transactionPurchaseDetails'Receipt :: (GHC.Maybe.Maybe ([IssuingTransactionReceiptData])), -- | reference: A merchant-specific order number. -- -- Constraints: -- -- * Maximum length of 5000 issuing'transactionPurchaseDetails'Reference :: (GHC.Maybe.Maybe Data.Text.Internal.Text) } deriving ( GHC.Show.Show, GHC.Classes.Eq ) instance Data.Aeson.Types.ToJSON.ToJSON Issuing'transactionPurchaseDetails' where toJSON obj = Data.Aeson.Types.Internal.object ("flight" Data.Aeson.Types.ToJSON..= issuing'transactionPurchaseDetails'Flight obj : "fuel" Data.Aeson.Types.ToJSON..= issuing'transactionPurchaseDetails'Fuel obj : "lodging" Data.Aeson.Types.ToJSON..= issuing'transactionPurchaseDetails'Lodging obj : "receipt" Data.Aeson.Types.ToJSON..= issuing'transactionPurchaseDetails'Receipt obj : "reference" Data.Aeson.Types.ToJSON..= issuing'transactionPurchaseDetails'Reference obj : GHC.Base.mempty) toEncoding obj = Data.Aeson.Encoding.Internal.pairs (("flight" Data.Aeson.Types.ToJSON..= issuing'transactionPurchaseDetails'Flight obj) GHC.Base.<> (("fuel" Data.Aeson.Types.ToJSON..= issuing'transactionPurchaseDetails'Fuel obj) GHC.Base.<> (("lodging" Data.Aeson.Types.ToJSON..= issuing'transactionPurchaseDetails'Lodging obj) GHC.Base.<> (("receipt" Data.Aeson.Types.ToJSON..= issuing'transactionPurchaseDetails'Receipt obj) GHC.Base.<> ("reference" Data.Aeson.Types.ToJSON..= issuing'transactionPurchaseDetails'Reference obj))))) instance Data.Aeson.Types.FromJSON.FromJSON Issuing'transactionPurchaseDetails' where parseJSON = Data.Aeson.Types.FromJSON.withObject "Issuing'transactionPurchaseDetails'" (\obj -> ((((GHC.Base.pure Issuing'transactionPurchaseDetails' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "flight")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "fuel")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "lodging")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "receipt")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "reference")) -- | Create a new 'Issuing'transactionPurchaseDetails'' with all required fields. mkIssuing'transactionPurchaseDetails' :: Issuing'transactionPurchaseDetails' mkIssuing'transactionPurchaseDetails' = Issuing'transactionPurchaseDetails' { issuing'transactionPurchaseDetails'Flight = GHC.Maybe.Nothing, issuing'transactionPurchaseDetails'Fuel = GHC.Maybe.Nothing, issuing'transactionPurchaseDetails'Lodging = GHC.Maybe.Nothing, issuing'transactionPurchaseDetails'Receipt = GHC.Maybe.Nothing, issuing'transactionPurchaseDetails'Reference = GHC.Maybe.Nothing } -- | Defines the object schema located at @components.schemas.issuing.transaction.properties.purchase_details.anyOf.properties.flight.anyOf@ in the specification. -- -- Information about the flight that was purchased with this transaction. data Issuing'transactionPurchaseDetails'Flight' = Issuing'transactionPurchaseDetails'Flight' { -- | departure_at: The time that the flight departed. issuing'transactionPurchaseDetails'Flight'DepartureAt :: (GHC.Maybe.Maybe GHC.Types.Int), -- | passenger_name: The name of the passenger. -- -- Constraints: -- -- * Maximum length of 5000 issuing'transactionPurchaseDetails'Flight'PassengerName :: (GHC.Maybe.Maybe Data.Text.Internal.Text), -- | refundable: Whether the ticket is refundable. issuing'transactionPurchaseDetails'Flight'Refundable :: (GHC.Maybe.Maybe GHC.Types.Bool), -- | segments: The legs of the trip. issuing'transactionPurchaseDetails'Flight'Segments :: (GHC.Maybe.Maybe ([IssuingTransactionFlightDataLeg])), -- | travel_agency: The travel agency that issued the ticket. -- -- Constraints: -- -- * Maximum length of 5000 issuing'transactionPurchaseDetails'Flight'TravelAgency :: (GHC.Maybe.Maybe Data.Text.Internal.Text) } deriving ( GHC.Show.Show, GHC.Classes.Eq ) instance Data.Aeson.Types.ToJSON.ToJSON Issuing'transactionPurchaseDetails'Flight' where toJSON obj = Data.Aeson.Types.Internal.object ("departure_at" Data.Aeson.Types.ToJSON..= issuing'transactionPurchaseDetails'Flight'DepartureAt obj : "passenger_name" Data.Aeson.Types.ToJSON..= issuing'transactionPurchaseDetails'Flight'PassengerName obj : "refundable" Data.Aeson.Types.ToJSON..= issuing'transactionPurchaseDetails'Flight'Refundable obj : "segments" Data.Aeson.Types.ToJSON..= issuing'transactionPurchaseDetails'Flight'Segments obj : "travel_agency" Data.Aeson.Types.ToJSON..= issuing'transactionPurchaseDetails'Flight'TravelAgency obj : GHC.Base.mempty) toEncoding obj = Data.Aeson.Encoding.Internal.pairs (("departure_at" Data.Aeson.Types.ToJSON..= issuing'transactionPurchaseDetails'Flight'DepartureAt obj) GHC.Base.<> (("passenger_name" Data.Aeson.Types.ToJSON..= issuing'transactionPurchaseDetails'Flight'PassengerName obj) GHC.Base.<> (("refundable" Data.Aeson.Types.ToJSON..= issuing'transactionPurchaseDetails'Flight'Refundable obj) GHC.Base.<> (("segments" Data.Aeson.Types.ToJSON..= issuing'transactionPurchaseDetails'Flight'Segments obj) GHC.Base.<> ("travel_agency" Data.Aeson.Types.ToJSON..= issuing'transactionPurchaseDetails'Flight'TravelAgency obj))))) instance Data.Aeson.Types.FromJSON.FromJSON Issuing'transactionPurchaseDetails'Flight' where parseJSON = Data.Aeson.Types.FromJSON.withObject "Issuing'transactionPurchaseDetails'Flight'" (\obj -> ((((GHC.Base.pure Issuing'transactionPurchaseDetails'Flight' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "departure_at")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "passenger_name")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "refundable")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "segments")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "travel_agency")) -- | Create a new 'Issuing'transactionPurchaseDetails'Flight'' with all required fields. mkIssuing'transactionPurchaseDetails'Flight' :: Issuing'transactionPurchaseDetails'Flight' mkIssuing'transactionPurchaseDetails'Flight' = Issuing'transactionPurchaseDetails'Flight' { issuing'transactionPurchaseDetails'Flight'DepartureAt = GHC.Maybe.Nothing, issuing'transactionPurchaseDetails'Flight'PassengerName = GHC.Maybe.Nothing, issuing'transactionPurchaseDetails'Flight'Refundable = GHC.Maybe.Nothing, issuing'transactionPurchaseDetails'Flight'Segments = GHC.Maybe.Nothing, issuing'transactionPurchaseDetails'Flight'TravelAgency = GHC.Maybe.Nothing } -- | Defines the object schema located at @components.schemas.issuing.transaction.properties.purchase_details.anyOf.properties.fuel.anyOf@ in the specification. -- -- Information about fuel that was purchased with this transaction. data Issuing'transactionPurchaseDetails'Fuel' = Issuing'transactionPurchaseDetails'Fuel' { -- | type: The type of fuel that was purchased. One of \`diesel\`, \`unleaded_plus\`, \`unleaded_regular\`, \`unleaded_super\`, or \`other\`. -- -- Constraints: -- -- * Maximum length of 5000 issuing'transactionPurchaseDetails'Fuel'Type :: (GHC.Maybe.Maybe Data.Text.Internal.Text), -- | unit: The units for \`volume_decimal\`. One of \`us_gallon\` or \`liter\`. -- -- Constraints: -- -- * Maximum length of 5000 issuing'transactionPurchaseDetails'Fuel'Unit :: (GHC.Maybe.Maybe Data.Text.Internal.Text), -- | unit_cost_decimal: The cost in cents per each unit of fuel, represented as a decimal string with at most 12 decimal places. issuing'transactionPurchaseDetails'Fuel'UnitCostDecimal :: (GHC.Maybe.Maybe Data.Text.Internal.Text), -- | volume_decimal: The volume of the fuel that was pumped, represented as a decimal string with at most 12 decimal places. issuing'transactionPurchaseDetails'Fuel'VolumeDecimal :: (GHC.Maybe.Maybe Data.Text.Internal.Text) } deriving ( GHC.Show.Show, GHC.Classes.Eq ) instance Data.Aeson.Types.ToJSON.ToJSON Issuing'transactionPurchaseDetails'Fuel' where toJSON obj = Data.Aeson.Types.Internal.object ("type" Data.Aeson.Types.ToJSON..= issuing'transactionPurchaseDetails'Fuel'Type obj : "unit" Data.Aeson.Types.ToJSON..= issuing'transactionPurchaseDetails'Fuel'Unit obj : "unit_cost_decimal" Data.Aeson.Types.ToJSON..= issuing'transactionPurchaseDetails'Fuel'UnitCostDecimal obj : "volume_decimal" Data.Aeson.Types.ToJSON..= issuing'transactionPurchaseDetails'Fuel'VolumeDecimal obj : GHC.Base.mempty) toEncoding obj = Data.Aeson.Encoding.Internal.pairs (("type" Data.Aeson.Types.ToJSON..= issuing'transactionPurchaseDetails'Fuel'Type obj) GHC.Base.<> (("unit" Data.Aeson.Types.ToJSON..= issuing'transactionPurchaseDetails'Fuel'Unit obj) GHC.Base.<> (("unit_cost_decimal" Data.Aeson.Types.ToJSON..= issuing'transactionPurchaseDetails'Fuel'UnitCostDecimal obj) GHC.Base.<> ("volume_decimal" Data.Aeson.Types.ToJSON..= issuing'transactionPurchaseDetails'Fuel'VolumeDecimal obj)))) instance Data.Aeson.Types.FromJSON.FromJSON Issuing'transactionPurchaseDetails'Fuel' where parseJSON = Data.Aeson.Types.FromJSON.withObject "Issuing'transactionPurchaseDetails'Fuel'" (\obj -> (((GHC.Base.pure Issuing'transactionPurchaseDetails'Fuel' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "type")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "unit")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "unit_cost_decimal")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "volume_decimal")) -- | Create a new 'Issuing'transactionPurchaseDetails'Fuel'' with all required fields. mkIssuing'transactionPurchaseDetails'Fuel' :: Issuing'transactionPurchaseDetails'Fuel' mkIssuing'transactionPurchaseDetails'Fuel' = Issuing'transactionPurchaseDetails'Fuel' { issuing'transactionPurchaseDetails'Fuel'Type = GHC.Maybe.Nothing, issuing'transactionPurchaseDetails'Fuel'Unit = GHC.Maybe.Nothing, issuing'transactionPurchaseDetails'Fuel'UnitCostDecimal = GHC.Maybe.Nothing, issuing'transactionPurchaseDetails'Fuel'VolumeDecimal = GHC.Maybe.Nothing } -- | Defines the object schema located at @components.schemas.issuing.transaction.properties.purchase_details.anyOf.properties.lodging.anyOf@ in the specification. -- -- Information about lodging that was purchased with this transaction. data Issuing'transactionPurchaseDetails'Lodging' = Issuing'transactionPurchaseDetails'Lodging' { -- | check_in_at: The time of checking into the lodging. issuing'transactionPurchaseDetails'Lodging'CheckInAt :: (GHC.Maybe.Maybe GHC.Types.Int), -- | nights: The number of nights stayed at the lodging. issuing'transactionPurchaseDetails'Lodging'Nights :: (GHC.Maybe.Maybe GHC.Types.Int) } deriving ( GHC.Show.Show, GHC.Classes.Eq ) instance Data.Aeson.Types.ToJSON.ToJSON Issuing'transactionPurchaseDetails'Lodging' where toJSON obj = Data.Aeson.Types.Internal.object ("check_in_at" Data.Aeson.Types.ToJSON..= issuing'transactionPurchaseDetails'Lodging'CheckInAt obj : "nights" Data.Aeson.Types.ToJSON..= issuing'transactionPurchaseDetails'Lodging'Nights obj : GHC.Base.mempty) toEncoding obj = Data.Aeson.Encoding.Internal.pairs (("check_in_at" Data.Aeson.Types.ToJSON..= issuing'transactionPurchaseDetails'Lodging'CheckInAt obj) GHC.Base.<> ("nights" Data.Aeson.Types.ToJSON..= issuing'transactionPurchaseDetails'Lodging'Nights obj)) instance Data.Aeson.Types.FromJSON.FromJSON Issuing'transactionPurchaseDetails'Lodging' where parseJSON = Data.Aeson.Types.FromJSON.withObject "Issuing'transactionPurchaseDetails'Lodging'" (\obj -> (GHC.Base.pure Issuing'transactionPurchaseDetails'Lodging' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "check_in_at")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "nights")) -- | Create a new 'Issuing'transactionPurchaseDetails'Lodging'' with all required fields. mkIssuing'transactionPurchaseDetails'Lodging' :: Issuing'transactionPurchaseDetails'Lodging' mkIssuing'transactionPurchaseDetails'Lodging' = Issuing'transactionPurchaseDetails'Lodging' { issuing'transactionPurchaseDetails'Lodging'CheckInAt = GHC.Maybe.Nothing, issuing'transactionPurchaseDetails'Lodging'Nights = GHC.Maybe.Nothing } -- | Defines the enum schema located at @components.schemas.issuing.transaction.properties.type@ in the specification. -- -- The nature of the transaction. data Issuing'transactionType' = -- | This case is used if the value encountered during decoding does not match any of the provided cases in the specification. Issuing'transactionType'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. Issuing'transactionType'Typed Data.Text.Internal.Text | -- | Represents the JSON value @"capture"@ Issuing'transactionType'EnumCapture | -- | Represents the JSON value @"refund"@ Issuing'transactionType'EnumRefund deriving (GHC.Show.Show, GHC.Classes.Eq) instance Data.Aeson.Types.ToJSON.ToJSON Issuing'transactionType' where toJSON (Issuing'transactionType'Other val) = val toJSON (Issuing'transactionType'Typed val) = Data.Aeson.Types.ToJSON.toJSON val toJSON (Issuing'transactionType'EnumCapture) = "capture" toJSON (Issuing'transactionType'EnumRefund) = "refund" instance Data.Aeson.Types.FromJSON.FromJSON Issuing'transactionType' where parseJSON val = GHC.Base.pure ( if | val GHC.Classes.== "capture" -> Issuing'transactionType'EnumCapture | val GHC.Classes.== "refund" -> Issuing'transactionType'EnumRefund | GHC.Base.otherwise -> Issuing'transactionType'Other val )