{-# 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 OrdersV2ResourcePayment module StripeAPI.Types.OrdersV2ResourcePayment 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.Account import {-# SOURCE #-} StripeAPI.Types.OrdersPaymentMethodOptionsAfterpayClearpay import {-# SOURCE #-} StripeAPI.Types.OrdersV2ResourceAutomaticPaymentMethods import {-# SOURCE #-} StripeAPI.Types.OrdersV2ResourceCardPaymentMethodOptions import {-# SOURCE #-} StripeAPI.Types.OrdersV2ResourcePaymentMethodOptions import {-# SOURCE #-} StripeAPI.Types.OrdersV2ResourcePaymentSettings import {-# SOURCE #-} StripeAPI.Types.OrdersV2ResourceTransferData import {-# SOURCE #-} StripeAPI.Types.PaymentIntent import {-# SOURCE #-} StripeAPI.Types.PaymentIntentPaymentMethodOptionsAcssDebit import {-# SOURCE #-} StripeAPI.Types.PaymentIntentPaymentMethodOptionsLink import {-# SOURCE #-} StripeAPI.Types.PaymentIntentPaymentMethodOptionsSepaDebit import {-# SOURCE #-} StripeAPI.Types.PaymentMethodOptionsAlipay import {-# SOURCE #-} StripeAPI.Types.PaymentMethodOptionsBancontact import {-# SOURCE #-} StripeAPI.Types.PaymentMethodOptionsCustomerBalance import {-# SOURCE #-} StripeAPI.Types.PaymentMethodOptionsIdeal import {-# SOURCE #-} StripeAPI.Types.PaymentMethodOptionsKlarna import {-# SOURCE #-} StripeAPI.Types.PaymentMethodOptionsOxxo import {-# SOURCE #-} StripeAPI.Types.PaymentMethodOptionsP24 import {-# SOURCE #-} StripeAPI.Types.PaymentMethodOptionsPaypal import {-# SOURCE #-} StripeAPI.Types.PaymentMethodOptionsSofort import {-# SOURCE #-} StripeAPI.Types.PaymentMethodOptionsWechatPay import qualified Prelude as GHC.Integer.Type import qualified Prelude as GHC.Maybe -- | Defines the object schema located at @components.schemas.orders_v2_resource_payment@ in the specification. data OrdersV2ResourcePayment = OrdersV2ResourcePayment { -- | payment_intent: ID of the payment intent associated with this order. Null when the order is \`open\`. ordersV2ResourcePaymentPaymentIntent :: (GHC.Maybe.Maybe (StripeAPI.Common.Nullable OrdersV2ResourcePaymentPaymentIntent'NonNullableVariants)), -- | settings: Settings describing how the order should configure generated PaymentIntents. ordersV2ResourcePaymentSettings :: (GHC.Maybe.Maybe (StripeAPI.Common.Nullable OrdersV2ResourcePaymentSettings'NonNullable)), -- | status: The status of the underlying payment associated with this order, if any. Null when the order is \`open\`. ordersV2ResourcePaymentStatus :: (GHC.Maybe.Maybe (StripeAPI.Common.Nullable OrdersV2ResourcePaymentStatus'NonNullable)) } deriving ( GHC.Show.Show, GHC.Classes.Eq ) instance Data.Aeson.Types.ToJSON.ToJSON OrdersV2ResourcePayment where toJSON obj = Data.Aeson.Types.Internal.object (Data.Foldable.concat (Data.Maybe.maybe GHC.Base.mempty (GHC.Base.pure GHC.Base.. ("payment_intent" Data.Aeson.Types.ToJSON..=)) (ordersV2ResourcePaymentPaymentIntent obj) : Data.Maybe.maybe GHC.Base.mempty (GHC.Base.pure GHC.Base.. ("settings" Data.Aeson.Types.ToJSON..=)) (ordersV2ResourcePaymentSettings obj) : Data.Maybe.maybe GHC.Base.mempty (GHC.Base.pure GHC.Base.. ("status" Data.Aeson.Types.ToJSON..=)) (ordersV2ResourcePaymentStatus 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.. ("payment_intent" Data.Aeson.Types.ToJSON..=)) (ordersV2ResourcePaymentPaymentIntent obj) : Data.Maybe.maybe GHC.Base.mempty (GHC.Base.pure GHC.Base.. ("settings" Data.Aeson.Types.ToJSON..=)) (ordersV2ResourcePaymentSettings obj) : Data.Maybe.maybe GHC.Base.mempty (GHC.Base.pure GHC.Base.. ("status" Data.Aeson.Types.ToJSON..=)) (ordersV2ResourcePaymentStatus obj) : GHC.Base.mempty))) instance Data.Aeson.Types.FromJSON.FromJSON OrdersV2ResourcePayment where parseJSON = Data.Aeson.Types.FromJSON.withObject "OrdersV2ResourcePayment" (\obj -> ((GHC.Base.pure OrdersV2ResourcePayment GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:! "payment_intent")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:! "settings")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:! "status")) -- | Create a new 'OrdersV2ResourcePayment' with all required fields. mkOrdersV2ResourcePayment :: OrdersV2ResourcePayment mkOrdersV2ResourcePayment = OrdersV2ResourcePayment { ordersV2ResourcePaymentPaymentIntent = GHC.Maybe.Nothing, ordersV2ResourcePaymentSettings = GHC.Maybe.Nothing, ordersV2ResourcePaymentStatus = GHC.Maybe.Nothing } -- | Defines the oneOf schema located at @components.schemas.orders_v2_resource_payment.properties.payment_intent.anyOf@ in the specification. -- -- ID of the payment intent associated with this order. Null when the order is \`open\`. data OrdersV2ResourcePaymentPaymentIntent'NonNullableVariants = OrdersV2ResourcePaymentPaymentIntent'NonNullableText Data.Text.Internal.Text | OrdersV2ResourcePaymentPaymentIntent'NonNullablePaymentIntent PaymentIntent deriving (GHC.Show.Show, GHC.Classes.Eq) instance Data.Aeson.Types.ToJSON.ToJSON OrdersV2ResourcePaymentPaymentIntent'NonNullableVariants where toJSON (OrdersV2ResourcePaymentPaymentIntent'NonNullableText a) = Data.Aeson.Types.ToJSON.toJSON a toJSON (OrdersV2ResourcePaymentPaymentIntent'NonNullablePaymentIntent a) = Data.Aeson.Types.ToJSON.toJSON a instance Data.Aeson.Types.FromJSON.FromJSON OrdersV2ResourcePaymentPaymentIntent'NonNullableVariants where parseJSON val = case (OrdersV2ResourcePaymentPaymentIntent'NonNullableText Data.Functor.<$> Data.Aeson.Types.FromJSON.fromJSON val) GHC.Base.<|> ((OrdersV2ResourcePaymentPaymentIntent'NonNullablePaymentIntent 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.orders_v2_resource_payment.properties.settings.anyOf@ in the specification. -- -- Settings describing how the order should configure generated PaymentIntents. data OrdersV2ResourcePaymentSettings'NonNullable = OrdersV2ResourcePaymentSettings'NonNullable { -- | application_fee_amount: The amount of the application fee (if any) that will be requested to be applied to the payment and transferred to the application owner\'s Stripe account. ordersV2ResourcePaymentSettings'NonNullableApplicationFeeAmount :: (GHC.Maybe.Maybe (StripeAPI.Common.Nullable GHC.Types.Int)), -- | automatic_payment_methods: Indicates whether order has been opted into using [Stripe Dashboard](https:\/\/dashboard.stripe.com\/settings\/payment_methods) to manage payment method types. ordersV2ResourcePaymentSettings'NonNullableAutomaticPaymentMethods :: (GHC.Maybe.Maybe (StripeAPI.Common.Nullable OrdersV2ResourcePaymentSettings'NonNullableAutomaticPaymentMethods'NonNullable)), -- | payment_method_options: PaymentMethod-specific configuration to provide to the order\'s PaymentIntent. ordersV2ResourcePaymentSettings'NonNullablePaymentMethodOptions :: (GHC.Maybe.Maybe (StripeAPI.Common.Nullable OrdersV2ResourcePaymentSettings'NonNullablePaymentMethodOptions'NonNullable)), -- | payment_method_types: The list of [payment method types](https:\/\/stripe.com\/docs\/payments\/payment-methods\/overview) to provide to the order\'s PaymentIntent. Do not include this attribute if you prefer to manage your payment methods from the [Stripe Dashboard](https:\/\/dashboard.stripe.com\/settings\/payment_methods). ordersV2ResourcePaymentSettings'NonNullablePaymentMethodTypes :: (GHC.Maybe.Maybe (StripeAPI.Common.Nullable ([OrdersV2ResourcePaymentSettings'NonNullablePaymentMethodTypes'NonNullable]))), -- | return_url: The URL to redirect the customer to after they authenticate their payment. -- -- Constraints: -- -- * Maximum length of 5000 ordersV2ResourcePaymentSettings'NonNullableReturnUrl :: (GHC.Maybe.Maybe (StripeAPI.Common.Nullable Data.Text.Internal.Text)), -- | statement_descriptor: For non-card charges, you can use this value as the complete description that appears on your customers\' statements. Must contain at least one letter, maximum 22 characters. -- -- Constraints: -- -- * Maximum length of 5000 ordersV2ResourcePaymentSettings'NonNullableStatementDescriptor :: (GHC.Maybe.Maybe (StripeAPI.Common.Nullable Data.Text.Internal.Text)), -- | statement_descriptor_suffix: Provides information about a card payment that customers see on their statements. Concatenated with the prefix (shortened descriptor) or statement descriptor that’s set on the account to form the complete statement descriptor. Maximum 22 characters for the concatenated descriptor. -- -- Constraints: -- -- * Maximum length of 5000 ordersV2ResourcePaymentSettings'NonNullableStatementDescriptorSuffix :: (GHC.Maybe.Maybe (StripeAPI.Common.Nullable Data.Text.Internal.Text)), -- | transfer_data: Provides configuration for completing a transfer for the order after it is paid. ordersV2ResourcePaymentSettings'NonNullableTransferData :: (GHC.Maybe.Maybe (StripeAPI.Common.Nullable OrdersV2ResourcePaymentSettings'NonNullableTransferData'NonNullable)) } deriving ( GHC.Show.Show, GHC.Classes.Eq ) instance Data.Aeson.Types.ToJSON.ToJSON OrdersV2ResourcePaymentSettings'NonNullable where toJSON obj = Data.Aeson.Types.Internal.object (Data.Foldable.concat (Data.Maybe.maybe GHC.Base.mempty (GHC.Base.pure GHC.Base.. ("application_fee_amount" Data.Aeson.Types.ToJSON..=)) (ordersV2ResourcePaymentSettings'NonNullableApplicationFeeAmount obj) : Data.Maybe.maybe GHC.Base.mempty (GHC.Base.pure GHC.Base.. ("automatic_payment_methods" Data.Aeson.Types.ToJSON..=)) (ordersV2ResourcePaymentSettings'NonNullableAutomaticPaymentMethods obj) : Data.Maybe.maybe GHC.Base.mempty (GHC.Base.pure GHC.Base.. ("payment_method_options" Data.Aeson.Types.ToJSON..=)) (ordersV2ResourcePaymentSettings'NonNullablePaymentMethodOptions obj) : Data.Maybe.maybe GHC.Base.mempty (GHC.Base.pure GHC.Base.. ("payment_method_types" Data.Aeson.Types.ToJSON..=)) (ordersV2ResourcePaymentSettings'NonNullablePaymentMethodTypes obj) : Data.Maybe.maybe GHC.Base.mempty (GHC.Base.pure GHC.Base.. ("return_url" Data.Aeson.Types.ToJSON..=)) (ordersV2ResourcePaymentSettings'NonNullableReturnUrl obj) : Data.Maybe.maybe GHC.Base.mempty (GHC.Base.pure GHC.Base.. ("statement_descriptor" Data.Aeson.Types.ToJSON..=)) (ordersV2ResourcePaymentSettings'NonNullableStatementDescriptor obj) : Data.Maybe.maybe GHC.Base.mempty (GHC.Base.pure GHC.Base.. ("statement_descriptor_suffix" Data.Aeson.Types.ToJSON..=)) (ordersV2ResourcePaymentSettings'NonNullableStatementDescriptorSuffix obj) : Data.Maybe.maybe GHC.Base.mempty (GHC.Base.pure GHC.Base.. ("transfer_data" Data.Aeson.Types.ToJSON..=)) (ordersV2ResourcePaymentSettings'NonNullableTransferData 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.. ("application_fee_amount" Data.Aeson.Types.ToJSON..=)) (ordersV2ResourcePaymentSettings'NonNullableApplicationFeeAmount obj) : Data.Maybe.maybe GHC.Base.mempty (GHC.Base.pure GHC.Base.. ("automatic_payment_methods" Data.Aeson.Types.ToJSON..=)) (ordersV2ResourcePaymentSettings'NonNullableAutomaticPaymentMethods obj) : Data.Maybe.maybe GHC.Base.mempty (GHC.Base.pure GHC.Base.. ("payment_method_options" Data.Aeson.Types.ToJSON..=)) (ordersV2ResourcePaymentSettings'NonNullablePaymentMethodOptions obj) : Data.Maybe.maybe GHC.Base.mempty (GHC.Base.pure GHC.Base.. ("payment_method_types" Data.Aeson.Types.ToJSON..=)) (ordersV2ResourcePaymentSettings'NonNullablePaymentMethodTypes obj) : Data.Maybe.maybe GHC.Base.mempty (GHC.Base.pure GHC.Base.. ("return_url" Data.Aeson.Types.ToJSON..=)) (ordersV2ResourcePaymentSettings'NonNullableReturnUrl obj) : Data.Maybe.maybe GHC.Base.mempty (GHC.Base.pure GHC.Base.. ("statement_descriptor" Data.Aeson.Types.ToJSON..=)) (ordersV2ResourcePaymentSettings'NonNullableStatementDescriptor obj) : Data.Maybe.maybe GHC.Base.mempty (GHC.Base.pure GHC.Base.. ("statement_descriptor_suffix" Data.Aeson.Types.ToJSON..=)) (ordersV2ResourcePaymentSettings'NonNullableStatementDescriptorSuffix obj) : Data.Maybe.maybe GHC.Base.mempty (GHC.Base.pure GHC.Base.. ("transfer_data" Data.Aeson.Types.ToJSON..=)) (ordersV2ResourcePaymentSettings'NonNullableTransferData obj) : GHC.Base.mempty))) instance Data.Aeson.Types.FromJSON.FromJSON OrdersV2ResourcePaymentSettings'NonNullable where parseJSON = Data.Aeson.Types.FromJSON.withObject "OrdersV2ResourcePaymentSettings'NonNullable" (\obj -> (((((((GHC.Base.pure OrdersV2ResourcePaymentSettings'NonNullable GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:! "application_fee_amount")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:! "automatic_payment_methods")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:! "payment_method_options")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:! "payment_method_types")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:! "return_url")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:! "statement_descriptor")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:! "statement_descriptor_suffix")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:! "transfer_data")) -- | Create a new 'OrdersV2ResourcePaymentSettings'NonNullable' with all required fields. mkOrdersV2ResourcePaymentSettings'NonNullable :: OrdersV2ResourcePaymentSettings'NonNullable mkOrdersV2ResourcePaymentSettings'NonNullable = OrdersV2ResourcePaymentSettings'NonNullable { ordersV2ResourcePaymentSettings'NonNullableApplicationFeeAmount = GHC.Maybe.Nothing, ordersV2ResourcePaymentSettings'NonNullableAutomaticPaymentMethods = GHC.Maybe.Nothing, ordersV2ResourcePaymentSettings'NonNullablePaymentMethodOptions = GHC.Maybe.Nothing, ordersV2ResourcePaymentSettings'NonNullablePaymentMethodTypes = GHC.Maybe.Nothing, ordersV2ResourcePaymentSettings'NonNullableReturnUrl = GHC.Maybe.Nothing, ordersV2ResourcePaymentSettings'NonNullableStatementDescriptor = GHC.Maybe.Nothing, ordersV2ResourcePaymentSettings'NonNullableStatementDescriptorSuffix = GHC.Maybe.Nothing, ordersV2ResourcePaymentSettings'NonNullableTransferData = GHC.Maybe.Nothing } -- | Defines the object schema located at @components.schemas.orders_v2_resource_payment.properties.settings.anyOf.properties.automatic_payment_methods.anyOf@ in the specification. -- -- Indicates whether order has been opted into using [Stripe Dashboard](https:\\\/\\\/dashboard.stripe.com\\\/settings\\\/payment_methods) to manage payment method types. data OrdersV2ResourcePaymentSettings'NonNullableAutomaticPaymentMethods'NonNullable = OrdersV2ResourcePaymentSettings'NonNullableAutomaticPaymentMethods'NonNullable { -- | enabled: Whether this Order has been opted into managing payment method types via the [Stripe Dashboard](https:\/\/dashboard.stripe.com\/settings\/payment_methods). ordersV2ResourcePaymentSettings'NonNullableAutomaticPaymentMethods'NonNullableEnabled :: (GHC.Maybe.Maybe GHC.Types.Bool) } deriving ( GHC.Show.Show, GHC.Classes.Eq ) instance Data.Aeson.Types.ToJSON.ToJSON OrdersV2ResourcePaymentSettings'NonNullableAutomaticPaymentMethods'NonNullable where toJSON obj = Data.Aeson.Types.Internal.object (Data.Foldable.concat (Data.Maybe.maybe GHC.Base.mempty (GHC.Base.pure GHC.Base.. ("enabled" Data.Aeson.Types.ToJSON..=)) (ordersV2ResourcePaymentSettings'NonNullableAutomaticPaymentMethods'NonNullableEnabled 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.. ("enabled" Data.Aeson.Types.ToJSON..=)) (ordersV2ResourcePaymentSettings'NonNullableAutomaticPaymentMethods'NonNullableEnabled obj) : GHC.Base.mempty))) instance Data.Aeson.Types.FromJSON.FromJSON OrdersV2ResourcePaymentSettings'NonNullableAutomaticPaymentMethods'NonNullable where parseJSON = Data.Aeson.Types.FromJSON.withObject "OrdersV2ResourcePaymentSettings'NonNullableAutomaticPaymentMethods'NonNullable" (\obj -> GHC.Base.pure OrdersV2ResourcePaymentSettings'NonNullableAutomaticPaymentMethods'NonNullable GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:! "enabled")) -- | Create a new 'OrdersV2ResourcePaymentSettings'NonNullableAutomaticPaymentMethods'NonNullable' with all required fields. mkOrdersV2ResourcePaymentSettings'NonNullableAutomaticPaymentMethods'NonNullable :: OrdersV2ResourcePaymentSettings'NonNullableAutomaticPaymentMethods'NonNullable mkOrdersV2ResourcePaymentSettings'NonNullableAutomaticPaymentMethods'NonNullable = OrdersV2ResourcePaymentSettings'NonNullableAutomaticPaymentMethods'NonNullable {ordersV2ResourcePaymentSettings'NonNullableAutomaticPaymentMethods'NonNullableEnabled = GHC.Maybe.Nothing} -- | Defines the object schema located at @components.schemas.orders_v2_resource_payment.properties.settings.anyOf.properties.payment_method_options.anyOf@ in the specification. -- -- PaymentMethod-specific configuration to provide to the order\\\'s PaymentIntent. data OrdersV2ResourcePaymentSettings'NonNullablePaymentMethodOptions'NonNullable = OrdersV2ResourcePaymentSettings'NonNullablePaymentMethodOptions'NonNullable { -- | acss_debit: ordersV2ResourcePaymentSettings'NonNullablePaymentMethodOptions'NonNullableAcssDebit :: (GHC.Maybe.Maybe PaymentIntentPaymentMethodOptionsAcssDebit), -- | afterpay_clearpay: ordersV2ResourcePaymentSettings'NonNullablePaymentMethodOptions'NonNullableAfterpayClearpay :: (GHC.Maybe.Maybe OrdersPaymentMethodOptionsAfterpayClearpay), -- | alipay: ordersV2ResourcePaymentSettings'NonNullablePaymentMethodOptions'NonNullableAlipay :: (GHC.Maybe.Maybe PaymentMethodOptionsAlipay), -- | bancontact: ordersV2ResourcePaymentSettings'NonNullablePaymentMethodOptions'NonNullableBancontact :: (GHC.Maybe.Maybe PaymentMethodOptionsBancontact), -- | card: ordersV2ResourcePaymentSettings'NonNullablePaymentMethodOptions'NonNullableCard :: (GHC.Maybe.Maybe OrdersV2ResourceCardPaymentMethodOptions), -- | customer_balance: ordersV2ResourcePaymentSettings'NonNullablePaymentMethodOptions'NonNullableCustomerBalance :: (GHC.Maybe.Maybe PaymentMethodOptionsCustomerBalance), -- | ideal: ordersV2ResourcePaymentSettings'NonNullablePaymentMethodOptions'NonNullableIdeal :: (GHC.Maybe.Maybe PaymentMethodOptionsIdeal), -- | klarna: ordersV2ResourcePaymentSettings'NonNullablePaymentMethodOptions'NonNullableKlarna :: (GHC.Maybe.Maybe PaymentMethodOptionsKlarna), -- | link: ordersV2ResourcePaymentSettings'NonNullablePaymentMethodOptions'NonNullableLink :: (GHC.Maybe.Maybe PaymentIntentPaymentMethodOptionsLink), -- | oxxo: ordersV2ResourcePaymentSettings'NonNullablePaymentMethodOptions'NonNullableOxxo :: (GHC.Maybe.Maybe PaymentMethodOptionsOxxo), -- | p24: ordersV2ResourcePaymentSettings'NonNullablePaymentMethodOptions'NonNullableP24 :: (GHC.Maybe.Maybe PaymentMethodOptionsP24), -- | paypal: ordersV2ResourcePaymentSettings'NonNullablePaymentMethodOptions'NonNullablePaypal :: (GHC.Maybe.Maybe PaymentMethodOptionsPaypal), -- | sepa_debit: ordersV2ResourcePaymentSettings'NonNullablePaymentMethodOptions'NonNullableSepaDebit :: (GHC.Maybe.Maybe PaymentIntentPaymentMethodOptionsSepaDebit), -- | sofort: ordersV2ResourcePaymentSettings'NonNullablePaymentMethodOptions'NonNullableSofort :: (GHC.Maybe.Maybe PaymentMethodOptionsSofort), -- | wechat_pay: ordersV2ResourcePaymentSettings'NonNullablePaymentMethodOptions'NonNullableWechatPay :: (GHC.Maybe.Maybe PaymentMethodOptionsWechatPay) } deriving ( GHC.Show.Show, GHC.Classes.Eq ) instance Data.Aeson.Types.ToJSON.ToJSON OrdersV2ResourcePaymentSettings'NonNullablePaymentMethodOptions'NonNullable where toJSON obj = Data.Aeson.Types.Internal.object (Data.Foldable.concat (Data.Maybe.maybe GHC.Base.mempty (GHC.Base.pure GHC.Base.. ("acss_debit" Data.Aeson.Types.ToJSON..=)) (ordersV2ResourcePaymentSettings'NonNullablePaymentMethodOptions'NonNullableAcssDebit obj) : Data.Maybe.maybe GHC.Base.mempty (GHC.Base.pure GHC.Base.. ("afterpay_clearpay" Data.Aeson.Types.ToJSON..=)) (ordersV2ResourcePaymentSettings'NonNullablePaymentMethodOptions'NonNullableAfterpayClearpay obj) : Data.Maybe.maybe GHC.Base.mempty (GHC.Base.pure GHC.Base.. ("alipay" Data.Aeson.Types.ToJSON..=)) (ordersV2ResourcePaymentSettings'NonNullablePaymentMethodOptions'NonNullableAlipay obj) : Data.Maybe.maybe GHC.Base.mempty (GHC.Base.pure GHC.Base.. ("bancontact" Data.Aeson.Types.ToJSON..=)) (ordersV2ResourcePaymentSettings'NonNullablePaymentMethodOptions'NonNullableBancontact obj) : Data.Maybe.maybe GHC.Base.mempty (GHC.Base.pure GHC.Base.. ("card" Data.Aeson.Types.ToJSON..=)) (ordersV2ResourcePaymentSettings'NonNullablePaymentMethodOptions'NonNullableCard obj) : Data.Maybe.maybe GHC.Base.mempty (GHC.Base.pure GHC.Base.. ("customer_balance" Data.Aeson.Types.ToJSON..=)) (ordersV2ResourcePaymentSettings'NonNullablePaymentMethodOptions'NonNullableCustomerBalance obj) : Data.Maybe.maybe GHC.Base.mempty (GHC.Base.pure GHC.Base.. ("ideal" Data.Aeson.Types.ToJSON..=)) (ordersV2ResourcePaymentSettings'NonNullablePaymentMethodOptions'NonNullableIdeal obj) : Data.Maybe.maybe GHC.Base.mempty (GHC.Base.pure GHC.Base.. ("klarna" Data.Aeson.Types.ToJSON..=)) (ordersV2ResourcePaymentSettings'NonNullablePaymentMethodOptions'NonNullableKlarna obj) : Data.Maybe.maybe GHC.Base.mempty (GHC.Base.pure GHC.Base.. ("link" Data.Aeson.Types.ToJSON..=)) (ordersV2ResourcePaymentSettings'NonNullablePaymentMethodOptions'NonNullableLink obj) : Data.Maybe.maybe GHC.Base.mempty (GHC.Base.pure GHC.Base.. ("oxxo" Data.Aeson.Types.ToJSON..=)) (ordersV2ResourcePaymentSettings'NonNullablePaymentMethodOptions'NonNullableOxxo obj) : Data.Maybe.maybe GHC.Base.mempty (GHC.Base.pure GHC.Base.. ("p24" Data.Aeson.Types.ToJSON..=)) (ordersV2ResourcePaymentSettings'NonNullablePaymentMethodOptions'NonNullableP24 obj) : Data.Maybe.maybe GHC.Base.mempty (GHC.Base.pure GHC.Base.. ("paypal" Data.Aeson.Types.ToJSON..=)) (ordersV2ResourcePaymentSettings'NonNullablePaymentMethodOptions'NonNullablePaypal obj) : Data.Maybe.maybe GHC.Base.mempty (GHC.Base.pure GHC.Base.. ("sepa_debit" Data.Aeson.Types.ToJSON..=)) (ordersV2ResourcePaymentSettings'NonNullablePaymentMethodOptions'NonNullableSepaDebit obj) : Data.Maybe.maybe GHC.Base.mempty (GHC.Base.pure GHC.Base.. ("sofort" Data.Aeson.Types.ToJSON..=)) (ordersV2ResourcePaymentSettings'NonNullablePaymentMethodOptions'NonNullableSofort obj) : Data.Maybe.maybe GHC.Base.mempty (GHC.Base.pure GHC.Base.. ("wechat_pay" Data.Aeson.Types.ToJSON..=)) (ordersV2ResourcePaymentSettings'NonNullablePaymentMethodOptions'NonNullableWechatPay 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.. ("acss_debit" Data.Aeson.Types.ToJSON..=)) (ordersV2ResourcePaymentSettings'NonNullablePaymentMethodOptions'NonNullableAcssDebit obj) : Data.Maybe.maybe GHC.Base.mempty (GHC.Base.pure GHC.Base.. ("afterpay_clearpay" Data.Aeson.Types.ToJSON..=)) (ordersV2ResourcePaymentSettings'NonNullablePaymentMethodOptions'NonNullableAfterpayClearpay obj) : Data.Maybe.maybe GHC.Base.mempty (GHC.Base.pure GHC.Base.. ("alipay" Data.Aeson.Types.ToJSON..=)) (ordersV2ResourcePaymentSettings'NonNullablePaymentMethodOptions'NonNullableAlipay obj) : Data.Maybe.maybe GHC.Base.mempty (GHC.Base.pure GHC.Base.. ("bancontact" Data.Aeson.Types.ToJSON..=)) (ordersV2ResourcePaymentSettings'NonNullablePaymentMethodOptions'NonNullableBancontact obj) : Data.Maybe.maybe GHC.Base.mempty (GHC.Base.pure GHC.Base.. ("card" Data.Aeson.Types.ToJSON..=)) (ordersV2ResourcePaymentSettings'NonNullablePaymentMethodOptions'NonNullableCard obj) : Data.Maybe.maybe GHC.Base.mempty (GHC.Base.pure GHC.Base.. ("customer_balance" Data.Aeson.Types.ToJSON..=)) (ordersV2ResourcePaymentSettings'NonNullablePaymentMethodOptions'NonNullableCustomerBalance obj) : Data.Maybe.maybe GHC.Base.mempty (GHC.Base.pure GHC.Base.. ("ideal" Data.Aeson.Types.ToJSON..=)) (ordersV2ResourcePaymentSettings'NonNullablePaymentMethodOptions'NonNullableIdeal obj) : Data.Maybe.maybe GHC.Base.mempty (GHC.Base.pure GHC.Base.. ("klarna" Data.Aeson.Types.ToJSON..=)) (ordersV2ResourcePaymentSettings'NonNullablePaymentMethodOptions'NonNullableKlarna obj) : Data.Maybe.maybe GHC.Base.mempty (GHC.Base.pure GHC.Base.. ("link" Data.Aeson.Types.ToJSON..=)) (ordersV2ResourcePaymentSettings'NonNullablePaymentMethodOptions'NonNullableLink obj) : Data.Maybe.maybe GHC.Base.mempty (GHC.Base.pure GHC.Base.. ("oxxo" Data.Aeson.Types.ToJSON..=)) (ordersV2ResourcePaymentSettings'NonNullablePaymentMethodOptions'NonNullableOxxo obj) : Data.Maybe.maybe GHC.Base.mempty (GHC.Base.pure GHC.Base.. ("p24" Data.Aeson.Types.ToJSON..=)) (ordersV2ResourcePaymentSettings'NonNullablePaymentMethodOptions'NonNullableP24 obj) : Data.Maybe.maybe GHC.Base.mempty (GHC.Base.pure GHC.Base.. ("paypal" Data.Aeson.Types.ToJSON..=)) (ordersV2ResourcePaymentSettings'NonNullablePaymentMethodOptions'NonNullablePaypal obj) : Data.Maybe.maybe GHC.Base.mempty (GHC.Base.pure GHC.Base.. ("sepa_debit" Data.Aeson.Types.ToJSON..=)) (ordersV2ResourcePaymentSettings'NonNullablePaymentMethodOptions'NonNullableSepaDebit obj) : Data.Maybe.maybe GHC.Base.mempty (GHC.Base.pure GHC.Base.. ("sofort" Data.Aeson.Types.ToJSON..=)) (ordersV2ResourcePaymentSettings'NonNullablePaymentMethodOptions'NonNullableSofort obj) : Data.Maybe.maybe GHC.Base.mempty (GHC.Base.pure GHC.Base.. ("wechat_pay" Data.Aeson.Types.ToJSON..=)) (ordersV2ResourcePaymentSettings'NonNullablePaymentMethodOptions'NonNullableWechatPay obj) : GHC.Base.mempty))) instance Data.Aeson.Types.FromJSON.FromJSON OrdersV2ResourcePaymentSettings'NonNullablePaymentMethodOptions'NonNullable where parseJSON = Data.Aeson.Types.FromJSON.withObject "OrdersV2ResourcePaymentSettings'NonNullablePaymentMethodOptions'NonNullable" (\obj -> ((((((((((((((GHC.Base.pure OrdersV2ResourcePaymentSettings'NonNullablePaymentMethodOptions'NonNullable GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:! "acss_debit")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:! "afterpay_clearpay")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:! "alipay")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:! "bancontact")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:! "card")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:! "customer_balance")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:! "ideal")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:! "klarna")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:! "link")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:! "oxxo")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:! "p24")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:! "paypal")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:! "sepa_debit")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:! "sofort")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:! "wechat_pay")) -- | Create a new 'OrdersV2ResourcePaymentSettings'NonNullablePaymentMethodOptions'NonNullable' with all required fields. mkOrdersV2ResourcePaymentSettings'NonNullablePaymentMethodOptions'NonNullable :: OrdersV2ResourcePaymentSettings'NonNullablePaymentMethodOptions'NonNullable mkOrdersV2ResourcePaymentSettings'NonNullablePaymentMethodOptions'NonNullable = OrdersV2ResourcePaymentSettings'NonNullablePaymentMethodOptions'NonNullable { ordersV2ResourcePaymentSettings'NonNullablePaymentMethodOptions'NonNullableAcssDebit = GHC.Maybe.Nothing, ordersV2ResourcePaymentSettings'NonNullablePaymentMethodOptions'NonNullableAfterpayClearpay = GHC.Maybe.Nothing, ordersV2ResourcePaymentSettings'NonNullablePaymentMethodOptions'NonNullableAlipay = GHC.Maybe.Nothing, ordersV2ResourcePaymentSettings'NonNullablePaymentMethodOptions'NonNullableBancontact = GHC.Maybe.Nothing, ordersV2ResourcePaymentSettings'NonNullablePaymentMethodOptions'NonNullableCard = GHC.Maybe.Nothing, ordersV2ResourcePaymentSettings'NonNullablePaymentMethodOptions'NonNullableCustomerBalance = GHC.Maybe.Nothing, ordersV2ResourcePaymentSettings'NonNullablePaymentMethodOptions'NonNullableIdeal = GHC.Maybe.Nothing, ordersV2ResourcePaymentSettings'NonNullablePaymentMethodOptions'NonNullableKlarna = GHC.Maybe.Nothing, ordersV2ResourcePaymentSettings'NonNullablePaymentMethodOptions'NonNullableLink = GHC.Maybe.Nothing, ordersV2ResourcePaymentSettings'NonNullablePaymentMethodOptions'NonNullableOxxo = GHC.Maybe.Nothing, ordersV2ResourcePaymentSettings'NonNullablePaymentMethodOptions'NonNullableP24 = GHC.Maybe.Nothing, ordersV2ResourcePaymentSettings'NonNullablePaymentMethodOptions'NonNullablePaypal = GHC.Maybe.Nothing, ordersV2ResourcePaymentSettings'NonNullablePaymentMethodOptions'NonNullableSepaDebit = GHC.Maybe.Nothing, ordersV2ResourcePaymentSettings'NonNullablePaymentMethodOptions'NonNullableSofort = GHC.Maybe.Nothing, ordersV2ResourcePaymentSettings'NonNullablePaymentMethodOptions'NonNullableWechatPay = GHC.Maybe.Nothing } -- | Defines the enum schema located at @components.schemas.orders_v2_resource_payment.properties.settings.anyOf.properties.payment_method_types.items@ in the specification. data OrdersV2ResourcePaymentSettings'NonNullablePaymentMethodTypes'NonNullable = -- | This case is used if the value encountered during decoding does not match any of the provided cases in the specification. OrdersV2ResourcePaymentSettings'NonNullablePaymentMethodTypes'NonNullableOther Data.Aeson.Types.Internal.Value | -- | This constructor can be used to send values to the server which are not present in the specification yet. OrdersV2ResourcePaymentSettings'NonNullablePaymentMethodTypes'NonNullableTyped Data.Text.Internal.Text | -- | Represents the JSON value @"acss_debit"@ OrdersV2ResourcePaymentSettings'NonNullablePaymentMethodTypes'NonNullableEnumAcssDebit | -- | Represents the JSON value @"afterpay_clearpay"@ OrdersV2ResourcePaymentSettings'NonNullablePaymentMethodTypes'NonNullableEnumAfterpayClearpay | -- | Represents the JSON value @"alipay"@ OrdersV2ResourcePaymentSettings'NonNullablePaymentMethodTypes'NonNullableEnumAlipay | -- | Represents the JSON value @"au_becs_debit"@ OrdersV2ResourcePaymentSettings'NonNullablePaymentMethodTypes'NonNullableEnumAuBecsDebit | -- | Represents the JSON value @"bacs_debit"@ OrdersV2ResourcePaymentSettings'NonNullablePaymentMethodTypes'NonNullableEnumBacsDebit | -- | Represents the JSON value @"bancontact"@ OrdersV2ResourcePaymentSettings'NonNullablePaymentMethodTypes'NonNullableEnumBancontact | -- | Represents the JSON value @"card"@ OrdersV2ResourcePaymentSettings'NonNullablePaymentMethodTypes'NonNullableEnumCard | -- | Represents the JSON value @"customer_balance"@ OrdersV2ResourcePaymentSettings'NonNullablePaymentMethodTypes'NonNullableEnumCustomerBalance | -- | Represents the JSON value @"eps"@ OrdersV2ResourcePaymentSettings'NonNullablePaymentMethodTypes'NonNullableEnumEps | -- | Represents the JSON value @"fpx"@ OrdersV2ResourcePaymentSettings'NonNullablePaymentMethodTypes'NonNullableEnumFpx | -- | Represents the JSON value @"giropay"@ OrdersV2ResourcePaymentSettings'NonNullablePaymentMethodTypes'NonNullableEnumGiropay | -- | Represents the JSON value @"grabpay"@ OrdersV2ResourcePaymentSettings'NonNullablePaymentMethodTypes'NonNullableEnumGrabpay | -- | Represents the JSON value @"ideal"@ OrdersV2ResourcePaymentSettings'NonNullablePaymentMethodTypes'NonNullableEnumIdeal | -- | Represents the JSON value @"klarna"@ OrdersV2ResourcePaymentSettings'NonNullablePaymentMethodTypes'NonNullableEnumKlarna | -- | Represents the JSON value @"link"@ OrdersV2ResourcePaymentSettings'NonNullablePaymentMethodTypes'NonNullableEnumLink | -- | Represents the JSON value @"oxxo"@ OrdersV2ResourcePaymentSettings'NonNullablePaymentMethodTypes'NonNullableEnumOxxo | -- | Represents the JSON value @"p24"@ OrdersV2ResourcePaymentSettings'NonNullablePaymentMethodTypes'NonNullableEnumP24 | -- | Represents the JSON value @"paypal"@ OrdersV2ResourcePaymentSettings'NonNullablePaymentMethodTypes'NonNullableEnumPaypal | -- | Represents the JSON value @"sepa_debit"@ OrdersV2ResourcePaymentSettings'NonNullablePaymentMethodTypes'NonNullableEnumSepaDebit | -- | Represents the JSON value @"sofort"@ OrdersV2ResourcePaymentSettings'NonNullablePaymentMethodTypes'NonNullableEnumSofort | -- | Represents the JSON value @"wechat_pay"@ OrdersV2ResourcePaymentSettings'NonNullablePaymentMethodTypes'NonNullableEnumWechatPay deriving (GHC.Show.Show, GHC.Classes.Eq) instance Data.Aeson.Types.ToJSON.ToJSON OrdersV2ResourcePaymentSettings'NonNullablePaymentMethodTypes'NonNullable where toJSON (OrdersV2ResourcePaymentSettings'NonNullablePaymentMethodTypes'NonNullableOther val) = val toJSON (OrdersV2ResourcePaymentSettings'NonNullablePaymentMethodTypes'NonNullableTyped val) = Data.Aeson.Types.ToJSON.toJSON val toJSON (OrdersV2ResourcePaymentSettings'NonNullablePaymentMethodTypes'NonNullableEnumAcssDebit) = "acss_debit" toJSON (OrdersV2ResourcePaymentSettings'NonNullablePaymentMethodTypes'NonNullableEnumAfterpayClearpay) = "afterpay_clearpay" toJSON (OrdersV2ResourcePaymentSettings'NonNullablePaymentMethodTypes'NonNullableEnumAlipay) = "alipay" toJSON (OrdersV2ResourcePaymentSettings'NonNullablePaymentMethodTypes'NonNullableEnumAuBecsDebit) = "au_becs_debit" toJSON (OrdersV2ResourcePaymentSettings'NonNullablePaymentMethodTypes'NonNullableEnumBacsDebit) = "bacs_debit" toJSON (OrdersV2ResourcePaymentSettings'NonNullablePaymentMethodTypes'NonNullableEnumBancontact) = "bancontact" toJSON (OrdersV2ResourcePaymentSettings'NonNullablePaymentMethodTypes'NonNullableEnumCard) = "card" toJSON (OrdersV2ResourcePaymentSettings'NonNullablePaymentMethodTypes'NonNullableEnumCustomerBalance) = "customer_balance" toJSON (OrdersV2ResourcePaymentSettings'NonNullablePaymentMethodTypes'NonNullableEnumEps) = "eps" toJSON (OrdersV2ResourcePaymentSettings'NonNullablePaymentMethodTypes'NonNullableEnumFpx) = "fpx" toJSON (OrdersV2ResourcePaymentSettings'NonNullablePaymentMethodTypes'NonNullableEnumGiropay) = "giropay" toJSON (OrdersV2ResourcePaymentSettings'NonNullablePaymentMethodTypes'NonNullableEnumGrabpay) = "grabpay" toJSON (OrdersV2ResourcePaymentSettings'NonNullablePaymentMethodTypes'NonNullableEnumIdeal) = "ideal" toJSON (OrdersV2ResourcePaymentSettings'NonNullablePaymentMethodTypes'NonNullableEnumKlarna) = "klarna" toJSON (OrdersV2ResourcePaymentSettings'NonNullablePaymentMethodTypes'NonNullableEnumLink) = "link" toJSON (OrdersV2ResourcePaymentSettings'NonNullablePaymentMethodTypes'NonNullableEnumOxxo) = "oxxo" toJSON (OrdersV2ResourcePaymentSettings'NonNullablePaymentMethodTypes'NonNullableEnumP24) = "p24" toJSON (OrdersV2ResourcePaymentSettings'NonNullablePaymentMethodTypes'NonNullableEnumPaypal) = "paypal" toJSON (OrdersV2ResourcePaymentSettings'NonNullablePaymentMethodTypes'NonNullableEnumSepaDebit) = "sepa_debit" toJSON (OrdersV2ResourcePaymentSettings'NonNullablePaymentMethodTypes'NonNullableEnumSofort) = "sofort" toJSON (OrdersV2ResourcePaymentSettings'NonNullablePaymentMethodTypes'NonNullableEnumWechatPay) = "wechat_pay" instance Data.Aeson.Types.FromJSON.FromJSON OrdersV2ResourcePaymentSettings'NonNullablePaymentMethodTypes'NonNullable where parseJSON val = GHC.Base.pure ( if | val GHC.Classes.== "acss_debit" -> OrdersV2ResourcePaymentSettings'NonNullablePaymentMethodTypes'NonNullableEnumAcssDebit | val GHC.Classes.== "afterpay_clearpay" -> OrdersV2ResourcePaymentSettings'NonNullablePaymentMethodTypes'NonNullableEnumAfterpayClearpay | val GHC.Classes.== "alipay" -> OrdersV2ResourcePaymentSettings'NonNullablePaymentMethodTypes'NonNullableEnumAlipay | val GHC.Classes.== "au_becs_debit" -> OrdersV2ResourcePaymentSettings'NonNullablePaymentMethodTypes'NonNullableEnumAuBecsDebit | val GHC.Classes.== "bacs_debit" -> OrdersV2ResourcePaymentSettings'NonNullablePaymentMethodTypes'NonNullableEnumBacsDebit | val GHC.Classes.== "bancontact" -> OrdersV2ResourcePaymentSettings'NonNullablePaymentMethodTypes'NonNullableEnumBancontact | val GHC.Classes.== "card" -> OrdersV2ResourcePaymentSettings'NonNullablePaymentMethodTypes'NonNullableEnumCard | val GHC.Classes.== "customer_balance" -> OrdersV2ResourcePaymentSettings'NonNullablePaymentMethodTypes'NonNullableEnumCustomerBalance | val GHC.Classes.== "eps" -> OrdersV2ResourcePaymentSettings'NonNullablePaymentMethodTypes'NonNullableEnumEps | val GHC.Classes.== "fpx" -> OrdersV2ResourcePaymentSettings'NonNullablePaymentMethodTypes'NonNullableEnumFpx | val GHC.Classes.== "giropay" -> OrdersV2ResourcePaymentSettings'NonNullablePaymentMethodTypes'NonNullableEnumGiropay | val GHC.Classes.== "grabpay" -> OrdersV2ResourcePaymentSettings'NonNullablePaymentMethodTypes'NonNullableEnumGrabpay | val GHC.Classes.== "ideal" -> OrdersV2ResourcePaymentSettings'NonNullablePaymentMethodTypes'NonNullableEnumIdeal | val GHC.Classes.== "klarna" -> OrdersV2ResourcePaymentSettings'NonNullablePaymentMethodTypes'NonNullableEnumKlarna | val GHC.Classes.== "link" -> OrdersV2ResourcePaymentSettings'NonNullablePaymentMethodTypes'NonNullableEnumLink | val GHC.Classes.== "oxxo" -> OrdersV2ResourcePaymentSettings'NonNullablePaymentMethodTypes'NonNullableEnumOxxo | val GHC.Classes.== "p24" -> OrdersV2ResourcePaymentSettings'NonNullablePaymentMethodTypes'NonNullableEnumP24 | val GHC.Classes.== "paypal" -> OrdersV2ResourcePaymentSettings'NonNullablePaymentMethodTypes'NonNullableEnumPaypal | val GHC.Classes.== "sepa_debit" -> OrdersV2ResourcePaymentSettings'NonNullablePaymentMethodTypes'NonNullableEnumSepaDebit | val GHC.Classes.== "sofort" -> OrdersV2ResourcePaymentSettings'NonNullablePaymentMethodTypes'NonNullableEnumSofort | val GHC.Classes.== "wechat_pay" -> OrdersV2ResourcePaymentSettings'NonNullablePaymentMethodTypes'NonNullableEnumWechatPay | GHC.Base.otherwise -> OrdersV2ResourcePaymentSettings'NonNullablePaymentMethodTypes'NonNullableOther val ) -- | Defines the object schema located at @components.schemas.orders_v2_resource_payment.properties.settings.anyOf.properties.transfer_data.anyOf@ in the specification. -- -- Provides configuration for completing a transfer for the order after it is paid. data OrdersV2ResourcePaymentSettings'NonNullableTransferData'NonNullable = OrdersV2ResourcePaymentSettings'NonNullableTransferData'NonNullable { -- | amount: The amount that will be transferred automatically when the order is paid. If no amount is set, the full amount is transferred. There cannot be any line items with recurring prices when using this field. ordersV2ResourcePaymentSettings'NonNullableTransferData'NonNullableAmount :: (GHC.Maybe.Maybe (StripeAPI.Common.Nullable GHC.Types.Int)), -- | destination: ID of the Connected account receiving the transfer. ordersV2ResourcePaymentSettings'NonNullableTransferData'NonNullableDestination :: (GHC.Maybe.Maybe OrdersV2ResourcePaymentSettings'NonNullableTransferData'NonNullableDestination'Variants) } deriving ( GHC.Show.Show, GHC.Classes.Eq ) instance Data.Aeson.Types.ToJSON.ToJSON OrdersV2ResourcePaymentSettings'NonNullableTransferData'NonNullable where toJSON obj = Data.Aeson.Types.Internal.object (Data.Foldable.concat (Data.Maybe.maybe GHC.Base.mempty (GHC.Base.pure GHC.Base.. ("amount" Data.Aeson.Types.ToJSON..=)) (ordersV2ResourcePaymentSettings'NonNullableTransferData'NonNullableAmount obj) : Data.Maybe.maybe GHC.Base.mempty (GHC.Base.pure GHC.Base.. ("destination" Data.Aeson.Types.ToJSON..=)) (ordersV2ResourcePaymentSettings'NonNullableTransferData'NonNullableDestination 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.. ("amount" Data.Aeson.Types.ToJSON..=)) (ordersV2ResourcePaymentSettings'NonNullableTransferData'NonNullableAmount obj) : Data.Maybe.maybe GHC.Base.mempty (GHC.Base.pure GHC.Base.. ("destination" Data.Aeson.Types.ToJSON..=)) (ordersV2ResourcePaymentSettings'NonNullableTransferData'NonNullableDestination obj) : GHC.Base.mempty))) instance Data.Aeson.Types.FromJSON.FromJSON OrdersV2ResourcePaymentSettings'NonNullableTransferData'NonNullable where parseJSON = Data.Aeson.Types.FromJSON.withObject "OrdersV2ResourcePaymentSettings'NonNullableTransferData'NonNullable" (\obj -> (GHC.Base.pure OrdersV2ResourcePaymentSettings'NonNullableTransferData'NonNullable GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:! "amount")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:! "destination")) -- | Create a new 'OrdersV2ResourcePaymentSettings'NonNullableTransferData'NonNullable' with all required fields. mkOrdersV2ResourcePaymentSettings'NonNullableTransferData'NonNullable :: OrdersV2ResourcePaymentSettings'NonNullableTransferData'NonNullable mkOrdersV2ResourcePaymentSettings'NonNullableTransferData'NonNullable = OrdersV2ResourcePaymentSettings'NonNullableTransferData'NonNullable { ordersV2ResourcePaymentSettings'NonNullableTransferData'NonNullableAmount = GHC.Maybe.Nothing, ordersV2ResourcePaymentSettings'NonNullableTransferData'NonNullableDestination = GHC.Maybe.Nothing } -- | Defines the oneOf schema located at @components.schemas.orders_v2_resource_payment.properties.settings.anyOf.properties.transfer_data.anyOf.properties.destination.anyOf@ in the specification. -- -- ID of the Connected account receiving the transfer. data OrdersV2ResourcePaymentSettings'NonNullableTransferData'NonNullableDestination'Variants = OrdersV2ResourcePaymentSettings'NonNullableTransferData'NonNullableDestination'Text Data.Text.Internal.Text | OrdersV2ResourcePaymentSettings'NonNullableTransferData'NonNullableDestination'Account Account deriving (GHC.Show.Show, GHC.Classes.Eq) instance Data.Aeson.Types.ToJSON.ToJSON OrdersV2ResourcePaymentSettings'NonNullableTransferData'NonNullableDestination'Variants where toJSON (OrdersV2ResourcePaymentSettings'NonNullableTransferData'NonNullableDestination'Text a) = Data.Aeson.Types.ToJSON.toJSON a toJSON (OrdersV2ResourcePaymentSettings'NonNullableTransferData'NonNullableDestination'Account a) = Data.Aeson.Types.ToJSON.toJSON a instance Data.Aeson.Types.FromJSON.FromJSON OrdersV2ResourcePaymentSettings'NonNullableTransferData'NonNullableDestination'Variants where parseJSON val = case (OrdersV2ResourcePaymentSettings'NonNullableTransferData'NonNullableDestination'Text Data.Functor.<$> Data.Aeson.Types.FromJSON.fromJSON val) GHC.Base.<|> ((OrdersV2ResourcePaymentSettings'NonNullableTransferData'NonNullableDestination'Account 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 enum schema located at @components.schemas.orders_v2_resource_payment.properties.status@ in the specification. -- -- The status of the underlying payment associated with this order, if any. Null when the order is \`open\`. data OrdersV2ResourcePaymentStatus'NonNullable = -- | This case is used if the value encountered during decoding does not match any of the provided cases in the specification. OrdersV2ResourcePaymentStatus'NonNullableOther Data.Aeson.Types.Internal.Value | -- | This constructor can be used to send values to the server which are not present in the specification yet. OrdersV2ResourcePaymentStatus'NonNullableTyped Data.Text.Internal.Text | -- | Represents the JSON value @"canceled"@ OrdersV2ResourcePaymentStatus'NonNullableEnumCanceled | -- | Represents the JSON value @"complete"@ OrdersV2ResourcePaymentStatus'NonNullableEnumComplete | -- | Represents the JSON value @"not_required"@ OrdersV2ResourcePaymentStatus'NonNullableEnumNotRequired | -- | Represents the JSON value @"processing"@ OrdersV2ResourcePaymentStatus'NonNullableEnumProcessing | -- | Represents the JSON value @"requires_action"@ OrdersV2ResourcePaymentStatus'NonNullableEnumRequiresAction | -- | Represents the JSON value @"requires_capture"@ OrdersV2ResourcePaymentStatus'NonNullableEnumRequiresCapture | -- | Represents the JSON value @"requires_confirmation"@ OrdersV2ResourcePaymentStatus'NonNullableEnumRequiresConfirmation | -- | Represents the JSON value @"requires_payment_method"@ OrdersV2ResourcePaymentStatus'NonNullableEnumRequiresPaymentMethod deriving (GHC.Show.Show, GHC.Classes.Eq) instance Data.Aeson.Types.ToJSON.ToJSON OrdersV2ResourcePaymentStatus'NonNullable where toJSON (OrdersV2ResourcePaymentStatus'NonNullableOther val) = val toJSON (OrdersV2ResourcePaymentStatus'NonNullableTyped val) = Data.Aeson.Types.ToJSON.toJSON val toJSON (OrdersV2ResourcePaymentStatus'NonNullableEnumCanceled) = "canceled" toJSON (OrdersV2ResourcePaymentStatus'NonNullableEnumComplete) = "complete" toJSON (OrdersV2ResourcePaymentStatus'NonNullableEnumNotRequired) = "not_required" toJSON (OrdersV2ResourcePaymentStatus'NonNullableEnumProcessing) = "processing" toJSON (OrdersV2ResourcePaymentStatus'NonNullableEnumRequiresAction) = "requires_action" toJSON (OrdersV2ResourcePaymentStatus'NonNullableEnumRequiresCapture) = "requires_capture" toJSON (OrdersV2ResourcePaymentStatus'NonNullableEnumRequiresConfirmation) = "requires_confirmation" toJSON (OrdersV2ResourcePaymentStatus'NonNullableEnumRequiresPaymentMethod) = "requires_payment_method" instance Data.Aeson.Types.FromJSON.FromJSON OrdersV2ResourcePaymentStatus'NonNullable where parseJSON val = GHC.Base.pure ( if | val GHC.Classes.== "canceled" -> OrdersV2ResourcePaymentStatus'NonNullableEnumCanceled | val GHC.Classes.== "complete" -> OrdersV2ResourcePaymentStatus'NonNullableEnumComplete | val GHC.Classes.== "not_required" -> OrdersV2ResourcePaymentStatus'NonNullableEnumNotRequired | val GHC.Classes.== "processing" -> OrdersV2ResourcePaymentStatus'NonNullableEnumProcessing | val GHC.Classes.== "requires_action" -> OrdersV2ResourcePaymentStatus'NonNullableEnumRequiresAction | val GHC.Classes.== "requires_capture" -> OrdersV2ResourcePaymentStatus'NonNullableEnumRequiresCapture | val GHC.Classes.== "requires_confirmation" -> OrdersV2ResourcePaymentStatus'NonNullableEnumRequiresConfirmation | val GHC.Classes.== "requires_payment_method" -> OrdersV2ResourcePaymentStatus'NonNullableEnumRequiresPaymentMethod | GHC.Base.otherwise -> OrdersV2ResourcePaymentStatus'NonNullableOther val )