{-# 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 Checkout_Session
module StripeAPI.Types.Checkout_Session 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.Address
import {-# SOURCE #-} StripeAPI.Types.CheckoutAcssDebitPaymentMethodOptions
import {-# SOURCE #-} StripeAPI.Types.CheckoutSessionPaymentMethodOptions
import {-# SOURCE #-} StripeAPI.Types.Customer
import {-# SOURCE #-} StripeAPI.Types.DeletedCustomer
import {-# SOURCE #-} StripeAPI.Types.Item
import {-# SOURCE #-} StripeAPI.Types.PaymentIntent
import {-# SOURCE #-} StripeAPI.Types.PaymentPagesCheckoutSessionAutomaticTax
import {-# SOURCE #-} StripeAPI.Types.PaymentPagesCheckoutSessionCustomerDetails
import {-# SOURCE #-} StripeAPI.Types.PaymentPagesCheckoutSessionTaxId
import {-# SOURCE #-} StripeAPI.Types.PaymentPagesCheckoutSessionTaxIdCollection
import {-# SOURCE #-} StripeAPI.Types.PaymentPagesCheckoutSessionTotalDetails
import {-# SOURCE #-} StripeAPI.Types.PaymentPagesCheckoutSessionTotalDetailsResourceBreakdown
import {-# SOURCE #-} StripeAPI.Types.PaymentPagesPaymentPageResourcesShippingAddressCollection
import {-# SOURCE #-} StripeAPI.Types.SetupIntent
import {-# SOURCE #-} StripeAPI.Types.Shipping
import {-# SOURCE #-} StripeAPI.Types.Subscription
import qualified Prelude as GHC.Integer.Type
import qualified Prelude as GHC.Maybe

-- | Defines the object schema located at @components.schemas.checkout.session@ in the specification.
--
-- A Checkout Session represents your customer\'s session as they pay for
-- one-time purchases or subscriptions through [Checkout](https:\/\/stripe.com\/docs\/payments\/checkout).
-- We recommend creating a new Session each time your customer attempts to pay.
--
-- Once payment is successful, the Checkout Session will contain a reference
-- to the [Customer](https:\/\/stripe.com\/docs\/api\/customers), and either the successful
-- [PaymentIntent](https:\/\/stripe.com\/docs\/api\/payment_intents) or an active
-- [Subscription](https:\/\/stripe.com\/docs\/api\/subscriptions).
--
-- You can create a Checkout Session on your server and pass its ID to the
-- client to begin Checkout.
--
-- Related guide: [Checkout Server Quickstart](https:\/\/stripe.com\/docs\/payments\/checkout\/api).
data Checkout'session = Checkout'session
  { -- | allow_promotion_codes: Enables user redeemable promotion codes.
    Checkout'session -> Maybe Bool
checkout'sessionAllowPromotionCodes :: (GHC.Maybe.Maybe GHC.Types.Bool),
    -- | amount_subtotal: Total of all items before discounts or taxes are applied.
    Checkout'session -> Maybe Int
checkout'sessionAmountSubtotal :: (GHC.Maybe.Maybe GHC.Types.Int),
    -- | amount_total: Total of all items after discounts and taxes are applied.
    Checkout'session -> Maybe Int
checkout'sessionAmountTotal :: (GHC.Maybe.Maybe GHC.Types.Int),
    -- | automatic_tax:
    Checkout'session -> PaymentPagesCheckoutSessionAutomaticTax
checkout'sessionAutomaticTax :: PaymentPagesCheckoutSessionAutomaticTax,
    -- | billing_address_collection: Describes whether Checkout should collect the customer\'s billing address.
    Checkout'session -> Maybe Checkout'sessionBillingAddressCollection'
checkout'sessionBillingAddressCollection :: (GHC.Maybe.Maybe Checkout'sessionBillingAddressCollection'),
    -- | cancel_url: The URL the customer will be directed to if they decide to cancel payment and return to your website.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    Checkout'session -> Text
checkout'sessionCancelUrl :: Data.Text.Internal.Text,
    -- | client_reference_id: A unique string to reference the Checkout Session. This can be a
    -- customer ID, a cart ID, or similar, and can be used to reconcile the
    -- Session with your internal systems.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    Checkout'session -> Maybe Text
checkout'sessionClientReferenceId :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | 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).
    Checkout'session -> Maybe Text
checkout'sessionCurrency :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | customer: The ID of the customer for this Session.
    -- For Checkout Sessions in \`payment\` or \`subscription\` mode, Checkout
    -- will create a new customer object based on information provided
    -- during the payment flow unless an existing customer was provided when
    -- the Session was created.
    Checkout'session -> Maybe Checkout'sessionCustomer'Variants
checkout'sessionCustomer :: (GHC.Maybe.Maybe Checkout'sessionCustomer'Variants),
    -- | customer_details: The customer details including the customer\'s tax exempt status and the customer\'s tax IDs. Only present on Sessions in \`payment\` or \`subscription\` mode.
    Checkout'session -> Maybe Checkout'sessionCustomerDetails'
checkout'sessionCustomerDetails :: (GHC.Maybe.Maybe Checkout'sessionCustomerDetails'),
    -- | customer_email: If provided, this value will be used when the Customer object is created.
    -- If not provided, customers will be asked to enter their email address.
    -- Use this parameter to prefill customer data if you already have an email
    -- on file. To access information about the customer once the payment flow is
    -- complete, use the \`customer\` attribute.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    Checkout'session -> Maybe Text
checkout'sessionCustomerEmail :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | id: Unique identifier for the object. Used to pass to \`redirectToCheckout\`
    -- in Stripe.js.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    Checkout'session -> Text
checkout'sessionId :: Data.Text.Internal.Text,
    -- | line_items: The line items purchased by the customer.
    Checkout'session -> Maybe Checkout'sessionLineItems'
checkout'sessionLineItems :: (GHC.Maybe.Maybe Checkout'sessionLineItems'),
    -- | livemode: Has the value \`true\` if the object exists in live mode or the value \`false\` if the object exists in test mode.
    Checkout'session -> Bool
checkout'sessionLivemode :: GHC.Types.Bool,
    -- | locale: The IETF language tag of the locale Checkout is displayed in. If blank or \`auto\`, the browser\'s locale is used.
    Checkout'session -> Maybe Checkout'sessionLocale'
checkout'sessionLocale :: (GHC.Maybe.Maybe Checkout'sessionLocale'),
    -- | 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.
    Checkout'session -> Maybe Object
checkout'sessionMetadata :: (GHC.Maybe.Maybe Data.Aeson.Types.Internal.Object),
    -- | mode: The mode of the Checkout Session.
    Checkout'session -> Checkout'sessionMode'
checkout'sessionMode :: Checkout'sessionMode',
    -- | payment_intent: The ID of the PaymentIntent for Checkout Sessions in \`payment\` mode.
    Checkout'session -> Maybe Checkout'sessionPaymentIntent'Variants
checkout'sessionPaymentIntent :: (GHC.Maybe.Maybe Checkout'sessionPaymentIntent'Variants),
    -- | payment_method_options: Payment-method-specific configuration for the PaymentIntent or SetupIntent of this CheckoutSession.
    Checkout'session -> Maybe Checkout'sessionPaymentMethodOptions'
checkout'sessionPaymentMethodOptions :: (GHC.Maybe.Maybe Checkout'sessionPaymentMethodOptions'),
    -- | payment_method_types: A list of the types of payment methods (e.g. card) this Checkout
    -- Session is allowed to accept.
    Checkout'session -> [Text]
checkout'sessionPaymentMethodTypes :: ([Data.Text.Internal.Text]),
    -- | payment_status: The payment status of the Checkout Session, one of \`paid\`, \`unpaid\`, or \`no_payment_required\`.
    -- You can use this value to decide when to fulfill your customer\'s order.
    Checkout'session -> Checkout'sessionPaymentStatus'
checkout'sessionPaymentStatus :: Checkout'sessionPaymentStatus',
    -- | setup_intent: The ID of the SetupIntent for Checkout Sessions in \`setup\` mode.
    Checkout'session -> Maybe Checkout'sessionSetupIntent'Variants
checkout'sessionSetupIntent :: (GHC.Maybe.Maybe Checkout'sessionSetupIntent'Variants),
    -- | shipping: Shipping information for this Checkout Session.
    Checkout'session -> Maybe Checkout'sessionShipping'
checkout'sessionShipping :: (GHC.Maybe.Maybe Checkout'sessionShipping'),
    -- | shipping_address_collection: When set, provides configuration for Checkout to collect a shipping address from a customer.
    Checkout'session
-> Maybe Checkout'sessionShippingAddressCollection'
checkout'sessionShippingAddressCollection :: (GHC.Maybe.Maybe Checkout'sessionShippingAddressCollection'),
    -- | submit_type: Describes the type of transaction being performed by Checkout in order to customize
    -- relevant text on the page, such as the submit button. \`submit_type\` can only be
    -- specified on Checkout Sessions in \`payment\` mode, but not Checkout Sessions
    -- in \`subscription\` or \`setup\` mode.
    Checkout'session -> Maybe Checkout'sessionSubmitType'
checkout'sessionSubmitType :: (GHC.Maybe.Maybe Checkout'sessionSubmitType'),
    -- | subscription: The ID of the subscription for Checkout Sessions in \`subscription\` mode.
    Checkout'session -> Maybe Checkout'sessionSubscription'Variants
checkout'sessionSubscription :: (GHC.Maybe.Maybe Checkout'sessionSubscription'Variants),
    -- | success_url: The URL the customer will be directed to after the payment or
    -- subscription creation is successful.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    Checkout'session -> Text
checkout'sessionSuccessUrl :: Data.Text.Internal.Text,
    -- | tax_id_collection:
    Checkout'session
-> Maybe PaymentPagesCheckoutSessionTaxIdCollection
checkout'sessionTaxIdCollection :: (GHC.Maybe.Maybe PaymentPagesCheckoutSessionTaxIdCollection),
    -- | total_details: Tax and discount details for the computed total amount.
    Checkout'session -> Maybe Checkout'sessionTotalDetails'
checkout'sessionTotalDetails :: (GHC.Maybe.Maybe Checkout'sessionTotalDetails'),
    -- | url: The URL to the Checkout Session.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    Checkout'session -> Maybe Text
checkout'sessionUrl :: (GHC.Maybe.Maybe Data.Text.Internal.Text)
  }
  deriving
    ( Int -> Checkout'session -> ShowS
[Checkout'session] -> ShowS
Checkout'session -> String
(Int -> Checkout'session -> ShowS)
-> (Checkout'session -> String)
-> ([Checkout'session] -> ShowS)
-> Show Checkout'session
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [Checkout'session] -> ShowS
$cshowList :: [Checkout'session] -> ShowS
show :: Checkout'session -> String
$cshow :: Checkout'session -> String
showsPrec :: Int -> Checkout'session -> ShowS
$cshowsPrec :: Int -> Checkout'session -> ShowS
GHC.Show.Show,
      Checkout'session -> Checkout'session -> Bool
(Checkout'session -> Checkout'session -> Bool)
-> (Checkout'session -> Checkout'session -> Bool)
-> Eq Checkout'session
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: Checkout'session -> Checkout'session -> Bool
$c/= :: Checkout'session -> Checkout'session -> Bool
== :: Checkout'session -> Checkout'session -> Bool
$c== :: Checkout'session -> Checkout'session -> Bool
GHC.Classes.Eq
    )

instance Data.Aeson.Types.ToJSON.ToJSON Checkout'session where
  toJSON :: Checkout'session -> Value
toJSON Checkout'session
obj = [Pair] -> Value
Data.Aeson.Types.Internal.object (Text
"allow_promotion_codes" Text -> Maybe Bool -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Checkout'session -> Maybe Bool
checkout'sessionAllowPromotionCodes Checkout'session
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"amount_subtotal" Text -> Maybe Int -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Checkout'session -> Maybe Int
checkout'sessionAmountSubtotal Checkout'session
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"amount_total" Text -> Maybe Int -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Checkout'session -> Maybe Int
checkout'sessionAmountTotal Checkout'session
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"automatic_tax" Text -> PaymentPagesCheckoutSessionAutomaticTax -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Checkout'session -> PaymentPagesCheckoutSessionAutomaticTax
checkout'sessionAutomaticTax Checkout'session
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"billing_address_collection" Text -> Maybe Checkout'sessionBillingAddressCollection' -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Checkout'session -> Maybe Checkout'sessionBillingAddressCollection'
checkout'sessionBillingAddressCollection Checkout'session
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"cancel_url" Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Checkout'session -> Text
checkout'sessionCancelUrl Checkout'session
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"client_reference_id" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Checkout'session -> Maybe Text
checkout'sessionClientReferenceId Checkout'session
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"currency" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Checkout'session -> Maybe Text
checkout'sessionCurrency Checkout'session
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"customer" Text -> Maybe Checkout'sessionCustomer'Variants -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Checkout'session -> Maybe Checkout'sessionCustomer'Variants
checkout'sessionCustomer Checkout'session
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"customer_details" Text -> Maybe Checkout'sessionCustomerDetails' -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Checkout'session -> Maybe Checkout'sessionCustomerDetails'
checkout'sessionCustomerDetails Checkout'session
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"customer_email" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Checkout'session -> Maybe Text
checkout'sessionCustomerEmail Checkout'session
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"id" Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Checkout'session -> Text
checkout'sessionId Checkout'session
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"line_items" Text -> Maybe Checkout'sessionLineItems' -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Checkout'session -> Maybe Checkout'sessionLineItems'
checkout'sessionLineItems Checkout'session
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"livemode" Text -> Bool -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Checkout'session -> Bool
checkout'sessionLivemode Checkout'session
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"locale" Text -> Maybe Checkout'sessionLocale' -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Checkout'session -> Maybe Checkout'sessionLocale'
checkout'sessionLocale Checkout'session
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"metadata" Text -> Maybe Object -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Checkout'session -> Maybe Object
checkout'sessionMetadata Checkout'session
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"mode" Text -> Checkout'sessionMode' -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Checkout'session -> Checkout'sessionMode'
checkout'sessionMode Checkout'session
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"payment_intent" Text -> Maybe Checkout'sessionPaymentIntent'Variants -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Checkout'session -> Maybe Checkout'sessionPaymentIntent'Variants
checkout'sessionPaymentIntent Checkout'session
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"payment_method_options" Text -> Maybe Checkout'sessionPaymentMethodOptions' -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Checkout'session -> Maybe Checkout'sessionPaymentMethodOptions'
checkout'sessionPaymentMethodOptions Checkout'session
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"payment_method_types" Text -> [Text] -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Checkout'session -> [Text]
checkout'sessionPaymentMethodTypes Checkout'session
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"payment_status" Text -> Checkout'sessionPaymentStatus' -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Checkout'session -> Checkout'sessionPaymentStatus'
checkout'sessionPaymentStatus Checkout'session
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"setup_intent" Text -> Maybe Checkout'sessionSetupIntent'Variants -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Checkout'session -> Maybe Checkout'sessionSetupIntent'Variants
checkout'sessionSetupIntent Checkout'session
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"shipping" Text -> Maybe Checkout'sessionShipping' -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Checkout'session -> Maybe Checkout'sessionShipping'
checkout'sessionShipping Checkout'session
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"shipping_address_collection" Text -> Maybe Checkout'sessionShippingAddressCollection' -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Checkout'session
-> Maybe Checkout'sessionShippingAddressCollection'
checkout'sessionShippingAddressCollection Checkout'session
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"submit_type" Text -> Maybe Checkout'sessionSubmitType' -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Checkout'session -> Maybe Checkout'sessionSubmitType'
checkout'sessionSubmitType Checkout'session
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"subscription" Text -> Maybe Checkout'sessionSubscription'Variants -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Checkout'session -> Maybe Checkout'sessionSubscription'Variants
checkout'sessionSubscription Checkout'session
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"success_url" Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Checkout'session -> Text
checkout'sessionSuccessUrl Checkout'session
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"tax_id_collection" Text -> Maybe PaymentPagesCheckoutSessionTaxIdCollection -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Checkout'session
-> Maybe PaymentPagesCheckoutSessionTaxIdCollection
checkout'sessionTaxIdCollection Checkout'session
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"total_details" Text -> Maybe Checkout'sessionTotalDetails' -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Checkout'session -> Maybe Checkout'sessionTotalDetails'
checkout'sessionTotalDetails Checkout'session
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"url" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Checkout'session -> Maybe Text
checkout'sessionUrl Checkout'session
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"object" Text -> Value -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Text -> Value
Data.Aeson.Types.Internal.String Text
"checkout.session" Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: Checkout'session -> Encoding
toEncoding Checkout'session
obj = Series -> Encoding
Data.Aeson.Encoding.Internal.pairs ((Text
"allow_promotion_codes" Text -> Maybe Bool -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Checkout'session -> Maybe Bool
checkout'sessionAllowPromotionCodes Checkout'session
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"amount_subtotal" Text -> Maybe Int -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Checkout'session -> Maybe Int
checkout'sessionAmountSubtotal Checkout'session
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"amount_total" Text -> Maybe Int -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Checkout'session -> Maybe Int
checkout'sessionAmountTotal Checkout'session
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"automatic_tax" Text -> PaymentPagesCheckoutSessionAutomaticTax -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Checkout'session -> PaymentPagesCheckoutSessionAutomaticTax
checkout'sessionAutomaticTax Checkout'session
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"billing_address_collection" Text -> Maybe Checkout'sessionBillingAddressCollection' -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Checkout'session -> Maybe Checkout'sessionBillingAddressCollection'
checkout'sessionBillingAddressCollection Checkout'session
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"cancel_url" Text -> Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Checkout'session -> Text
checkout'sessionCancelUrl Checkout'session
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"client_reference_id" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Checkout'session -> Maybe Text
checkout'sessionClientReferenceId Checkout'session
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"currency" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Checkout'session -> Maybe Text
checkout'sessionCurrency Checkout'session
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"customer" Text -> Maybe Checkout'sessionCustomer'Variants -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Checkout'session -> Maybe Checkout'sessionCustomer'Variants
checkout'sessionCustomer Checkout'session
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"customer_details" Text -> Maybe Checkout'sessionCustomerDetails' -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Checkout'session -> Maybe Checkout'sessionCustomerDetails'
checkout'sessionCustomerDetails Checkout'session
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"customer_email" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Checkout'session -> Maybe Text
checkout'sessionCustomerEmail Checkout'session
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"id" Text -> Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Checkout'session -> Text
checkout'sessionId Checkout'session
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"line_items" Text -> Maybe Checkout'sessionLineItems' -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Checkout'session -> Maybe Checkout'sessionLineItems'
checkout'sessionLineItems Checkout'session
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"livemode" Text -> Bool -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Checkout'session -> Bool
checkout'sessionLivemode Checkout'session
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"locale" Text -> Maybe Checkout'sessionLocale' -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Checkout'session -> Maybe Checkout'sessionLocale'
checkout'sessionLocale Checkout'session
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"metadata" Text -> Maybe Object -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Checkout'session -> Maybe Object
checkout'sessionMetadata Checkout'session
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"mode" Text -> Checkout'sessionMode' -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Checkout'session -> Checkout'sessionMode'
checkout'sessionMode Checkout'session
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"payment_intent" Text -> Maybe Checkout'sessionPaymentIntent'Variants -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Checkout'session -> Maybe Checkout'sessionPaymentIntent'Variants
checkout'sessionPaymentIntent Checkout'session
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"payment_method_options" Text -> Maybe Checkout'sessionPaymentMethodOptions' -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Checkout'session -> Maybe Checkout'sessionPaymentMethodOptions'
checkout'sessionPaymentMethodOptions Checkout'session
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"payment_method_types" Text -> [Text] -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Checkout'session -> [Text]
checkout'sessionPaymentMethodTypes Checkout'session
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"payment_status" Text -> Checkout'sessionPaymentStatus' -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Checkout'session -> Checkout'sessionPaymentStatus'
checkout'sessionPaymentStatus Checkout'session
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"setup_intent" Text -> Maybe Checkout'sessionSetupIntent'Variants -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Checkout'session -> Maybe Checkout'sessionSetupIntent'Variants
checkout'sessionSetupIntent Checkout'session
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"shipping" Text -> Maybe Checkout'sessionShipping' -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Checkout'session -> Maybe Checkout'sessionShipping'
checkout'sessionShipping Checkout'session
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"shipping_address_collection" Text -> Maybe Checkout'sessionShippingAddressCollection' -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Checkout'session
-> Maybe Checkout'sessionShippingAddressCollection'
checkout'sessionShippingAddressCollection Checkout'session
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"submit_type" Text -> Maybe Checkout'sessionSubmitType' -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Checkout'session -> Maybe Checkout'sessionSubmitType'
checkout'sessionSubmitType Checkout'session
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"subscription" Text -> Maybe Checkout'sessionSubscription'Variants -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Checkout'session -> Maybe Checkout'sessionSubscription'Variants
checkout'sessionSubscription Checkout'session
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"success_url" Text -> Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Checkout'session -> Text
checkout'sessionSuccessUrl Checkout'session
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"tax_id_collection" Text -> Maybe PaymentPagesCheckoutSessionTaxIdCollection -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Checkout'session
-> Maybe PaymentPagesCheckoutSessionTaxIdCollection
checkout'sessionTaxIdCollection Checkout'session
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"total_details" Text -> Maybe Checkout'sessionTotalDetails' -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Checkout'session -> Maybe Checkout'sessionTotalDetails'
checkout'sessionTotalDetails Checkout'session
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"url" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Checkout'session -> Maybe Text
checkout'sessionUrl Checkout'session
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> (Text
"object" Text -> Value -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Text -> Value
Data.Aeson.Types.Internal.String Text
"checkout.session")))))))))))))))))))))))))))))))

instance Data.Aeson.Types.FromJSON.FromJSON Checkout'session where
  parseJSON :: Value -> Parser Checkout'session
parseJSON = String
-> (Object -> Parser Checkout'session)
-> Value
-> Parser Checkout'session
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.Aeson.Types.FromJSON.withObject String
"Checkout'session" (\Object
obj -> ((((((((((((((((((((((((((((((Maybe Bool
 -> Maybe Int
 -> Maybe Int
 -> PaymentPagesCheckoutSessionAutomaticTax
 -> Maybe Checkout'sessionBillingAddressCollection'
 -> Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe Checkout'sessionCustomer'Variants
 -> Maybe Checkout'sessionCustomerDetails'
 -> Maybe Text
 -> Text
 -> Maybe Checkout'sessionLineItems'
 -> Bool
 -> Maybe Checkout'sessionLocale'
 -> Maybe Object
 -> Checkout'sessionMode'
 -> Maybe Checkout'sessionPaymentIntent'Variants
 -> Maybe Checkout'sessionPaymentMethodOptions'
 -> [Text]
 -> Checkout'sessionPaymentStatus'
 -> Maybe Checkout'sessionSetupIntent'Variants
 -> Maybe Checkout'sessionShipping'
 -> Maybe Checkout'sessionShippingAddressCollection'
 -> Maybe Checkout'sessionSubmitType'
 -> Maybe Checkout'sessionSubscription'Variants
 -> Text
 -> Maybe PaymentPagesCheckoutSessionTaxIdCollection
 -> Maybe Checkout'sessionTotalDetails'
 -> Maybe Text
 -> Checkout'session)
-> Parser
     (Maybe Bool
      -> Maybe Int
      -> Maybe Int
      -> PaymentPagesCheckoutSessionAutomaticTax
      -> Maybe Checkout'sessionBillingAddressCollection'
      -> Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Checkout'sessionCustomer'Variants
      -> Maybe Checkout'sessionCustomerDetails'
      -> Maybe Text
      -> Text
      -> Maybe Checkout'sessionLineItems'
      -> Bool
      -> Maybe Checkout'sessionLocale'
      -> Maybe Object
      -> Checkout'sessionMode'
      -> Maybe Checkout'sessionPaymentIntent'Variants
      -> Maybe Checkout'sessionPaymentMethodOptions'
      -> [Text]
      -> Checkout'sessionPaymentStatus'
      -> Maybe Checkout'sessionSetupIntent'Variants
      -> Maybe Checkout'sessionShipping'
      -> Maybe Checkout'sessionShippingAddressCollection'
      -> Maybe Checkout'sessionSubmitType'
      -> Maybe Checkout'sessionSubscription'Variants
      -> Text
      -> Maybe PaymentPagesCheckoutSessionTaxIdCollection
      -> Maybe Checkout'sessionTotalDetails'
      -> Maybe Text
      -> Checkout'session)
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure Maybe Bool
-> Maybe Int
-> Maybe Int
-> PaymentPagesCheckoutSessionAutomaticTax
-> Maybe Checkout'sessionBillingAddressCollection'
-> Text
-> Maybe Text
-> Maybe Text
-> Maybe Checkout'sessionCustomer'Variants
-> Maybe Checkout'sessionCustomerDetails'
-> Maybe Text
-> Text
-> Maybe Checkout'sessionLineItems'
-> Bool
-> Maybe Checkout'sessionLocale'
-> Maybe Object
-> Checkout'sessionMode'
-> Maybe Checkout'sessionPaymentIntent'Variants
-> Maybe Checkout'sessionPaymentMethodOptions'
-> [Text]
-> Checkout'sessionPaymentStatus'
-> Maybe Checkout'sessionSetupIntent'Variants
-> Maybe Checkout'sessionShipping'
-> Maybe Checkout'sessionShippingAddressCollection'
-> Maybe Checkout'sessionSubmitType'
-> Maybe Checkout'sessionSubscription'Variants
-> Text
-> Maybe PaymentPagesCheckoutSessionTaxIdCollection
-> Maybe Checkout'sessionTotalDetails'
-> Maybe Text
-> Checkout'session
Checkout'session Parser
  (Maybe Bool
   -> Maybe Int
   -> Maybe Int
   -> PaymentPagesCheckoutSessionAutomaticTax
   -> Maybe Checkout'sessionBillingAddressCollection'
   -> Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Checkout'sessionCustomer'Variants
   -> Maybe Checkout'sessionCustomerDetails'
   -> Maybe Text
   -> Text
   -> Maybe Checkout'sessionLineItems'
   -> Bool
   -> Maybe Checkout'sessionLocale'
   -> Maybe Object
   -> Checkout'sessionMode'
   -> Maybe Checkout'sessionPaymentIntent'Variants
   -> Maybe Checkout'sessionPaymentMethodOptions'
   -> [Text]
   -> Checkout'sessionPaymentStatus'
   -> Maybe Checkout'sessionSetupIntent'Variants
   -> Maybe Checkout'sessionShipping'
   -> Maybe Checkout'sessionShippingAddressCollection'
   -> Maybe Checkout'sessionSubmitType'
   -> Maybe Checkout'sessionSubscription'Variants
   -> Text
   -> Maybe PaymentPagesCheckoutSessionTaxIdCollection
   -> Maybe Checkout'sessionTotalDetails'
   -> Maybe Text
   -> Checkout'session)
-> Parser (Maybe Bool)
-> Parser
     (Maybe Int
      -> Maybe Int
      -> PaymentPagesCheckoutSessionAutomaticTax
      -> Maybe Checkout'sessionBillingAddressCollection'
      -> Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Checkout'sessionCustomer'Variants
      -> Maybe Checkout'sessionCustomerDetails'
      -> Maybe Text
      -> Text
      -> Maybe Checkout'sessionLineItems'
      -> Bool
      -> Maybe Checkout'sessionLocale'
      -> Maybe Object
      -> Checkout'sessionMode'
      -> Maybe Checkout'sessionPaymentIntent'Variants
      -> Maybe Checkout'sessionPaymentMethodOptions'
      -> [Text]
      -> Checkout'sessionPaymentStatus'
      -> Maybe Checkout'sessionSetupIntent'Variants
      -> Maybe Checkout'sessionShipping'
      -> Maybe Checkout'sessionShippingAddressCollection'
      -> Maybe Checkout'sessionSubmitType'
      -> Maybe Checkout'sessionSubscription'Variants
      -> Text
      -> Maybe PaymentPagesCheckoutSessionTaxIdCollection
      -> Maybe Checkout'sessionTotalDetails'
      -> Maybe Text
      -> Checkout'session)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"allow_promotion_codes")) Parser
  (Maybe Int
   -> Maybe Int
   -> PaymentPagesCheckoutSessionAutomaticTax
   -> Maybe Checkout'sessionBillingAddressCollection'
   -> Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Checkout'sessionCustomer'Variants
   -> Maybe Checkout'sessionCustomerDetails'
   -> Maybe Text
   -> Text
   -> Maybe Checkout'sessionLineItems'
   -> Bool
   -> Maybe Checkout'sessionLocale'
   -> Maybe Object
   -> Checkout'sessionMode'
   -> Maybe Checkout'sessionPaymentIntent'Variants
   -> Maybe Checkout'sessionPaymentMethodOptions'
   -> [Text]
   -> Checkout'sessionPaymentStatus'
   -> Maybe Checkout'sessionSetupIntent'Variants
   -> Maybe Checkout'sessionShipping'
   -> Maybe Checkout'sessionShippingAddressCollection'
   -> Maybe Checkout'sessionSubmitType'
   -> Maybe Checkout'sessionSubscription'Variants
   -> Text
   -> Maybe PaymentPagesCheckoutSessionTaxIdCollection
   -> Maybe Checkout'sessionTotalDetails'
   -> Maybe Text
   -> Checkout'session)
-> Parser (Maybe Int)
-> Parser
     (Maybe Int
      -> PaymentPagesCheckoutSessionAutomaticTax
      -> Maybe Checkout'sessionBillingAddressCollection'
      -> Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Checkout'sessionCustomer'Variants
      -> Maybe Checkout'sessionCustomerDetails'
      -> Maybe Text
      -> Text
      -> Maybe Checkout'sessionLineItems'
      -> Bool
      -> Maybe Checkout'sessionLocale'
      -> Maybe Object
      -> Checkout'sessionMode'
      -> Maybe Checkout'sessionPaymentIntent'Variants
      -> Maybe Checkout'sessionPaymentMethodOptions'
      -> [Text]
      -> Checkout'sessionPaymentStatus'
      -> Maybe Checkout'sessionSetupIntent'Variants
      -> Maybe Checkout'sessionShipping'
      -> Maybe Checkout'sessionShippingAddressCollection'
      -> Maybe Checkout'sessionSubmitType'
      -> Maybe Checkout'sessionSubscription'Variants
      -> Text
      -> Maybe PaymentPagesCheckoutSessionTaxIdCollection
      -> Maybe Checkout'sessionTotalDetails'
      -> Maybe Text
      -> Checkout'session)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"amount_subtotal")) Parser
  (Maybe Int
   -> PaymentPagesCheckoutSessionAutomaticTax
   -> Maybe Checkout'sessionBillingAddressCollection'
   -> Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Checkout'sessionCustomer'Variants
   -> Maybe Checkout'sessionCustomerDetails'
   -> Maybe Text
   -> Text
   -> Maybe Checkout'sessionLineItems'
   -> Bool
   -> Maybe Checkout'sessionLocale'
   -> Maybe Object
   -> Checkout'sessionMode'
   -> Maybe Checkout'sessionPaymentIntent'Variants
   -> Maybe Checkout'sessionPaymentMethodOptions'
   -> [Text]
   -> Checkout'sessionPaymentStatus'
   -> Maybe Checkout'sessionSetupIntent'Variants
   -> Maybe Checkout'sessionShipping'
   -> Maybe Checkout'sessionShippingAddressCollection'
   -> Maybe Checkout'sessionSubmitType'
   -> Maybe Checkout'sessionSubscription'Variants
   -> Text
   -> Maybe PaymentPagesCheckoutSessionTaxIdCollection
   -> Maybe Checkout'sessionTotalDetails'
   -> Maybe Text
   -> Checkout'session)
-> Parser (Maybe Int)
-> Parser
     (PaymentPagesCheckoutSessionAutomaticTax
      -> Maybe Checkout'sessionBillingAddressCollection'
      -> Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Checkout'sessionCustomer'Variants
      -> Maybe Checkout'sessionCustomerDetails'
      -> Maybe Text
      -> Text
      -> Maybe Checkout'sessionLineItems'
      -> Bool
      -> Maybe Checkout'sessionLocale'
      -> Maybe Object
      -> Checkout'sessionMode'
      -> Maybe Checkout'sessionPaymentIntent'Variants
      -> Maybe Checkout'sessionPaymentMethodOptions'
      -> [Text]
      -> Checkout'sessionPaymentStatus'
      -> Maybe Checkout'sessionSetupIntent'Variants
      -> Maybe Checkout'sessionShipping'
      -> Maybe Checkout'sessionShippingAddressCollection'
      -> Maybe Checkout'sessionSubmitType'
      -> Maybe Checkout'sessionSubscription'Variants
      -> Text
      -> Maybe PaymentPagesCheckoutSessionTaxIdCollection
      -> Maybe Checkout'sessionTotalDetails'
      -> Maybe Text
      -> Checkout'session)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"amount_total")) Parser
  (PaymentPagesCheckoutSessionAutomaticTax
   -> Maybe Checkout'sessionBillingAddressCollection'
   -> Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Checkout'sessionCustomer'Variants
   -> Maybe Checkout'sessionCustomerDetails'
   -> Maybe Text
   -> Text
   -> Maybe Checkout'sessionLineItems'
   -> Bool
   -> Maybe Checkout'sessionLocale'
   -> Maybe Object
   -> Checkout'sessionMode'
   -> Maybe Checkout'sessionPaymentIntent'Variants
   -> Maybe Checkout'sessionPaymentMethodOptions'
   -> [Text]
   -> Checkout'sessionPaymentStatus'
   -> Maybe Checkout'sessionSetupIntent'Variants
   -> Maybe Checkout'sessionShipping'
   -> Maybe Checkout'sessionShippingAddressCollection'
   -> Maybe Checkout'sessionSubmitType'
   -> Maybe Checkout'sessionSubscription'Variants
   -> Text
   -> Maybe PaymentPagesCheckoutSessionTaxIdCollection
   -> Maybe Checkout'sessionTotalDetails'
   -> Maybe Text
   -> Checkout'session)
-> Parser PaymentPagesCheckoutSessionAutomaticTax
-> Parser
     (Maybe Checkout'sessionBillingAddressCollection'
      -> Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Checkout'sessionCustomer'Variants
      -> Maybe Checkout'sessionCustomerDetails'
      -> Maybe Text
      -> Text
      -> Maybe Checkout'sessionLineItems'
      -> Bool
      -> Maybe Checkout'sessionLocale'
      -> Maybe Object
      -> Checkout'sessionMode'
      -> Maybe Checkout'sessionPaymentIntent'Variants
      -> Maybe Checkout'sessionPaymentMethodOptions'
      -> [Text]
      -> Checkout'sessionPaymentStatus'
      -> Maybe Checkout'sessionSetupIntent'Variants
      -> Maybe Checkout'sessionShipping'
      -> Maybe Checkout'sessionShippingAddressCollection'
      -> Maybe Checkout'sessionSubmitType'
      -> Maybe Checkout'sessionSubscription'Variants
      -> Text
      -> Maybe PaymentPagesCheckoutSessionTaxIdCollection
      -> Maybe Checkout'sessionTotalDetails'
      -> Maybe Text
      -> Checkout'session)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser PaymentPagesCheckoutSessionAutomaticTax
forall a. FromJSON a => Object -> Text -> Parser a
Data.Aeson.Types.FromJSON..: Text
"automatic_tax")) Parser
  (Maybe Checkout'sessionBillingAddressCollection'
   -> Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Checkout'sessionCustomer'Variants
   -> Maybe Checkout'sessionCustomerDetails'
   -> Maybe Text
   -> Text
   -> Maybe Checkout'sessionLineItems'
   -> Bool
   -> Maybe Checkout'sessionLocale'
   -> Maybe Object
   -> Checkout'sessionMode'
   -> Maybe Checkout'sessionPaymentIntent'Variants
   -> Maybe Checkout'sessionPaymentMethodOptions'
   -> [Text]
   -> Checkout'sessionPaymentStatus'
   -> Maybe Checkout'sessionSetupIntent'Variants
   -> Maybe Checkout'sessionShipping'
   -> Maybe Checkout'sessionShippingAddressCollection'
   -> Maybe Checkout'sessionSubmitType'
   -> Maybe Checkout'sessionSubscription'Variants
   -> Text
   -> Maybe PaymentPagesCheckoutSessionTaxIdCollection
   -> Maybe Checkout'sessionTotalDetails'
   -> Maybe Text
   -> Checkout'session)
-> Parser (Maybe Checkout'sessionBillingAddressCollection')
-> Parser
     (Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Checkout'sessionCustomer'Variants
      -> Maybe Checkout'sessionCustomerDetails'
      -> Maybe Text
      -> Text
      -> Maybe Checkout'sessionLineItems'
      -> Bool
      -> Maybe Checkout'sessionLocale'
      -> Maybe Object
      -> Checkout'sessionMode'
      -> Maybe Checkout'sessionPaymentIntent'Variants
      -> Maybe Checkout'sessionPaymentMethodOptions'
      -> [Text]
      -> Checkout'sessionPaymentStatus'
      -> Maybe Checkout'sessionSetupIntent'Variants
      -> Maybe Checkout'sessionShipping'
      -> Maybe Checkout'sessionShippingAddressCollection'
      -> Maybe Checkout'sessionSubmitType'
      -> Maybe Checkout'sessionSubscription'Variants
      -> Text
      -> Maybe PaymentPagesCheckoutSessionTaxIdCollection
      -> Maybe Checkout'sessionTotalDetails'
      -> Maybe Text
      -> Checkout'session)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text -> Parser (Maybe Checkout'sessionBillingAddressCollection')
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"billing_address_collection")) Parser
  (Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Checkout'sessionCustomer'Variants
   -> Maybe Checkout'sessionCustomerDetails'
   -> Maybe Text
   -> Text
   -> Maybe Checkout'sessionLineItems'
   -> Bool
   -> Maybe Checkout'sessionLocale'
   -> Maybe Object
   -> Checkout'sessionMode'
   -> Maybe Checkout'sessionPaymentIntent'Variants
   -> Maybe Checkout'sessionPaymentMethodOptions'
   -> [Text]
   -> Checkout'sessionPaymentStatus'
   -> Maybe Checkout'sessionSetupIntent'Variants
   -> Maybe Checkout'sessionShipping'
   -> Maybe Checkout'sessionShippingAddressCollection'
   -> Maybe Checkout'sessionSubmitType'
   -> Maybe Checkout'sessionSubscription'Variants
   -> Text
   -> Maybe PaymentPagesCheckoutSessionTaxIdCollection
   -> Maybe Checkout'sessionTotalDetails'
   -> Maybe Text
   -> Checkout'session)
-> Parser Text
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe Checkout'sessionCustomer'Variants
      -> Maybe Checkout'sessionCustomerDetails'
      -> Maybe Text
      -> Text
      -> Maybe Checkout'sessionLineItems'
      -> Bool
      -> Maybe Checkout'sessionLocale'
      -> Maybe Object
      -> Checkout'sessionMode'
      -> Maybe Checkout'sessionPaymentIntent'Variants
      -> Maybe Checkout'sessionPaymentMethodOptions'
      -> [Text]
      -> Checkout'sessionPaymentStatus'
      -> Maybe Checkout'sessionSetupIntent'Variants
      -> Maybe Checkout'sessionShipping'
      -> Maybe Checkout'sessionShippingAddressCollection'
      -> Maybe Checkout'sessionSubmitType'
      -> Maybe Checkout'sessionSubscription'Variants
      -> Text
      -> Maybe PaymentPagesCheckoutSessionTaxIdCollection
      -> Maybe Checkout'sessionTotalDetails'
      -> Maybe Text
      -> Checkout'session)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
Data.Aeson.Types.FromJSON..: Text
"cancel_url")) Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe Checkout'sessionCustomer'Variants
   -> Maybe Checkout'sessionCustomerDetails'
   -> Maybe Text
   -> Text
   -> Maybe Checkout'sessionLineItems'
   -> Bool
   -> Maybe Checkout'sessionLocale'
   -> Maybe Object
   -> Checkout'sessionMode'
   -> Maybe Checkout'sessionPaymentIntent'Variants
   -> Maybe Checkout'sessionPaymentMethodOptions'
   -> [Text]
   -> Checkout'sessionPaymentStatus'
   -> Maybe Checkout'sessionSetupIntent'Variants
   -> Maybe Checkout'sessionShipping'
   -> Maybe Checkout'sessionShippingAddressCollection'
   -> Maybe Checkout'sessionSubmitType'
   -> Maybe Checkout'sessionSubscription'Variants
   -> Text
   -> Maybe PaymentPagesCheckoutSessionTaxIdCollection
   -> Maybe Checkout'sessionTotalDetails'
   -> Maybe Text
   -> Checkout'session)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Checkout'sessionCustomer'Variants
      -> Maybe Checkout'sessionCustomerDetails'
      -> Maybe Text
      -> Text
      -> Maybe Checkout'sessionLineItems'
      -> Bool
      -> Maybe Checkout'sessionLocale'
      -> Maybe Object
      -> Checkout'sessionMode'
      -> Maybe Checkout'sessionPaymentIntent'Variants
      -> Maybe Checkout'sessionPaymentMethodOptions'
      -> [Text]
      -> Checkout'sessionPaymentStatus'
      -> Maybe Checkout'sessionSetupIntent'Variants
      -> Maybe Checkout'sessionShipping'
      -> Maybe Checkout'sessionShippingAddressCollection'
      -> Maybe Checkout'sessionSubmitType'
      -> Maybe Checkout'sessionSubscription'Variants
      -> Text
      -> Maybe PaymentPagesCheckoutSessionTaxIdCollection
      -> Maybe Checkout'sessionTotalDetails'
      -> Maybe Text
      -> Checkout'session)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"client_reference_id")) Parser
  (Maybe Text
   -> Maybe Checkout'sessionCustomer'Variants
   -> Maybe Checkout'sessionCustomerDetails'
   -> Maybe Text
   -> Text
   -> Maybe Checkout'sessionLineItems'
   -> Bool
   -> Maybe Checkout'sessionLocale'
   -> Maybe Object
   -> Checkout'sessionMode'
   -> Maybe Checkout'sessionPaymentIntent'Variants
   -> Maybe Checkout'sessionPaymentMethodOptions'
   -> [Text]
   -> Checkout'sessionPaymentStatus'
   -> Maybe Checkout'sessionSetupIntent'Variants
   -> Maybe Checkout'sessionShipping'
   -> Maybe Checkout'sessionShippingAddressCollection'
   -> Maybe Checkout'sessionSubmitType'
   -> Maybe Checkout'sessionSubscription'Variants
   -> Text
   -> Maybe PaymentPagesCheckoutSessionTaxIdCollection
   -> Maybe Checkout'sessionTotalDetails'
   -> Maybe Text
   -> Checkout'session)
-> Parser (Maybe Text)
-> Parser
     (Maybe Checkout'sessionCustomer'Variants
      -> Maybe Checkout'sessionCustomerDetails'
      -> Maybe Text
      -> Text
      -> Maybe Checkout'sessionLineItems'
      -> Bool
      -> Maybe Checkout'sessionLocale'
      -> Maybe Object
      -> Checkout'sessionMode'
      -> Maybe Checkout'sessionPaymentIntent'Variants
      -> Maybe Checkout'sessionPaymentMethodOptions'
      -> [Text]
      -> Checkout'sessionPaymentStatus'
      -> Maybe Checkout'sessionSetupIntent'Variants
      -> Maybe Checkout'sessionShipping'
      -> Maybe Checkout'sessionShippingAddressCollection'
      -> Maybe Checkout'sessionSubmitType'
      -> Maybe Checkout'sessionSubscription'Variants
      -> Text
      -> Maybe PaymentPagesCheckoutSessionTaxIdCollection
      -> Maybe Checkout'sessionTotalDetails'
      -> Maybe Text
      -> Checkout'session)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"currency")) Parser
  (Maybe Checkout'sessionCustomer'Variants
   -> Maybe Checkout'sessionCustomerDetails'
   -> Maybe Text
   -> Text
   -> Maybe Checkout'sessionLineItems'
   -> Bool
   -> Maybe Checkout'sessionLocale'
   -> Maybe Object
   -> Checkout'sessionMode'
   -> Maybe Checkout'sessionPaymentIntent'Variants
   -> Maybe Checkout'sessionPaymentMethodOptions'
   -> [Text]
   -> Checkout'sessionPaymentStatus'
   -> Maybe Checkout'sessionSetupIntent'Variants
   -> Maybe Checkout'sessionShipping'
   -> Maybe Checkout'sessionShippingAddressCollection'
   -> Maybe Checkout'sessionSubmitType'
   -> Maybe Checkout'sessionSubscription'Variants
   -> Text
   -> Maybe PaymentPagesCheckoutSessionTaxIdCollection
   -> Maybe Checkout'sessionTotalDetails'
   -> Maybe Text
   -> Checkout'session)
-> Parser (Maybe Checkout'sessionCustomer'Variants)
-> Parser
     (Maybe Checkout'sessionCustomerDetails'
      -> Maybe Text
      -> Text
      -> Maybe Checkout'sessionLineItems'
      -> Bool
      -> Maybe Checkout'sessionLocale'
      -> Maybe Object
      -> Checkout'sessionMode'
      -> Maybe Checkout'sessionPaymentIntent'Variants
      -> Maybe Checkout'sessionPaymentMethodOptions'
      -> [Text]
      -> Checkout'sessionPaymentStatus'
      -> Maybe Checkout'sessionSetupIntent'Variants
      -> Maybe Checkout'sessionShipping'
      -> Maybe Checkout'sessionShippingAddressCollection'
      -> Maybe Checkout'sessionSubmitType'
      -> Maybe Checkout'sessionSubscription'Variants
      -> Text
      -> Maybe PaymentPagesCheckoutSessionTaxIdCollection
      -> Maybe Checkout'sessionTotalDetails'
      -> Maybe Text
      -> Checkout'session)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Checkout'sessionCustomer'Variants)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"customer")) Parser
  (Maybe Checkout'sessionCustomerDetails'
   -> Maybe Text
   -> Text
   -> Maybe Checkout'sessionLineItems'
   -> Bool
   -> Maybe Checkout'sessionLocale'
   -> Maybe Object
   -> Checkout'sessionMode'
   -> Maybe Checkout'sessionPaymentIntent'Variants
   -> Maybe Checkout'sessionPaymentMethodOptions'
   -> [Text]
   -> Checkout'sessionPaymentStatus'
   -> Maybe Checkout'sessionSetupIntent'Variants
   -> Maybe Checkout'sessionShipping'
   -> Maybe Checkout'sessionShippingAddressCollection'
   -> Maybe Checkout'sessionSubmitType'
   -> Maybe Checkout'sessionSubscription'Variants
   -> Text
   -> Maybe PaymentPagesCheckoutSessionTaxIdCollection
   -> Maybe Checkout'sessionTotalDetails'
   -> Maybe Text
   -> Checkout'session)
-> Parser (Maybe Checkout'sessionCustomerDetails')
-> Parser
     (Maybe Text
      -> Text
      -> Maybe Checkout'sessionLineItems'
      -> Bool
      -> Maybe Checkout'sessionLocale'
      -> Maybe Object
      -> Checkout'sessionMode'
      -> Maybe Checkout'sessionPaymentIntent'Variants
      -> Maybe Checkout'sessionPaymentMethodOptions'
      -> [Text]
      -> Checkout'sessionPaymentStatus'
      -> Maybe Checkout'sessionSetupIntent'Variants
      -> Maybe Checkout'sessionShipping'
      -> Maybe Checkout'sessionShippingAddressCollection'
      -> Maybe Checkout'sessionSubmitType'
      -> Maybe Checkout'sessionSubscription'Variants
      -> Text
      -> Maybe PaymentPagesCheckoutSessionTaxIdCollection
      -> Maybe Checkout'sessionTotalDetails'
      -> Maybe Text
      -> Checkout'session)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Checkout'sessionCustomerDetails')
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"customer_details")) Parser
  (Maybe Text
   -> Text
   -> Maybe Checkout'sessionLineItems'
   -> Bool
   -> Maybe Checkout'sessionLocale'
   -> Maybe Object
   -> Checkout'sessionMode'
   -> Maybe Checkout'sessionPaymentIntent'Variants
   -> Maybe Checkout'sessionPaymentMethodOptions'
   -> [Text]
   -> Checkout'sessionPaymentStatus'
   -> Maybe Checkout'sessionSetupIntent'Variants
   -> Maybe Checkout'sessionShipping'
   -> Maybe Checkout'sessionShippingAddressCollection'
   -> Maybe Checkout'sessionSubmitType'
   -> Maybe Checkout'sessionSubscription'Variants
   -> Text
   -> Maybe PaymentPagesCheckoutSessionTaxIdCollection
   -> Maybe Checkout'sessionTotalDetails'
   -> Maybe Text
   -> Checkout'session)
-> Parser (Maybe Text)
-> Parser
     (Text
      -> Maybe Checkout'sessionLineItems'
      -> Bool
      -> Maybe Checkout'sessionLocale'
      -> Maybe Object
      -> Checkout'sessionMode'
      -> Maybe Checkout'sessionPaymentIntent'Variants
      -> Maybe Checkout'sessionPaymentMethodOptions'
      -> [Text]
      -> Checkout'sessionPaymentStatus'
      -> Maybe Checkout'sessionSetupIntent'Variants
      -> Maybe Checkout'sessionShipping'
      -> Maybe Checkout'sessionShippingAddressCollection'
      -> Maybe Checkout'sessionSubmitType'
      -> Maybe Checkout'sessionSubscription'Variants
      -> Text
      -> Maybe PaymentPagesCheckoutSessionTaxIdCollection
      -> Maybe Checkout'sessionTotalDetails'
      -> Maybe Text
      -> Checkout'session)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"customer_email")) Parser
  (Text
   -> Maybe Checkout'sessionLineItems'
   -> Bool
   -> Maybe Checkout'sessionLocale'
   -> Maybe Object
   -> Checkout'sessionMode'
   -> Maybe Checkout'sessionPaymentIntent'Variants
   -> Maybe Checkout'sessionPaymentMethodOptions'
   -> [Text]
   -> Checkout'sessionPaymentStatus'
   -> Maybe Checkout'sessionSetupIntent'Variants
   -> Maybe Checkout'sessionShipping'
   -> Maybe Checkout'sessionShippingAddressCollection'
   -> Maybe Checkout'sessionSubmitType'
   -> Maybe Checkout'sessionSubscription'Variants
   -> Text
   -> Maybe PaymentPagesCheckoutSessionTaxIdCollection
   -> Maybe Checkout'sessionTotalDetails'
   -> Maybe Text
   -> Checkout'session)
-> Parser Text
-> Parser
     (Maybe Checkout'sessionLineItems'
      -> Bool
      -> Maybe Checkout'sessionLocale'
      -> Maybe Object
      -> Checkout'sessionMode'
      -> Maybe Checkout'sessionPaymentIntent'Variants
      -> Maybe Checkout'sessionPaymentMethodOptions'
      -> [Text]
      -> Checkout'sessionPaymentStatus'
      -> Maybe Checkout'sessionSetupIntent'Variants
      -> Maybe Checkout'sessionShipping'
      -> Maybe Checkout'sessionShippingAddressCollection'
      -> Maybe Checkout'sessionSubmitType'
      -> Maybe Checkout'sessionSubscription'Variants
      -> Text
      -> Maybe PaymentPagesCheckoutSessionTaxIdCollection
      -> Maybe Checkout'sessionTotalDetails'
      -> Maybe Text
      -> Checkout'session)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
Data.Aeson.Types.FromJSON..: Text
"id")) Parser
  (Maybe Checkout'sessionLineItems'
   -> Bool
   -> Maybe Checkout'sessionLocale'
   -> Maybe Object
   -> Checkout'sessionMode'
   -> Maybe Checkout'sessionPaymentIntent'Variants
   -> Maybe Checkout'sessionPaymentMethodOptions'
   -> [Text]
   -> Checkout'sessionPaymentStatus'
   -> Maybe Checkout'sessionSetupIntent'Variants
   -> Maybe Checkout'sessionShipping'
   -> Maybe Checkout'sessionShippingAddressCollection'
   -> Maybe Checkout'sessionSubmitType'
   -> Maybe Checkout'sessionSubscription'Variants
   -> Text
   -> Maybe PaymentPagesCheckoutSessionTaxIdCollection
   -> Maybe Checkout'sessionTotalDetails'
   -> Maybe Text
   -> Checkout'session)
-> Parser (Maybe Checkout'sessionLineItems')
-> Parser
     (Bool
      -> Maybe Checkout'sessionLocale'
      -> Maybe Object
      -> Checkout'sessionMode'
      -> Maybe Checkout'sessionPaymentIntent'Variants
      -> Maybe Checkout'sessionPaymentMethodOptions'
      -> [Text]
      -> Checkout'sessionPaymentStatus'
      -> Maybe Checkout'sessionSetupIntent'Variants
      -> Maybe Checkout'sessionShipping'
      -> Maybe Checkout'sessionShippingAddressCollection'
      -> Maybe Checkout'sessionSubmitType'
      -> Maybe Checkout'sessionSubscription'Variants
      -> Text
      -> Maybe PaymentPagesCheckoutSessionTaxIdCollection
      -> Maybe Checkout'sessionTotalDetails'
      -> Maybe Text
      -> Checkout'session)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Checkout'sessionLineItems')
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"line_items")) Parser
  (Bool
   -> Maybe Checkout'sessionLocale'
   -> Maybe Object
   -> Checkout'sessionMode'
   -> Maybe Checkout'sessionPaymentIntent'Variants
   -> Maybe Checkout'sessionPaymentMethodOptions'
   -> [Text]
   -> Checkout'sessionPaymentStatus'
   -> Maybe Checkout'sessionSetupIntent'Variants
   -> Maybe Checkout'sessionShipping'
   -> Maybe Checkout'sessionShippingAddressCollection'
   -> Maybe Checkout'sessionSubmitType'
   -> Maybe Checkout'sessionSubscription'Variants
   -> Text
   -> Maybe PaymentPagesCheckoutSessionTaxIdCollection
   -> Maybe Checkout'sessionTotalDetails'
   -> Maybe Text
   -> Checkout'session)
-> Parser Bool
-> Parser
     (Maybe Checkout'sessionLocale'
      -> Maybe Object
      -> Checkout'sessionMode'
      -> Maybe Checkout'sessionPaymentIntent'Variants
      -> Maybe Checkout'sessionPaymentMethodOptions'
      -> [Text]
      -> Checkout'sessionPaymentStatus'
      -> Maybe Checkout'sessionSetupIntent'Variants
      -> Maybe Checkout'sessionShipping'
      -> Maybe Checkout'sessionShippingAddressCollection'
      -> Maybe Checkout'sessionSubmitType'
      -> Maybe Checkout'sessionSubscription'Variants
      -> Text
      -> Maybe PaymentPagesCheckoutSessionTaxIdCollection
      -> Maybe Checkout'sessionTotalDetails'
      -> Maybe Text
      -> Checkout'session)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser Bool
forall a. FromJSON a => Object -> Text -> Parser a
Data.Aeson.Types.FromJSON..: Text
"livemode")) Parser
  (Maybe Checkout'sessionLocale'
   -> Maybe Object
   -> Checkout'sessionMode'
   -> Maybe Checkout'sessionPaymentIntent'Variants
   -> Maybe Checkout'sessionPaymentMethodOptions'
   -> [Text]
   -> Checkout'sessionPaymentStatus'
   -> Maybe Checkout'sessionSetupIntent'Variants
   -> Maybe Checkout'sessionShipping'
   -> Maybe Checkout'sessionShippingAddressCollection'
   -> Maybe Checkout'sessionSubmitType'
   -> Maybe Checkout'sessionSubscription'Variants
   -> Text
   -> Maybe PaymentPagesCheckoutSessionTaxIdCollection
   -> Maybe Checkout'sessionTotalDetails'
   -> Maybe Text
   -> Checkout'session)
-> Parser (Maybe Checkout'sessionLocale')
-> Parser
     (Maybe Object
      -> Checkout'sessionMode'
      -> Maybe Checkout'sessionPaymentIntent'Variants
      -> Maybe Checkout'sessionPaymentMethodOptions'
      -> [Text]
      -> Checkout'sessionPaymentStatus'
      -> Maybe Checkout'sessionSetupIntent'Variants
      -> Maybe Checkout'sessionShipping'
      -> Maybe Checkout'sessionShippingAddressCollection'
      -> Maybe Checkout'sessionSubmitType'
      -> Maybe Checkout'sessionSubscription'Variants
      -> Text
      -> Maybe PaymentPagesCheckoutSessionTaxIdCollection
      -> Maybe Checkout'sessionTotalDetails'
      -> Maybe Text
      -> Checkout'session)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Checkout'sessionLocale')
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"locale")) Parser
  (Maybe Object
   -> Checkout'sessionMode'
   -> Maybe Checkout'sessionPaymentIntent'Variants
   -> Maybe Checkout'sessionPaymentMethodOptions'
   -> [Text]
   -> Checkout'sessionPaymentStatus'
   -> Maybe Checkout'sessionSetupIntent'Variants
   -> Maybe Checkout'sessionShipping'
   -> Maybe Checkout'sessionShippingAddressCollection'
   -> Maybe Checkout'sessionSubmitType'
   -> Maybe Checkout'sessionSubscription'Variants
   -> Text
   -> Maybe PaymentPagesCheckoutSessionTaxIdCollection
   -> Maybe Checkout'sessionTotalDetails'
   -> Maybe Text
   -> Checkout'session)
-> Parser (Maybe Object)
-> Parser
     (Checkout'sessionMode'
      -> Maybe Checkout'sessionPaymentIntent'Variants
      -> Maybe Checkout'sessionPaymentMethodOptions'
      -> [Text]
      -> Checkout'sessionPaymentStatus'
      -> Maybe Checkout'sessionSetupIntent'Variants
      -> Maybe Checkout'sessionShipping'
      -> Maybe Checkout'sessionShippingAddressCollection'
      -> Maybe Checkout'sessionSubmitType'
      -> Maybe Checkout'sessionSubscription'Variants
      -> Text
      -> Maybe PaymentPagesCheckoutSessionTaxIdCollection
      -> Maybe Checkout'sessionTotalDetails'
      -> Maybe Text
      -> Checkout'session)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Object)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"metadata")) Parser
  (Checkout'sessionMode'
   -> Maybe Checkout'sessionPaymentIntent'Variants
   -> Maybe Checkout'sessionPaymentMethodOptions'
   -> [Text]
   -> Checkout'sessionPaymentStatus'
   -> Maybe Checkout'sessionSetupIntent'Variants
   -> Maybe Checkout'sessionShipping'
   -> Maybe Checkout'sessionShippingAddressCollection'
   -> Maybe Checkout'sessionSubmitType'
   -> Maybe Checkout'sessionSubscription'Variants
   -> Text
   -> Maybe PaymentPagesCheckoutSessionTaxIdCollection
   -> Maybe Checkout'sessionTotalDetails'
   -> Maybe Text
   -> Checkout'session)
-> Parser Checkout'sessionMode'
-> Parser
     (Maybe Checkout'sessionPaymentIntent'Variants
      -> Maybe Checkout'sessionPaymentMethodOptions'
      -> [Text]
      -> Checkout'sessionPaymentStatus'
      -> Maybe Checkout'sessionSetupIntent'Variants
      -> Maybe Checkout'sessionShipping'
      -> Maybe Checkout'sessionShippingAddressCollection'
      -> Maybe Checkout'sessionSubmitType'
      -> Maybe Checkout'sessionSubscription'Variants
      -> Text
      -> Maybe PaymentPagesCheckoutSessionTaxIdCollection
      -> Maybe Checkout'sessionTotalDetails'
      -> Maybe Text
      -> Checkout'session)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser Checkout'sessionMode'
forall a. FromJSON a => Object -> Text -> Parser a
Data.Aeson.Types.FromJSON..: Text
"mode")) Parser
  (Maybe Checkout'sessionPaymentIntent'Variants
   -> Maybe Checkout'sessionPaymentMethodOptions'
   -> [Text]
   -> Checkout'sessionPaymentStatus'
   -> Maybe Checkout'sessionSetupIntent'Variants
   -> Maybe Checkout'sessionShipping'
   -> Maybe Checkout'sessionShippingAddressCollection'
   -> Maybe Checkout'sessionSubmitType'
   -> Maybe Checkout'sessionSubscription'Variants
   -> Text
   -> Maybe PaymentPagesCheckoutSessionTaxIdCollection
   -> Maybe Checkout'sessionTotalDetails'
   -> Maybe Text
   -> Checkout'session)
-> Parser (Maybe Checkout'sessionPaymentIntent'Variants)
-> Parser
     (Maybe Checkout'sessionPaymentMethodOptions'
      -> [Text]
      -> Checkout'sessionPaymentStatus'
      -> Maybe Checkout'sessionSetupIntent'Variants
      -> Maybe Checkout'sessionShipping'
      -> Maybe Checkout'sessionShippingAddressCollection'
      -> Maybe Checkout'sessionSubmitType'
      -> Maybe Checkout'sessionSubscription'Variants
      -> Text
      -> Maybe PaymentPagesCheckoutSessionTaxIdCollection
      -> Maybe Checkout'sessionTotalDetails'
      -> Maybe Text
      -> Checkout'session)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text -> Parser (Maybe Checkout'sessionPaymentIntent'Variants)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"payment_intent")) Parser
  (Maybe Checkout'sessionPaymentMethodOptions'
   -> [Text]
   -> Checkout'sessionPaymentStatus'
   -> Maybe Checkout'sessionSetupIntent'Variants
   -> Maybe Checkout'sessionShipping'
   -> Maybe Checkout'sessionShippingAddressCollection'
   -> Maybe Checkout'sessionSubmitType'
   -> Maybe Checkout'sessionSubscription'Variants
   -> Text
   -> Maybe PaymentPagesCheckoutSessionTaxIdCollection
   -> Maybe Checkout'sessionTotalDetails'
   -> Maybe Text
   -> Checkout'session)
-> Parser (Maybe Checkout'sessionPaymentMethodOptions')
-> Parser
     ([Text]
      -> Checkout'sessionPaymentStatus'
      -> Maybe Checkout'sessionSetupIntent'Variants
      -> Maybe Checkout'sessionShipping'
      -> Maybe Checkout'sessionShippingAddressCollection'
      -> Maybe Checkout'sessionSubmitType'
      -> Maybe Checkout'sessionSubscription'Variants
      -> Text
      -> Maybe PaymentPagesCheckoutSessionTaxIdCollection
      -> Maybe Checkout'sessionTotalDetails'
      -> Maybe Text
      -> Checkout'session)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text -> Parser (Maybe Checkout'sessionPaymentMethodOptions')
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"payment_method_options")) Parser
  ([Text]
   -> Checkout'sessionPaymentStatus'
   -> Maybe Checkout'sessionSetupIntent'Variants
   -> Maybe Checkout'sessionShipping'
   -> Maybe Checkout'sessionShippingAddressCollection'
   -> Maybe Checkout'sessionSubmitType'
   -> Maybe Checkout'sessionSubscription'Variants
   -> Text
   -> Maybe PaymentPagesCheckoutSessionTaxIdCollection
   -> Maybe Checkout'sessionTotalDetails'
   -> Maybe Text
   -> Checkout'session)
-> Parser [Text]
-> Parser
     (Checkout'sessionPaymentStatus'
      -> Maybe Checkout'sessionSetupIntent'Variants
      -> Maybe Checkout'sessionShipping'
      -> Maybe Checkout'sessionShippingAddressCollection'
      -> Maybe Checkout'sessionSubmitType'
      -> Maybe Checkout'sessionSubscription'Variants
      -> Text
      -> Maybe PaymentPagesCheckoutSessionTaxIdCollection
      -> Maybe Checkout'sessionTotalDetails'
      -> Maybe Text
      -> Checkout'session)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser [Text]
forall a. FromJSON a => Object -> Text -> Parser a
Data.Aeson.Types.FromJSON..: Text
"payment_method_types")) Parser
  (Checkout'sessionPaymentStatus'
   -> Maybe Checkout'sessionSetupIntent'Variants
   -> Maybe Checkout'sessionShipping'
   -> Maybe Checkout'sessionShippingAddressCollection'
   -> Maybe Checkout'sessionSubmitType'
   -> Maybe Checkout'sessionSubscription'Variants
   -> Text
   -> Maybe PaymentPagesCheckoutSessionTaxIdCollection
   -> Maybe Checkout'sessionTotalDetails'
   -> Maybe Text
   -> Checkout'session)
-> Parser Checkout'sessionPaymentStatus'
-> Parser
     (Maybe Checkout'sessionSetupIntent'Variants
      -> Maybe Checkout'sessionShipping'
      -> Maybe Checkout'sessionShippingAddressCollection'
      -> Maybe Checkout'sessionSubmitType'
      -> Maybe Checkout'sessionSubscription'Variants
      -> Text
      -> Maybe PaymentPagesCheckoutSessionTaxIdCollection
      -> Maybe Checkout'sessionTotalDetails'
      -> Maybe Text
      -> Checkout'session)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser Checkout'sessionPaymentStatus'
forall a. FromJSON a => Object -> Text -> Parser a
Data.Aeson.Types.FromJSON..: Text
"payment_status")) Parser
  (Maybe Checkout'sessionSetupIntent'Variants
   -> Maybe Checkout'sessionShipping'
   -> Maybe Checkout'sessionShippingAddressCollection'
   -> Maybe Checkout'sessionSubmitType'
   -> Maybe Checkout'sessionSubscription'Variants
   -> Text
   -> Maybe PaymentPagesCheckoutSessionTaxIdCollection
   -> Maybe Checkout'sessionTotalDetails'
   -> Maybe Text
   -> Checkout'session)
-> Parser (Maybe Checkout'sessionSetupIntent'Variants)
-> Parser
     (Maybe Checkout'sessionShipping'
      -> Maybe Checkout'sessionShippingAddressCollection'
      -> Maybe Checkout'sessionSubmitType'
      -> Maybe Checkout'sessionSubscription'Variants
      -> Text
      -> Maybe PaymentPagesCheckoutSessionTaxIdCollection
      -> Maybe Checkout'sessionTotalDetails'
      -> Maybe Text
      -> Checkout'session)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text -> Parser (Maybe Checkout'sessionSetupIntent'Variants)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"setup_intent")) Parser
  (Maybe Checkout'sessionShipping'
   -> Maybe Checkout'sessionShippingAddressCollection'
   -> Maybe Checkout'sessionSubmitType'
   -> Maybe Checkout'sessionSubscription'Variants
   -> Text
   -> Maybe PaymentPagesCheckoutSessionTaxIdCollection
   -> Maybe Checkout'sessionTotalDetails'
   -> Maybe Text
   -> Checkout'session)
-> Parser (Maybe Checkout'sessionShipping')
-> Parser
     (Maybe Checkout'sessionShippingAddressCollection'
      -> Maybe Checkout'sessionSubmitType'
      -> Maybe Checkout'sessionSubscription'Variants
      -> Text
      -> Maybe PaymentPagesCheckoutSessionTaxIdCollection
      -> Maybe Checkout'sessionTotalDetails'
      -> Maybe Text
      -> Checkout'session)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Checkout'sessionShipping')
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"shipping")) Parser
  (Maybe Checkout'sessionShippingAddressCollection'
   -> Maybe Checkout'sessionSubmitType'
   -> Maybe Checkout'sessionSubscription'Variants
   -> Text
   -> Maybe PaymentPagesCheckoutSessionTaxIdCollection
   -> Maybe Checkout'sessionTotalDetails'
   -> Maybe Text
   -> Checkout'session)
-> Parser (Maybe Checkout'sessionShippingAddressCollection')
-> Parser
     (Maybe Checkout'sessionSubmitType'
      -> Maybe Checkout'sessionSubscription'Variants
      -> Text
      -> Maybe PaymentPagesCheckoutSessionTaxIdCollection
      -> Maybe Checkout'sessionTotalDetails'
      -> Maybe Text
      -> Checkout'session)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser (Maybe Checkout'sessionShippingAddressCollection')
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"shipping_address_collection")) Parser
  (Maybe Checkout'sessionSubmitType'
   -> Maybe Checkout'sessionSubscription'Variants
   -> Text
   -> Maybe PaymentPagesCheckoutSessionTaxIdCollection
   -> Maybe Checkout'sessionTotalDetails'
   -> Maybe Text
   -> Checkout'session)
-> Parser (Maybe Checkout'sessionSubmitType')
-> Parser
     (Maybe Checkout'sessionSubscription'Variants
      -> Text
      -> Maybe PaymentPagesCheckoutSessionTaxIdCollection
      -> Maybe Checkout'sessionTotalDetails'
      -> Maybe Text
      -> Checkout'session)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Checkout'sessionSubmitType')
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"submit_type")) Parser
  (Maybe Checkout'sessionSubscription'Variants
   -> Text
   -> Maybe PaymentPagesCheckoutSessionTaxIdCollection
   -> Maybe Checkout'sessionTotalDetails'
   -> Maybe Text
   -> Checkout'session)
-> Parser (Maybe Checkout'sessionSubscription'Variants)
-> Parser
     (Text
      -> Maybe PaymentPagesCheckoutSessionTaxIdCollection
      -> Maybe Checkout'sessionTotalDetails'
      -> Maybe Text
      -> Checkout'session)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text -> Parser (Maybe Checkout'sessionSubscription'Variants)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"subscription")) Parser
  (Text
   -> Maybe PaymentPagesCheckoutSessionTaxIdCollection
   -> Maybe Checkout'sessionTotalDetails'
   -> Maybe Text
   -> Checkout'session)
-> Parser Text
-> Parser
     (Maybe PaymentPagesCheckoutSessionTaxIdCollection
      -> Maybe Checkout'sessionTotalDetails'
      -> Maybe Text
      -> Checkout'session)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
Data.Aeson.Types.FromJSON..: Text
"success_url")) Parser
  (Maybe PaymentPagesCheckoutSessionTaxIdCollection
   -> Maybe Checkout'sessionTotalDetails'
   -> Maybe Text
   -> Checkout'session)
-> Parser (Maybe PaymentPagesCheckoutSessionTaxIdCollection)
-> Parser
     (Maybe Checkout'sessionTotalDetails'
      -> Maybe Text -> Checkout'session)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser (Maybe PaymentPagesCheckoutSessionTaxIdCollection)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"tax_id_collection")) Parser
  (Maybe Checkout'sessionTotalDetails'
   -> Maybe Text -> Checkout'session)
-> Parser (Maybe Checkout'sessionTotalDetails')
-> Parser (Maybe Text -> Checkout'session)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Checkout'sessionTotalDetails')
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"total_details")) Parser (Maybe Text -> Checkout'session)
-> Parser (Maybe Text) -> Parser Checkout'session
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"url"))

-- | Create a new 'Checkout'session' with all required fields.
mkCheckout'session ::
  -- | 'checkout'sessionAutomaticTax'
  PaymentPagesCheckoutSessionAutomaticTax ->
  -- | 'checkout'sessionCancelUrl'
  Data.Text.Internal.Text ->
  -- | 'checkout'sessionId'
  Data.Text.Internal.Text ->
  -- | 'checkout'sessionLivemode'
  GHC.Types.Bool ->
  -- | 'checkout'sessionMode'
  Checkout'sessionMode' ->
  -- | 'checkout'sessionPaymentMethodTypes'
  [Data.Text.Internal.Text] ->
  -- | 'checkout'sessionPaymentStatus'
  Checkout'sessionPaymentStatus' ->
  -- | 'checkout'sessionSuccessUrl'
  Data.Text.Internal.Text ->
  Checkout'session
mkCheckout'session :: PaymentPagesCheckoutSessionAutomaticTax
-> Text
-> Text
-> Bool
-> Checkout'sessionMode'
-> [Text]
-> Checkout'sessionPaymentStatus'
-> Text
-> Checkout'session
mkCheckout'session PaymentPagesCheckoutSessionAutomaticTax
checkout'sessionAutomaticTax Text
checkout'sessionCancelUrl Text
checkout'sessionId Bool
checkout'sessionLivemode Checkout'sessionMode'
checkout'sessionMode [Text]
checkout'sessionPaymentMethodTypes Checkout'sessionPaymentStatus'
checkout'sessionPaymentStatus Text
checkout'sessionSuccessUrl =
  Checkout'session :: Maybe Bool
-> Maybe Int
-> Maybe Int
-> PaymentPagesCheckoutSessionAutomaticTax
-> Maybe Checkout'sessionBillingAddressCollection'
-> Text
-> Maybe Text
-> Maybe Text
-> Maybe Checkout'sessionCustomer'Variants
-> Maybe Checkout'sessionCustomerDetails'
-> Maybe Text
-> Text
-> Maybe Checkout'sessionLineItems'
-> Bool
-> Maybe Checkout'sessionLocale'
-> Maybe Object
-> Checkout'sessionMode'
-> Maybe Checkout'sessionPaymentIntent'Variants
-> Maybe Checkout'sessionPaymentMethodOptions'
-> [Text]
-> Checkout'sessionPaymentStatus'
-> Maybe Checkout'sessionSetupIntent'Variants
-> Maybe Checkout'sessionShipping'
-> Maybe Checkout'sessionShippingAddressCollection'
-> Maybe Checkout'sessionSubmitType'
-> Maybe Checkout'sessionSubscription'Variants
-> Text
-> Maybe PaymentPagesCheckoutSessionTaxIdCollection
-> Maybe Checkout'sessionTotalDetails'
-> Maybe Text
-> Checkout'session
Checkout'session
    { checkout'sessionAllowPromotionCodes :: Maybe Bool
checkout'sessionAllowPromotionCodes = Maybe Bool
forall a. Maybe a
GHC.Maybe.Nothing,
      checkout'sessionAmountSubtotal :: Maybe Int
checkout'sessionAmountSubtotal = Maybe Int
forall a. Maybe a
GHC.Maybe.Nothing,
      checkout'sessionAmountTotal :: Maybe Int
checkout'sessionAmountTotal = Maybe Int
forall a. Maybe a
GHC.Maybe.Nothing,
      checkout'sessionAutomaticTax :: PaymentPagesCheckoutSessionAutomaticTax
checkout'sessionAutomaticTax = PaymentPagesCheckoutSessionAutomaticTax
checkout'sessionAutomaticTax,
      checkout'sessionBillingAddressCollection :: Maybe Checkout'sessionBillingAddressCollection'
checkout'sessionBillingAddressCollection = Maybe Checkout'sessionBillingAddressCollection'
forall a. Maybe a
GHC.Maybe.Nothing,
      checkout'sessionCancelUrl :: Text
checkout'sessionCancelUrl = Text
checkout'sessionCancelUrl,
      checkout'sessionClientReferenceId :: Maybe Text
checkout'sessionClientReferenceId = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      checkout'sessionCurrency :: Maybe Text
checkout'sessionCurrency = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      checkout'sessionCustomer :: Maybe Checkout'sessionCustomer'Variants
checkout'sessionCustomer = Maybe Checkout'sessionCustomer'Variants
forall a. Maybe a
GHC.Maybe.Nothing,
      checkout'sessionCustomerDetails :: Maybe Checkout'sessionCustomerDetails'
checkout'sessionCustomerDetails = Maybe Checkout'sessionCustomerDetails'
forall a. Maybe a
GHC.Maybe.Nothing,
      checkout'sessionCustomerEmail :: Maybe Text
checkout'sessionCustomerEmail = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      checkout'sessionId :: Text
checkout'sessionId = Text
checkout'sessionId,
      checkout'sessionLineItems :: Maybe Checkout'sessionLineItems'
checkout'sessionLineItems = Maybe Checkout'sessionLineItems'
forall a. Maybe a
GHC.Maybe.Nothing,
      checkout'sessionLivemode :: Bool
checkout'sessionLivemode = Bool
checkout'sessionLivemode,
      checkout'sessionLocale :: Maybe Checkout'sessionLocale'
checkout'sessionLocale = Maybe Checkout'sessionLocale'
forall a. Maybe a
GHC.Maybe.Nothing,
      checkout'sessionMetadata :: Maybe Object
checkout'sessionMetadata = Maybe Object
forall a. Maybe a
GHC.Maybe.Nothing,
      checkout'sessionMode :: Checkout'sessionMode'
checkout'sessionMode = Checkout'sessionMode'
checkout'sessionMode,
      checkout'sessionPaymentIntent :: Maybe Checkout'sessionPaymentIntent'Variants
checkout'sessionPaymentIntent = Maybe Checkout'sessionPaymentIntent'Variants
forall a. Maybe a
GHC.Maybe.Nothing,
      checkout'sessionPaymentMethodOptions :: Maybe Checkout'sessionPaymentMethodOptions'
checkout'sessionPaymentMethodOptions = Maybe Checkout'sessionPaymentMethodOptions'
forall a. Maybe a
GHC.Maybe.Nothing,
      checkout'sessionPaymentMethodTypes :: [Text]
checkout'sessionPaymentMethodTypes = [Text]
checkout'sessionPaymentMethodTypes,
      checkout'sessionPaymentStatus :: Checkout'sessionPaymentStatus'
checkout'sessionPaymentStatus = Checkout'sessionPaymentStatus'
checkout'sessionPaymentStatus,
      checkout'sessionSetupIntent :: Maybe Checkout'sessionSetupIntent'Variants
checkout'sessionSetupIntent = Maybe Checkout'sessionSetupIntent'Variants
forall a. Maybe a
GHC.Maybe.Nothing,
      checkout'sessionShipping :: Maybe Checkout'sessionShipping'
checkout'sessionShipping = Maybe Checkout'sessionShipping'
forall a. Maybe a
GHC.Maybe.Nothing,
      checkout'sessionShippingAddressCollection :: Maybe Checkout'sessionShippingAddressCollection'
checkout'sessionShippingAddressCollection = Maybe Checkout'sessionShippingAddressCollection'
forall a. Maybe a
GHC.Maybe.Nothing,
      checkout'sessionSubmitType :: Maybe Checkout'sessionSubmitType'
checkout'sessionSubmitType = Maybe Checkout'sessionSubmitType'
forall a. Maybe a
GHC.Maybe.Nothing,
      checkout'sessionSubscription :: Maybe Checkout'sessionSubscription'Variants
checkout'sessionSubscription = Maybe Checkout'sessionSubscription'Variants
forall a. Maybe a
GHC.Maybe.Nothing,
      checkout'sessionSuccessUrl :: Text
checkout'sessionSuccessUrl = Text
checkout'sessionSuccessUrl,
      checkout'sessionTaxIdCollection :: Maybe PaymentPagesCheckoutSessionTaxIdCollection
checkout'sessionTaxIdCollection = Maybe PaymentPagesCheckoutSessionTaxIdCollection
forall a. Maybe a
GHC.Maybe.Nothing,
      checkout'sessionTotalDetails :: Maybe Checkout'sessionTotalDetails'
checkout'sessionTotalDetails = Maybe Checkout'sessionTotalDetails'
forall a. Maybe a
GHC.Maybe.Nothing,
      checkout'sessionUrl :: Maybe Text
checkout'sessionUrl = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing
    }

-- | Defines the enum schema located at @components.schemas.checkout.session.properties.billing_address_collection@ in the specification.
--
-- Describes whether Checkout should collect the customer\'s billing address.
data Checkout'sessionBillingAddressCollection'
  = -- | This case is used if the value encountered during decoding does not match any of the provided cases in the specification.
    Checkout'sessionBillingAddressCollection'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.
    Checkout'sessionBillingAddressCollection'Typed Data.Text.Internal.Text
  | -- | Represents the JSON value @"auto"@
    Checkout'sessionBillingAddressCollection'EnumAuto
  | -- | Represents the JSON value @"required"@
    Checkout'sessionBillingAddressCollection'EnumRequired
  deriving (Int -> Checkout'sessionBillingAddressCollection' -> ShowS
[Checkout'sessionBillingAddressCollection'] -> ShowS
Checkout'sessionBillingAddressCollection' -> String
(Int -> Checkout'sessionBillingAddressCollection' -> ShowS)
-> (Checkout'sessionBillingAddressCollection' -> String)
-> ([Checkout'sessionBillingAddressCollection'] -> ShowS)
-> Show Checkout'sessionBillingAddressCollection'
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [Checkout'sessionBillingAddressCollection'] -> ShowS
$cshowList :: [Checkout'sessionBillingAddressCollection'] -> ShowS
show :: Checkout'sessionBillingAddressCollection' -> String
$cshow :: Checkout'sessionBillingAddressCollection' -> String
showsPrec :: Int -> Checkout'sessionBillingAddressCollection' -> ShowS
$cshowsPrec :: Int -> Checkout'sessionBillingAddressCollection' -> ShowS
GHC.Show.Show, Checkout'sessionBillingAddressCollection'
-> Checkout'sessionBillingAddressCollection' -> Bool
(Checkout'sessionBillingAddressCollection'
 -> Checkout'sessionBillingAddressCollection' -> Bool)
-> (Checkout'sessionBillingAddressCollection'
    -> Checkout'sessionBillingAddressCollection' -> Bool)
-> Eq Checkout'sessionBillingAddressCollection'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: Checkout'sessionBillingAddressCollection'
-> Checkout'sessionBillingAddressCollection' -> Bool
$c/= :: Checkout'sessionBillingAddressCollection'
-> Checkout'sessionBillingAddressCollection' -> Bool
== :: Checkout'sessionBillingAddressCollection'
-> Checkout'sessionBillingAddressCollection' -> Bool
$c== :: Checkout'sessionBillingAddressCollection'
-> Checkout'sessionBillingAddressCollection' -> Bool
GHC.Classes.Eq)

instance Data.Aeson.Types.ToJSON.ToJSON Checkout'sessionBillingAddressCollection' where
  toJSON :: Checkout'sessionBillingAddressCollection' -> Value
toJSON (Checkout'sessionBillingAddressCollection'Other Value
val) = Value
val
  toJSON (Checkout'sessionBillingAddressCollection'Typed Text
val) = Text -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON Text
val
  toJSON (Checkout'sessionBillingAddressCollection'
Checkout'sessionBillingAddressCollection'EnumAuto) = Value
"auto"
  toJSON (Checkout'sessionBillingAddressCollection'
Checkout'sessionBillingAddressCollection'EnumRequired) = Value
"required"

instance Data.Aeson.Types.FromJSON.FromJSON Checkout'sessionBillingAddressCollection' where
  parseJSON :: Value -> Parser Checkout'sessionBillingAddressCollection'
parseJSON Value
val =
    Checkout'sessionBillingAddressCollection'
-> Parser Checkout'sessionBillingAddressCollection'
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure
      ( if
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"auto" -> Checkout'sessionBillingAddressCollection'
Checkout'sessionBillingAddressCollection'EnumAuto
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"required" -> Checkout'sessionBillingAddressCollection'
Checkout'sessionBillingAddressCollection'EnumRequired
            | Bool
GHC.Base.otherwise -> Value -> Checkout'sessionBillingAddressCollection'
Checkout'sessionBillingAddressCollection'Other Value
val
      )

-- | Defines the oneOf schema located at @components.schemas.checkout.session.properties.customer.anyOf@ in the specification.
--
-- The ID of the customer for this Session.
-- For Checkout Sessions in \`payment\` or \`subscription\` mode, Checkout
-- will create a new customer object based on information provided
-- during the payment flow unless an existing customer was provided when
-- the Session was created.
data Checkout'sessionCustomer'Variants
  = Checkout'sessionCustomer'Text Data.Text.Internal.Text
  | Checkout'sessionCustomer'Customer Customer
  | Checkout'sessionCustomer'DeletedCustomer DeletedCustomer
  deriving (Int -> Checkout'sessionCustomer'Variants -> ShowS
[Checkout'sessionCustomer'Variants] -> ShowS
Checkout'sessionCustomer'Variants -> String
(Int -> Checkout'sessionCustomer'Variants -> ShowS)
-> (Checkout'sessionCustomer'Variants -> String)
-> ([Checkout'sessionCustomer'Variants] -> ShowS)
-> Show Checkout'sessionCustomer'Variants
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [Checkout'sessionCustomer'Variants] -> ShowS
$cshowList :: [Checkout'sessionCustomer'Variants] -> ShowS
show :: Checkout'sessionCustomer'Variants -> String
$cshow :: Checkout'sessionCustomer'Variants -> String
showsPrec :: Int -> Checkout'sessionCustomer'Variants -> ShowS
$cshowsPrec :: Int -> Checkout'sessionCustomer'Variants -> ShowS
GHC.Show.Show, Checkout'sessionCustomer'Variants
-> Checkout'sessionCustomer'Variants -> Bool
(Checkout'sessionCustomer'Variants
 -> Checkout'sessionCustomer'Variants -> Bool)
-> (Checkout'sessionCustomer'Variants
    -> Checkout'sessionCustomer'Variants -> Bool)
-> Eq Checkout'sessionCustomer'Variants
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: Checkout'sessionCustomer'Variants
-> Checkout'sessionCustomer'Variants -> Bool
$c/= :: Checkout'sessionCustomer'Variants
-> Checkout'sessionCustomer'Variants -> Bool
== :: Checkout'sessionCustomer'Variants
-> Checkout'sessionCustomer'Variants -> Bool
$c== :: Checkout'sessionCustomer'Variants
-> Checkout'sessionCustomer'Variants -> Bool
GHC.Classes.Eq)

instance Data.Aeson.Types.ToJSON.ToJSON Checkout'sessionCustomer'Variants where
  toJSON :: Checkout'sessionCustomer'Variants -> Value
toJSON (Checkout'sessionCustomer'Text Text
a) = Text -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON Text
a
  toJSON (Checkout'sessionCustomer'Customer Customer
a) = Customer -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON Customer
a
  toJSON (Checkout'sessionCustomer'DeletedCustomer DeletedCustomer
a) = DeletedCustomer -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON DeletedCustomer
a

instance Data.Aeson.Types.FromJSON.FromJSON Checkout'sessionCustomer'Variants where
  parseJSON :: Value -> Parser Checkout'sessionCustomer'Variants
parseJSON Value
val = case (Text -> Checkout'sessionCustomer'Variants
Checkout'sessionCustomer'Text (Text -> Checkout'sessionCustomer'Variants)
-> Result Text -> Result Checkout'sessionCustomer'Variants
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Data.Functor.<$> Value -> Result Text
forall a. FromJSON a => Value -> Result a
Data.Aeson.Types.FromJSON.fromJSON Value
val) Result Checkout'sessionCustomer'Variants
-> Result Checkout'sessionCustomer'Variants
-> Result Checkout'sessionCustomer'Variants
forall (f :: * -> *) a. Alternative f => f a -> f a -> f a
GHC.Base.<|> ((Customer -> Checkout'sessionCustomer'Variants
Checkout'sessionCustomer'Customer (Customer -> Checkout'sessionCustomer'Variants)
-> Result Customer -> Result Checkout'sessionCustomer'Variants
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Data.Functor.<$> Value -> Result Customer
forall a. FromJSON a => Value -> Result a
Data.Aeson.Types.FromJSON.fromJSON Value
val) Result Checkout'sessionCustomer'Variants
-> Result Checkout'sessionCustomer'Variants
-> Result Checkout'sessionCustomer'Variants
forall (f :: * -> *) a. Alternative f => f a -> f a -> f a
GHC.Base.<|> ((DeletedCustomer -> Checkout'sessionCustomer'Variants
Checkout'sessionCustomer'DeletedCustomer (DeletedCustomer -> Checkout'sessionCustomer'Variants)
-> Result DeletedCustomer
-> Result Checkout'sessionCustomer'Variants
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Data.Functor.<$> Value -> Result DeletedCustomer
forall a. FromJSON a => Value -> Result a
Data.Aeson.Types.FromJSON.fromJSON Value
val) Result Checkout'sessionCustomer'Variants
-> Result Checkout'sessionCustomer'Variants
-> Result Checkout'sessionCustomer'Variants
forall (f :: * -> *) a. Alternative f => f a -> f a -> f a
GHC.Base.<|> String -> Result Checkout'sessionCustomer'Variants
forall a. String -> Result a
Data.Aeson.Types.Internal.Error String
"No variant matched")) of
    Data.Aeson.Types.Internal.Success Checkout'sessionCustomer'Variants
a -> Checkout'sessionCustomer'Variants
-> Parser Checkout'sessionCustomer'Variants
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure Checkout'sessionCustomer'Variants
a
    Data.Aeson.Types.Internal.Error String
a -> String -> Parser Checkout'sessionCustomer'Variants
forall (m :: * -> *) a. MonadFail m => String -> m a
Control.Monad.Fail.fail String
a

-- | Defines the object schema located at @components.schemas.checkout.session.properties.customer_details.anyOf@ in the specification.
--
-- The customer details including the customer\\\'s tax exempt status and the customer\\\'s tax IDs. Only present on Sessions in \\\`payment\\\` or \\\`subscription\\\` mode.
data Checkout'sessionCustomerDetails' = Checkout'sessionCustomerDetails'
  { -- | email: The customer’s email at time of checkout.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    Checkout'sessionCustomerDetails' -> Maybe Text
checkout'sessionCustomerDetails'Email :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | tax_exempt: The customer’s tax exempt status at time of checkout.
    Checkout'sessionCustomerDetails'
-> Maybe Checkout'sessionCustomerDetails'TaxExempt'
checkout'sessionCustomerDetails'TaxExempt :: (GHC.Maybe.Maybe Checkout'sessionCustomerDetails'TaxExempt'),
    -- | tax_ids: The customer’s tax IDs at time of checkout.
    Checkout'sessionCustomerDetails'
-> Maybe [PaymentPagesCheckoutSessionTaxId]
checkout'sessionCustomerDetails'TaxIds :: (GHC.Maybe.Maybe ([PaymentPagesCheckoutSessionTaxId]))
  }
  deriving
    ( Int -> Checkout'sessionCustomerDetails' -> ShowS
[Checkout'sessionCustomerDetails'] -> ShowS
Checkout'sessionCustomerDetails' -> String
(Int -> Checkout'sessionCustomerDetails' -> ShowS)
-> (Checkout'sessionCustomerDetails' -> String)
-> ([Checkout'sessionCustomerDetails'] -> ShowS)
-> Show Checkout'sessionCustomerDetails'
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [Checkout'sessionCustomerDetails'] -> ShowS
$cshowList :: [Checkout'sessionCustomerDetails'] -> ShowS
show :: Checkout'sessionCustomerDetails' -> String
$cshow :: Checkout'sessionCustomerDetails' -> String
showsPrec :: Int -> Checkout'sessionCustomerDetails' -> ShowS
$cshowsPrec :: Int -> Checkout'sessionCustomerDetails' -> ShowS
GHC.Show.Show,
      Checkout'sessionCustomerDetails'
-> Checkout'sessionCustomerDetails' -> Bool
(Checkout'sessionCustomerDetails'
 -> Checkout'sessionCustomerDetails' -> Bool)
-> (Checkout'sessionCustomerDetails'
    -> Checkout'sessionCustomerDetails' -> Bool)
-> Eq Checkout'sessionCustomerDetails'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: Checkout'sessionCustomerDetails'
-> Checkout'sessionCustomerDetails' -> Bool
$c/= :: Checkout'sessionCustomerDetails'
-> Checkout'sessionCustomerDetails' -> Bool
== :: Checkout'sessionCustomerDetails'
-> Checkout'sessionCustomerDetails' -> Bool
$c== :: Checkout'sessionCustomerDetails'
-> Checkout'sessionCustomerDetails' -> Bool
GHC.Classes.Eq
    )

instance Data.Aeson.Types.ToJSON.ToJSON Checkout'sessionCustomerDetails' where
  toJSON :: Checkout'sessionCustomerDetails' -> Value
toJSON Checkout'sessionCustomerDetails'
obj = [Pair] -> Value
Data.Aeson.Types.Internal.object (Text
"email" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Checkout'sessionCustomerDetails' -> Maybe Text
checkout'sessionCustomerDetails'Email Checkout'sessionCustomerDetails'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"tax_exempt" Text -> Maybe Checkout'sessionCustomerDetails'TaxExempt' -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Checkout'sessionCustomerDetails'
-> Maybe Checkout'sessionCustomerDetails'TaxExempt'
checkout'sessionCustomerDetails'TaxExempt Checkout'sessionCustomerDetails'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"tax_ids" Text -> Maybe [PaymentPagesCheckoutSessionTaxId] -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Checkout'sessionCustomerDetails'
-> Maybe [PaymentPagesCheckoutSessionTaxId]
checkout'sessionCustomerDetails'TaxIds Checkout'sessionCustomerDetails'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: Checkout'sessionCustomerDetails' -> Encoding
toEncoding Checkout'sessionCustomerDetails'
obj = Series -> Encoding
Data.Aeson.Encoding.Internal.pairs ((Text
"email" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Checkout'sessionCustomerDetails' -> Maybe Text
checkout'sessionCustomerDetails'Email Checkout'sessionCustomerDetails'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"tax_exempt" Text -> Maybe Checkout'sessionCustomerDetails'TaxExempt' -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Checkout'sessionCustomerDetails'
-> Maybe Checkout'sessionCustomerDetails'TaxExempt'
checkout'sessionCustomerDetails'TaxExempt Checkout'sessionCustomerDetails'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> (Text
"tax_ids" Text -> Maybe [PaymentPagesCheckoutSessionTaxId] -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Checkout'sessionCustomerDetails'
-> Maybe [PaymentPagesCheckoutSessionTaxId]
checkout'sessionCustomerDetails'TaxIds Checkout'sessionCustomerDetails'
obj)))

instance Data.Aeson.Types.FromJSON.FromJSON Checkout'sessionCustomerDetails' where
  parseJSON :: Value -> Parser Checkout'sessionCustomerDetails'
parseJSON = String
-> (Object -> Parser Checkout'sessionCustomerDetails')
-> Value
-> Parser Checkout'sessionCustomerDetails'
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.Aeson.Types.FromJSON.withObject String
"Checkout'sessionCustomerDetails'" (\Object
obj -> (((Maybe Text
 -> Maybe Checkout'sessionCustomerDetails'TaxExempt'
 -> Maybe [PaymentPagesCheckoutSessionTaxId]
 -> Checkout'sessionCustomerDetails')
-> Parser
     (Maybe Text
      -> Maybe Checkout'sessionCustomerDetails'TaxExempt'
      -> Maybe [PaymentPagesCheckoutSessionTaxId]
      -> Checkout'sessionCustomerDetails')
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure Maybe Text
-> Maybe Checkout'sessionCustomerDetails'TaxExempt'
-> Maybe [PaymentPagesCheckoutSessionTaxId]
-> Checkout'sessionCustomerDetails'
Checkout'sessionCustomerDetails' Parser
  (Maybe Text
   -> Maybe Checkout'sessionCustomerDetails'TaxExempt'
   -> Maybe [PaymentPagesCheckoutSessionTaxId]
   -> Checkout'sessionCustomerDetails')
-> Parser (Maybe Text)
-> Parser
     (Maybe Checkout'sessionCustomerDetails'TaxExempt'
      -> Maybe [PaymentPagesCheckoutSessionTaxId]
      -> Checkout'sessionCustomerDetails')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"email")) Parser
  (Maybe Checkout'sessionCustomerDetails'TaxExempt'
   -> Maybe [PaymentPagesCheckoutSessionTaxId]
   -> Checkout'sessionCustomerDetails')
-> Parser (Maybe Checkout'sessionCustomerDetails'TaxExempt')
-> Parser
     (Maybe [PaymentPagesCheckoutSessionTaxId]
      -> Checkout'sessionCustomerDetails')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser (Maybe Checkout'sessionCustomerDetails'TaxExempt')
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"tax_exempt")) Parser
  (Maybe [PaymentPagesCheckoutSessionTaxId]
   -> Checkout'sessionCustomerDetails')
-> Parser (Maybe [PaymentPagesCheckoutSessionTaxId])
-> Parser Checkout'sessionCustomerDetails'
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe [PaymentPagesCheckoutSessionTaxId])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"tax_ids"))

-- | Create a new 'Checkout'sessionCustomerDetails'' with all required fields.
mkCheckout'sessionCustomerDetails' :: Checkout'sessionCustomerDetails'
mkCheckout'sessionCustomerDetails' :: Checkout'sessionCustomerDetails'
mkCheckout'sessionCustomerDetails' =
  Checkout'sessionCustomerDetails' :: Maybe Text
-> Maybe Checkout'sessionCustomerDetails'TaxExempt'
-> Maybe [PaymentPagesCheckoutSessionTaxId]
-> Checkout'sessionCustomerDetails'
Checkout'sessionCustomerDetails'
    { checkout'sessionCustomerDetails'Email :: Maybe Text
checkout'sessionCustomerDetails'Email = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      checkout'sessionCustomerDetails'TaxExempt :: Maybe Checkout'sessionCustomerDetails'TaxExempt'
checkout'sessionCustomerDetails'TaxExempt = Maybe Checkout'sessionCustomerDetails'TaxExempt'
forall a. Maybe a
GHC.Maybe.Nothing,
      checkout'sessionCustomerDetails'TaxIds :: Maybe [PaymentPagesCheckoutSessionTaxId]
checkout'sessionCustomerDetails'TaxIds = Maybe [PaymentPagesCheckoutSessionTaxId]
forall a. Maybe a
GHC.Maybe.Nothing
    }

-- | Defines the enum schema located at @components.schemas.checkout.session.properties.customer_details.anyOf.properties.tax_exempt@ in the specification.
--
-- The customer’s tax exempt status at time of checkout.
data Checkout'sessionCustomerDetails'TaxExempt'
  = -- | This case is used if the value encountered during decoding does not match any of the provided cases in the specification.
    Checkout'sessionCustomerDetails'TaxExempt'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.
    Checkout'sessionCustomerDetails'TaxExempt'Typed Data.Text.Internal.Text
  | -- | Represents the JSON value @"exempt"@
    Checkout'sessionCustomerDetails'TaxExempt'EnumExempt
  | -- | Represents the JSON value @"none"@
    Checkout'sessionCustomerDetails'TaxExempt'EnumNone
  | -- | Represents the JSON value @"reverse"@
    Checkout'sessionCustomerDetails'TaxExempt'EnumReverse
  deriving (Int -> Checkout'sessionCustomerDetails'TaxExempt' -> ShowS
[Checkout'sessionCustomerDetails'TaxExempt'] -> ShowS
Checkout'sessionCustomerDetails'TaxExempt' -> String
(Int -> Checkout'sessionCustomerDetails'TaxExempt' -> ShowS)
-> (Checkout'sessionCustomerDetails'TaxExempt' -> String)
-> ([Checkout'sessionCustomerDetails'TaxExempt'] -> ShowS)
-> Show Checkout'sessionCustomerDetails'TaxExempt'
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [Checkout'sessionCustomerDetails'TaxExempt'] -> ShowS
$cshowList :: [Checkout'sessionCustomerDetails'TaxExempt'] -> ShowS
show :: Checkout'sessionCustomerDetails'TaxExempt' -> String
$cshow :: Checkout'sessionCustomerDetails'TaxExempt' -> String
showsPrec :: Int -> Checkout'sessionCustomerDetails'TaxExempt' -> ShowS
$cshowsPrec :: Int -> Checkout'sessionCustomerDetails'TaxExempt' -> ShowS
GHC.Show.Show, Checkout'sessionCustomerDetails'TaxExempt'
-> Checkout'sessionCustomerDetails'TaxExempt' -> Bool
(Checkout'sessionCustomerDetails'TaxExempt'
 -> Checkout'sessionCustomerDetails'TaxExempt' -> Bool)
-> (Checkout'sessionCustomerDetails'TaxExempt'
    -> Checkout'sessionCustomerDetails'TaxExempt' -> Bool)
-> Eq Checkout'sessionCustomerDetails'TaxExempt'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: Checkout'sessionCustomerDetails'TaxExempt'
-> Checkout'sessionCustomerDetails'TaxExempt' -> Bool
$c/= :: Checkout'sessionCustomerDetails'TaxExempt'
-> Checkout'sessionCustomerDetails'TaxExempt' -> Bool
== :: Checkout'sessionCustomerDetails'TaxExempt'
-> Checkout'sessionCustomerDetails'TaxExempt' -> Bool
$c== :: Checkout'sessionCustomerDetails'TaxExempt'
-> Checkout'sessionCustomerDetails'TaxExempt' -> Bool
GHC.Classes.Eq)

instance Data.Aeson.Types.ToJSON.ToJSON Checkout'sessionCustomerDetails'TaxExempt' where
  toJSON :: Checkout'sessionCustomerDetails'TaxExempt' -> Value
toJSON (Checkout'sessionCustomerDetails'TaxExempt'Other Value
val) = Value
val
  toJSON (Checkout'sessionCustomerDetails'TaxExempt'Typed Text
val) = Text -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON Text
val
  toJSON (Checkout'sessionCustomerDetails'TaxExempt'
Checkout'sessionCustomerDetails'TaxExempt'EnumExempt) = Value
"exempt"
  toJSON (Checkout'sessionCustomerDetails'TaxExempt'
Checkout'sessionCustomerDetails'TaxExempt'EnumNone) = Value
"none"
  toJSON (Checkout'sessionCustomerDetails'TaxExempt'
Checkout'sessionCustomerDetails'TaxExempt'EnumReverse) = Value
"reverse"

instance Data.Aeson.Types.FromJSON.FromJSON Checkout'sessionCustomerDetails'TaxExempt' where
  parseJSON :: Value -> Parser Checkout'sessionCustomerDetails'TaxExempt'
parseJSON Value
val =
    Checkout'sessionCustomerDetails'TaxExempt'
-> Parser Checkout'sessionCustomerDetails'TaxExempt'
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure
      ( if
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"exempt" -> Checkout'sessionCustomerDetails'TaxExempt'
Checkout'sessionCustomerDetails'TaxExempt'EnumExempt
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"none" -> Checkout'sessionCustomerDetails'TaxExempt'
Checkout'sessionCustomerDetails'TaxExempt'EnumNone
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"reverse" -> Checkout'sessionCustomerDetails'TaxExempt'
Checkout'sessionCustomerDetails'TaxExempt'EnumReverse
            | Bool
GHC.Base.otherwise -> Value -> Checkout'sessionCustomerDetails'TaxExempt'
Checkout'sessionCustomerDetails'TaxExempt'Other Value
val
      )

-- | Defines the object schema located at @components.schemas.checkout.session.properties.line_items@ in the specification.
--
-- The line items purchased by the customer.
data Checkout'sessionLineItems' = Checkout'sessionLineItems'
  { -- | data: Details about each object.
    Checkout'sessionLineItems' -> [Item]
checkout'sessionLineItems'Data :: ([Item]),
    -- | has_more: True if this list has another page of items after this one that can be fetched.
    Checkout'sessionLineItems' -> Bool
checkout'sessionLineItems'HasMore :: GHC.Types.Bool,
    -- | url: The URL where this list can be accessed.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    Checkout'sessionLineItems' -> Text
checkout'sessionLineItems'Url :: Data.Text.Internal.Text
  }
  deriving
    ( Int -> Checkout'sessionLineItems' -> ShowS
[Checkout'sessionLineItems'] -> ShowS
Checkout'sessionLineItems' -> String
(Int -> Checkout'sessionLineItems' -> ShowS)
-> (Checkout'sessionLineItems' -> String)
-> ([Checkout'sessionLineItems'] -> ShowS)
-> Show Checkout'sessionLineItems'
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [Checkout'sessionLineItems'] -> ShowS
$cshowList :: [Checkout'sessionLineItems'] -> ShowS
show :: Checkout'sessionLineItems' -> String
$cshow :: Checkout'sessionLineItems' -> String
showsPrec :: Int -> Checkout'sessionLineItems' -> ShowS
$cshowsPrec :: Int -> Checkout'sessionLineItems' -> ShowS
GHC.Show.Show,
      Checkout'sessionLineItems' -> Checkout'sessionLineItems' -> Bool
(Checkout'sessionLineItems' -> Checkout'sessionLineItems' -> Bool)
-> (Checkout'sessionLineItems'
    -> Checkout'sessionLineItems' -> Bool)
-> Eq Checkout'sessionLineItems'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: Checkout'sessionLineItems' -> Checkout'sessionLineItems' -> Bool
$c/= :: Checkout'sessionLineItems' -> Checkout'sessionLineItems' -> Bool
== :: Checkout'sessionLineItems' -> Checkout'sessionLineItems' -> Bool
$c== :: Checkout'sessionLineItems' -> Checkout'sessionLineItems' -> Bool
GHC.Classes.Eq
    )

instance Data.Aeson.Types.ToJSON.ToJSON Checkout'sessionLineItems' where
  toJSON :: Checkout'sessionLineItems' -> Value
toJSON Checkout'sessionLineItems'
obj = [Pair] -> Value
Data.Aeson.Types.Internal.object (Text
"data" Text -> [Item] -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Checkout'sessionLineItems' -> [Item]
checkout'sessionLineItems'Data Checkout'sessionLineItems'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"has_more" Text -> Bool -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Checkout'sessionLineItems' -> Bool
checkout'sessionLineItems'HasMore Checkout'sessionLineItems'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"url" Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Checkout'sessionLineItems' -> Text
checkout'sessionLineItems'Url Checkout'sessionLineItems'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"object" Text -> Value -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Text -> Value
Data.Aeson.Types.Internal.String Text
"list" Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: Checkout'sessionLineItems' -> Encoding
toEncoding Checkout'sessionLineItems'
obj = Series -> Encoding
Data.Aeson.Encoding.Internal.pairs ((Text
"data" Text -> [Item] -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Checkout'sessionLineItems' -> [Item]
checkout'sessionLineItems'Data Checkout'sessionLineItems'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"has_more" Text -> Bool -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Checkout'sessionLineItems' -> Bool
checkout'sessionLineItems'HasMore Checkout'sessionLineItems'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"url" Text -> Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Checkout'sessionLineItems' -> Text
checkout'sessionLineItems'Url Checkout'sessionLineItems'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> (Text
"object" Text -> Value -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Text -> Value
Data.Aeson.Types.Internal.String Text
"list"))))

instance Data.Aeson.Types.FromJSON.FromJSON Checkout'sessionLineItems' where
  parseJSON :: Value -> Parser Checkout'sessionLineItems'
parseJSON = String
-> (Object -> Parser Checkout'sessionLineItems')
-> Value
-> Parser Checkout'sessionLineItems'
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.Aeson.Types.FromJSON.withObject String
"Checkout'sessionLineItems'" (\Object
obj -> ((([Item] -> Bool -> Text -> Checkout'sessionLineItems')
-> Parser ([Item] -> Bool -> Text -> Checkout'sessionLineItems')
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure [Item] -> Bool -> Text -> Checkout'sessionLineItems'
Checkout'sessionLineItems' Parser ([Item] -> Bool -> Text -> Checkout'sessionLineItems')
-> Parser [Item]
-> Parser (Bool -> Text -> Checkout'sessionLineItems')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser [Item]
forall a. FromJSON a => Object -> Text -> Parser a
Data.Aeson.Types.FromJSON..: Text
"data")) Parser (Bool -> Text -> Checkout'sessionLineItems')
-> Parser Bool -> Parser (Text -> Checkout'sessionLineItems')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser Bool
forall a. FromJSON a => Object -> Text -> Parser a
Data.Aeson.Types.FromJSON..: Text
"has_more")) Parser (Text -> Checkout'sessionLineItems')
-> Parser Text -> Parser Checkout'sessionLineItems'
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
Data.Aeson.Types.FromJSON..: Text
"url"))

-- | Create a new 'Checkout'sessionLineItems'' with all required fields.
mkCheckout'sessionLineItems' ::
  -- | 'checkout'sessionLineItems'Data'
  [Item] ->
  -- | 'checkout'sessionLineItems'HasMore'
  GHC.Types.Bool ->
  -- | 'checkout'sessionLineItems'Url'
  Data.Text.Internal.Text ->
  Checkout'sessionLineItems'
mkCheckout'sessionLineItems' :: [Item] -> Bool -> Text -> Checkout'sessionLineItems'
mkCheckout'sessionLineItems' [Item]
checkout'sessionLineItems'Data Bool
checkout'sessionLineItems'HasMore Text
checkout'sessionLineItems'Url =
  Checkout'sessionLineItems' :: [Item] -> Bool -> Text -> Checkout'sessionLineItems'
Checkout'sessionLineItems'
    { checkout'sessionLineItems'Data :: [Item]
checkout'sessionLineItems'Data = [Item]
checkout'sessionLineItems'Data,
      checkout'sessionLineItems'HasMore :: Bool
checkout'sessionLineItems'HasMore = Bool
checkout'sessionLineItems'HasMore,
      checkout'sessionLineItems'Url :: Text
checkout'sessionLineItems'Url = Text
checkout'sessionLineItems'Url
    }

-- | Defines the enum schema located at @components.schemas.checkout.session.properties.locale@ in the specification.
--
-- The IETF language tag of the locale Checkout is displayed in. If blank or \`auto\`, the browser\'s locale is used.
data Checkout'sessionLocale'
  = -- | This case is used if the value encountered during decoding does not match any of the provided cases in the specification.
    Checkout'sessionLocale'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.
    Checkout'sessionLocale'Typed Data.Text.Internal.Text
  | -- | Represents the JSON value @"auto"@
    Checkout'sessionLocale'EnumAuto
  | -- | Represents the JSON value @"bg"@
    Checkout'sessionLocale'EnumBg
  | -- | Represents the JSON value @"cs"@
    Checkout'sessionLocale'EnumCs
  | -- | Represents the JSON value @"da"@
    Checkout'sessionLocale'EnumDa
  | -- | Represents the JSON value @"de"@
    Checkout'sessionLocale'EnumDe
  | -- | Represents the JSON value @"el"@
    Checkout'sessionLocale'EnumEl
  | -- | Represents the JSON value @"en"@
    Checkout'sessionLocale'EnumEn
  | -- | Represents the JSON value @"en-GB"@
    Checkout'sessionLocale'EnumEnGB
  | -- | Represents the JSON value @"es"@
    Checkout'sessionLocale'EnumEs
  | -- | Represents the JSON value @"es-419"@
    Checkout'sessionLocale'EnumEs_419
  | -- | Represents the JSON value @"et"@
    Checkout'sessionLocale'EnumEt
  | -- | Represents the JSON value @"fi"@
    Checkout'sessionLocale'EnumFi
  | -- | Represents the JSON value @"fr"@
    Checkout'sessionLocale'EnumFr
  | -- | Represents the JSON value @"fr-CA"@
    Checkout'sessionLocale'EnumFrCA
  | -- | Represents the JSON value @"hu"@
    Checkout'sessionLocale'EnumHu
  | -- | Represents the JSON value @"id"@
    Checkout'sessionLocale'EnumId
  | -- | Represents the JSON value @"it"@
    Checkout'sessionLocale'EnumIt
  | -- | Represents the JSON value @"ja"@
    Checkout'sessionLocale'EnumJa
  | -- | Represents the JSON value @"lt"@
    Checkout'sessionLocale'EnumLt
  | -- | Represents the JSON value @"lv"@
    Checkout'sessionLocale'EnumLv
  | -- | Represents the JSON value @"ms"@
    Checkout'sessionLocale'EnumMs
  | -- | Represents the JSON value @"mt"@
    Checkout'sessionLocale'EnumMt
  | -- | Represents the JSON value @"nb"@
    Checkout'sessionLocale'EnumNb
  | -- | Represents the JSON value @"nl"@
    Checkout'sessionLocale'EnumNl
  | -- | Represents the JSON value @"pl"@
    Checkout'sessionLocale'EnumPl
  | -- | Represents the JSON value @"pt"@
    Checkout'sessionLocale'EnumPt
  | -- | Represents the JSON value @"pt-BR"@
    Checkout'sessionLocale'EnumPtBR
  | -- | Represents the JSON value @"ro"@
    Checkout'sessionLocale'EnumRo
  | -- | Represents the JSON value @"ru"@
    Checkout'sessionLocale'EnumRu
  | -- | Represents the JSON value @"sk"@
    Checkout'sessionLocale'EnumSk
  | -- | Represents the JSON value @"sl"@
    Checkout'sessionLocale'EnumSl
  | -- | Represents the JSON value @"sv"@
    Checkout'sessionLocale'EnumSv
  | -- | Represents the JSON value @"th"@
    Checkout'sessionLocale'EnumTh
  | -- | Represents the JSON value @"tr"@
    Checkout'sessionLocale'EnumTr
  | -- | Represents the JSON value @"zh"@
    Checkout'sessionLocale'EnumZh
  | -- | Represents the JSON value @"zh-HK"@
    Checkout'sessionLocale'EnumZhHK
  | -- | Represents the JSON value @"zh-TW"@
    Checkout'sessionLocale'EnumZhTW
  deriving (Int -> Checkout'sessionLocale' -> ShowS
[Checkout'sessionLocale'] -> ShowS
Checkout'sessionLocale' -> String
(Int -> Checkout'sessionLocale' -> ShowS)
-> (Checkout'sessionLocale' -> String)
-> ([Checkout'sessionLocale'] -> ShowS)
-> Show Checkout'sessionLocale'
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [Checkout'sessionLocale'] -> ShowS
$cshowList :: [Checkout'sessionLocale'] -> ShowS
show :: Checkout'sessionLocale' -> String
$cshow :: Checkout'sessionLocale' -> String
showsPrec :: Int -> Checkout'sessionLocale' -> ShowS
$cshowsPrec :: Int -> Checkout'sessionLocale' -> ShowS
GHC.Show.Show, Checkout'sessionLocale' -> Checkout'sessionLocale' -> Bool
(Checkout'sessionLocale' -> Checkout'sessionLocale' -> Bool)
-> (Checkout'sessionLocale' -> Checkout'sessionLocale' -> Bool)
-> Eq Checkout'sessionLocale'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: Checkout'sessionLocale' -> Checkout'sessionLocale' -> Bool
$c/= :: Checkout'sessionLocale' -> Checkout'sessionLocale' -> Bool
== :: Checkout'sessionLocale' -> Checkout'sessionLocale' -> Bool
$c== :: Checkout'sessionLocale' -> Checkout'sessionLocale' -> Bool
GHC.Classes.Eq)

instance Data.Aeson.Types.ToJSON.ToJSON Checkout'sessionLocale' where
  toJSON :: Checkout'sessionLocale' -> Value
toJSON (Checkout'sessionLocale'Other Value
val) = Value
val
  toJSON (Checkout'sessionLocale'Typed Text
val) = Text -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON Text
val
  toJSON (Checkout'sessionLocale'
Checkout'sessionLocale'EnumAuto) = Value
"auto"
  toJSON (Checkout'sessionLocale'
Checkout'sessionLocale'EnumBg) = Value
"bg"
  toJSON (Checkout'sessionLocale'
Checkout'sessionLocale'EnumCs) = Value
"cs"
  toJSON (Checkout'sessionLocale'
Checkout'sessionLocale'EnumDa) = Value
"da"
  toJSON (Checkout'sessionLocale'
Checkout'sessionLocale'EnumDe) = Value
"de"
  toJSON (Checkout'sessionLocale'
Checkout'sessionLocale'EnumEl) = Value
"el"
  toJSON (Checkout'sessionLocale'
Checkout'sessionLocale'EnumEn) = Value
"en"
  toJSON (Checkout'sessionLocale'
Checkout'sessionLocale'EnumEnGB) = Value
"en-GB"
  toJSON (Checkout'sessionLocale'
Checkout'sessionLocale'EnumEs) = Value
"es"
  toJSON (Checkout'sessionLocale'
Checkout'sessionLocale'EnumEs_419) = Value
"es-419"
  toJSON (Checkout'sessionLocale'
Checkout'sessionLocale'EnumEt) = Value
"et"
  toJSON (Checkout'sessionLocale'
Checkout'sessionLocale'EnumFi) = Value
"fi"
  toJSON (Checkout'sessionLocale'
Checkout'sessionLocale'EnumFr) = Value
"fr"
  toJSON (Checkout'sessionLocale'
Checkout'sessionLocale'EnumFrCA) = Value
"fr-CA"
  toJSON (Checkout'sessionLocale'
Checkout'sessionLocale'EnumHu) = Value
"hu"
  toJSON (Checkout'sessionLocale'
Checkout'sessionLocale'EnumId) = Value
"id"
  toJSON (Checkout'sessionLocale'
Checkout'sessionLocale'EnumIt) = Value
"it"
  toJSON (Checkout'sessionLocale'
Checkout'sessionLocale'EnumJa) = Value
"ja"
  toJSON (Checkout'sessionLocale'
Checkout'sessionLocale'EnumLt) = Value
"lt"
  toJSON (Checkout'sessionLocale'
Checkout'sessionLocale'EnumLv) = Value
"lv"
  toJSON (Checkout'sessionLocale'
Checkout'sessionLocale'EnumMs) = Value
"ms"
  toJSON (Checkout'sessionLocale'
Checkout'sessionLocale'EnumMt) = Value
"mt"
  toJSON (Checkout'sessionLocale'
Checkout'sessionLocale'EnumNb) = Value
"nb"
  toJSON (Checkout'sessionLocale'
Checkout'sessionLocale'EnumNl) = Value
"nl"
  toJSON (Checkout'sessionLocale'
Checkout'sessionLocale'EnumPl) = Value
"pl"
  toJSON (Checkout'sessionLocale'
Checkout'sessionLocale'EnumPt) = Value
"pt"
  toJSON (Checkout'sessionLocale'
Checkout'sessionLocale'EnumPtBR) = Value
"pt-BR"
  toJSON (Checkout'sessionLocale'
Checkout'sessionLocale'EnumRo) = Value
"ro"
  toJSON (Checkout'sessionLocale'
Checkout'sessionLocale'EnumRu) = Value
"ru"
  toJSON (Checkout'sessionLocale'
Checkout'sessionLocale'EnumSk) = Value
"sk"
  toJSON (Checkout'sessionLocale'
Checkout'sessionLocale'EnumSl) = Value
"sl"
  toJSON (Checkout'sessionLocale'
Checkout'sessionLocale'EnumSv) = Value
"sv"
  toJSON (Checkout'sessionLocale'
Checkout'sessionLocale'EnumTh) = Value
"th"
  toJSON (Checkout'sessionLocale'
Checkout'sessionLocale'EnumTr) = Value
"tr"
  toJSON (Checkout'sessionLocale'
Checkout'sessionLocale'EnumZh) = Value
"zh"
  toJSON (Checkout'sessionLocale'
Checkout'sessionLocale'EnumZhHK) = Value
"zh-HK"
  toJSON (Checkout'sessionLocale'
Checkout'sessionLocale'EnumZhTW) = Value
"zh-TW"

instance Data.Aeson.Types.FromJSON.FromJSON Checkout'sessionLocale' where
  parseJSON :: Value -> Parser Checkout'sessionLocale'
parseJSON Value
val =
    Checkout'sessionLocale' -> Parser Checkout'sessionLocale'
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure
      ( if
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"auto" -> Checkout'sessionLocale'
Checkout'sessionLocale'EnumAuto
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"bg" -> Checkout'sessionLocale'
Checkout'sessionLocale'EnumBg
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"cs" -> Checkout'sessionLocale'
Checkout'sessionLocale'EnumCs
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"da" -> Checkout'sessionLocale'
Checkout'sessionLocale'EnumDa
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"de" -> Checkout'sessionLocale'
Checkout'sessionLocale'EnumDe
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"el" -> Checkout'sessionLocale'
Checkout'sessionLocale'EnumEl
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"en" -> Checkout'sessionLocale'
Checkout'sessionLocale'EnumEn
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"en-GB" -> Checkout'sessionLocale'
Checkout'sessionLocale'EnumEnGB
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"es" -> Checkout'sessionLocale'
Checkout'sessionLocale'EnumEs
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"es-419" -> Checkout'sessionLocale'
Checkout'sessionLocale'EnumEs_419
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"et" -> Checkout'sessionLocale'
Checkout'sessionLocale'EnumEt
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"fi" -> Checkout'sessionLocale'
Checkout'sessionLocale'EnumFi
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"fr" -> Checkout'sessionLocale'
Checkout'sessionLocale'EnumFr
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"fr-CA" -> Checkout'sessionLocale'
Checkout'sessionLocale'EnumFrCA
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"hu" -> Checkout'sessionLocale'
Checkout'sessionLocale'EnumHu
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"id" -> Checkout'sessionLocale'
Checkout'sessionLocale'EnumId
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"it" -> Checkout'sessionLocale'
Checkout'sessionLocale'EnumIt
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"ja" -> Checkout'sessionLocale'
Checkout'sessionLocale'EnumJa
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"lt" -> Checkout'sessionLocale'
Checkout'sessionLocale'EnumLt
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"lv" -> Checkout'sessionLocale'
Checkout'sessionLocale'EnumLv
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"ms" -> Checkout'sessionLocale'
Checkout'sessionLocale'EnumMs
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"mt" -> Checkout'sessionLocale'
Checkout'sessionLocale'EnumMt
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"nb" -> Checkout'sessionLocale'
Checkout'sessionLocale'EnumNb
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"nl" -> Checkout'sessionLocale'
Checkout'sessionLocale'EnumNl
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"pl" -> Checkout'sessionLocale'
Checkout'sessionLocale'EnumPl
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"pt" -> Checkout'sessionLocale'
Checkout'sessionLocale'EnumPt
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"pt-BR" -> Checkout'sessionLocale'
Checkout'sessionLocale'EnumPtBR
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"ro" -> Checkout'sessionLocale'
Checkout'sessionLocale'EnumRo
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"ru" -> Checkout'sessionLocale'
Checkout'sessionLocale'EnumRu
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"sk" -> Checkout'sessionLocale'
Checkout'sessionLocale'EnumSk
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"sl" -> Checkout'sessionLocale'
Checkout'sessionLocale'EnumSl
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"sv" -> Checkout'sessionLocale'
Checkout'sessionLocale'EnumSv
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"th" -> Checkout'sessionLocale'
Checkout'sessionLocale'EnumTh
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"tr" -> Checkout'sessionLocale'
Checkout'sessionLocale'EnumTr
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"zh" -> Checkout'sessionLocale'
Checkout'sessionLocale'EnumZh
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"zh-HK" -> Checkout'sessionLocale'
Checkout'sessionLocale'EnumZhHK
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"zh-TW" -> Checkout'sessionLocale'
Checkout'sessionLocale'EnumZhTW
            | Bool
GHC.Base.otherwise -> Value -> Checkout'sessionLocale'
Checkout'sessionLocale'Other Value
val
      )

-- | Defines the enum schema located at @components.schemas.checkout.session.properties.mode@ in the specification.
--
-- The mode of the Checkout Session.
data Checkout'sessionMode'
  = -- | This case is used if the value encountered during decoding does not match any of the provided cases in the specification.
    Checkout'sessionMode'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.
    Checkout'sessionMode'Typed Data.Text.Internal.Text
  | -- | Represents the JSON value @"payment"@
    Checkout'sessionMode'EnumPayment
  | -- | Represents the JSON value @"setup"@
    Checkout'sessionMode'EnumSetup
  | -- | Represents the JSON value @"subscription"@
    Checkout'sessionMode'EnumSubscription
  deriving (Int -> Checkout'sessionMode' -> ShowS
[Checkout'sessionMode'] -> ShowS
Checkout'sessionMode' -> String
(Int -> Checkout'sessionMode' -> ShowS)
-> (Checkout'sessionMode' -> String)
-> ([Checkout'sessionMode'] -> ShowS)
-> Show Checkout'sessionMode'
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [Checkout'sessionMode'] -> ShowS
$cshowList :: [Checkout'sessionMode'] -> ShowS
show :: Checkout'sessionMode' -> String
$cshow :: Checkout'sessionMode' -> String
showsPrec :: Int -> Checkout'sessionMode' -> ShowS
$cshowsPrec :: Int -> Checkout'sessionMode' -> ShowS
GHC.Show.Show, Checkout'sessionMode' -> Checkout'sessionMode' -> Bool
(Checkout'sessionMode' -> Checkout'sessionMode' -> Bool)
-> (Checkout'sessionMode' -> Checkout'sessionMode' -> Bool)
-> Eq Checkout'sessionMode'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: Checkout'sessionMode' -> Checkout'sessionMode' -> Bool
$c/= :: Checkout'sessionMode' -> Checkout'sessionMode' -> Bool
== :: Checkout'sessionMode' -> Checkout'sessionMode' -> Bool
$c== :: Checkout'sessionMode' -> Checkout'sessionMode' -> Bool
GHC.Classes.Eq)

instance Data.Aeson.Types.ToJSON.ToJSON Checkout'sessionMode' where
  toJSON :: Checkout'sessionMode' -> Value
toJSON (Checkout'sessionMode'Other Value
val) = Value
val
  toJSON (Checkout'sessionMode'Typed Text
val) = Text -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON Text
val
  toJSON (Checkout'sessionMode'
Checkout'sessionMode'EnumPayment) = Value
"payment"
  toJSON (Checkout'sessionMode'
Checkout'sessionMode'EnumSetup) = Value
"setup"
  toJSON (Checkout'sessionMode'
Checkout'sessionMode'EnumSubscription) = Value
"subscription"

instance Data.Aeson.Types.FromJSON.FromJSON Checkout'sessionMode' where
  parseJSON :: Value -> Parser Checkout'sessionMode'
parseJSON Value
val =
    Checkout'sessionMode' -> Parser Checkout'sessionMode'
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure
      ( if
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"payment" -> Checkout'sessionMode'
Checkout'sessionMode'EnumPayment
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"setup" -> Checkout'sessionMode'
Checkout'sessionMode'EnumSetup
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"subscription" -> Checkout'sessionMode'
Checkout'sessionMode'EnumSubscription
            | Bool
GHC.Base.otherwise -> Value -> Checkout'sessionMode'
Checkout'sessionMode'Other Value
val
      )

-- | Defines the oneOf schema located at @components.schemas.checkout.session.properties.payment_intent.anyOf@ in the specification.
--
-- The ID of the PaymentIntent for Checkout Sessions in \`payment\` mode.
data Checkout'sessionPaymentIntent'Variants
  = Checkout'sessionPaymentIntent'Text Data.Text.Internal.Text
  | Checkout'sessionPaymentIntent'PaymentIntent PaymentIntent
  deriving (Int -> Checkout'sessionPaymentIntent'Variants -> ShowS
[Checkout'sessionPaymentIntent'Variants] -> ShowS
Checkout'sessionPaymentIntent'Variants -> String
(Int -> Checkout'sessionPaymentIntent'Variants -> ShowS)
-> (Checkout'sessionPaymentIntent'Variants -> String)
-> ([Checkout'sessionPaymentIntent'Variants] -> ShowS)
-> Show Checkout'sessionPaymentIntent'Variants
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [Checkout'sessionPaymentIntent'Variants] -> ShowS
$cshowList :: [Checkout'sessionPaymentIntent'Variants] -> ShowS
show :: Checkout'sessionPaymentIntent'Variants -> String
$cshow :: Checkout'sessionPaymentIntent'Variants -> String
showsPrec :: Int -> Checkout'sessionPaymentIntent'Variants -> ShowS
$cshowsPrec :: Int -> Checkout'sessionPaymentIntent'Variants -> ShowS
GHC.Show.Show, Checkout'sessionPaymentIntent'Variants
-> Checkout'sessionPaymentIntent'Variants -> Bool
(Checkout'sessionPaymentIntent'Variants
 -> Checkout'sessionPaymentIntent'Variants -> Bool)
-> (Checkout'sessionPaymentIntent'Variants
    -> Checkout'sessionPaymentIntent'Variants -> Bool)
-> Eq Checkout'sessionPaymentIntent'Variants
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: Checkout'sessionPaymentIntent'Variants
-> Checkout'sessionPaymentIntent'Variants -> Bool
$c/= :: Checkout'sessionPaymentIntent'Variants
-> Checkout'sessionPaymentIntent'Variants -> Bool
== :: Checkout'sessionPaymentIntent'Variants
-> Checkout'sessionPaymentIntent'Variants -> Bool
$c== :: Checkout'sessionPaymentIntent'Variants
-> Checkout'sessionPaymentIntent'Variants -> Bool
GHC.Classes.Eq)

instance Data.Aeson.Types.ToJSON.ToJSON Checkout'sessionPaymentIntent'Variants where
  toJSON :: Checkout'sessionPaymentIntent'Variants -> Value
toJSON (Checkout'sessionPaymentIntent'Text Text
a) = Text -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON Text
a
  toJSON (Checkout'sessionPaymentIntent'PaymentIntent PaymentIntent
a) = PaymentIntent -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON PaymentIntent
a

instance Data.Aeson.Types.FromJSON.FromJSON Checkout'sessionPaymentIntent'Variants where
  parseJSON :: Value -> Parser Checkout'sessionPaymentIntent'Variants
parseJSON Value
val = case (Text -> Checkout'sessionPaymentIntent'Variants
Checkout'sessionPaymentIntent'Text (Text -> Checkout'sessionPaymentIntent'Variants)
-> Result Text -> Result Checkout'sessionPaymentIntent'Variants
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Data.Functor.<$> Value -> Result Text
forall a. FromJSON a => Value -> Result a
Data.Aeson.Types.FromJSON.fromJSON Value
val) Result Checkout'sessionPaymentIntent'Variants
-> Result Checkout'sessionPaymentIntent'Variants
-> Result Checkout'sessionPaymentIntent'Variants
forall (f :: * -> *) a. Alternative f => f a -> f a -> f a
GHC.Base.<|> ((PaymentIntent -> Checkout'sessionPaymentIntent'Variants
Checkout'sessionPaymentIntent'PaymentIntent (PaymentIntent -> Checkout'sessionPaymentIntent'Variants)
-> Result PaymentIntent
-> Result Checkout'sessionPaymentIntent'Variants
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Data.Functor.<$> Value -> Result PaymentIntent
forall a. FromJSON a => Value -> Result a
Data.Aeson.Types.FromJSON.fromJSON Value
val) Result Checkout'sessionPaymentIntent'Variants
-> Result Checkout'sessionPaymentIntent'Variants
-> Result Checkout'sessionPaymentIntent'Variants
forall (f :: * -> *) a. Alternative f => f a -> f a -> f a
GHC.Base.<|> String -> Result Checkout'sessionPaymentIntent'Variants
forall a. String -> Result a
Data.Aeson.Types.Internal.Error String
"No variant matched") of
    Data.Aeson.Types.Internal.Success Checkout'sessionPaymentIntent'Variants
a -> Checkout'sessionPaymentIntent'Variants
-> Parser Checkout'sessionPaymentIntent'Variants
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure Checkout'sessionPaymentIntent'Variants
a
    Data.Aeson.Types.Internal.Error String
a -> String -> Parser Checkout'sessionPaymentIntent'Variants
forall (m :: * -> *) a. MonadFail m => String -> m a
Control.Monad.Fail.fail String
a

-- | Defines the object schema located at @components.schemas.checkout.session.properties.payment_method_options.anyOf@ in the specification.
--
-- Payment-method-specific configuration for the PaymentIntent or SetupIntent of this CheckoutSession.
data Checkout'sessionPaymentMethodOptions' = Checkout'sessionPaymentMethodOptions'
  { -- | acss_debit:
    Checkout'sessionPaymentMethodOptions'
-> Maybe CheckoutAcssDebitPaymentMethodOptions
checkout'sessionPaymentMethodOptions'AcssDebit :: (GHC.Maybe.Maybe CheckoutAcssDebitPaymentMethodOptions)
  }
  deriving
    ( Int -> Checkout'sessionPaymentMethodOptions' -> ShowS
[Checkout'sessionPaymentMethodOptions'] -> ShowS
Checkout'sessionPaymentMethodOptions' -> String
(Int -> Checkout'sessionPaymentMethodOptions' -> ShowS)
-> (Checkout'sessionPaymentMethodOptions' -> String)
-> ([Checkout'sessionPaymentMethodOptions'] -> ShowS)
-> Show Checkout'sessionPaymentMethodOptions'
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [Checkout'sessionPaymentMethodOptions'] -> ShowS
$cshowList :: [Checkout'sessionPaymentMethodOptions'] -> ShowS
show :: Checkout'sessionPaymentMethodOptions' -> String
$cshow :: Checkout'sessionPaymentMethodOptions' -> String
showsPrec :: Int -> Checkout'sessionPaymentMethodOptions' -> ShowS
$cshowsPrec :: Int -> Checkout'sessionPaymentMethodOptions' -> ShowS
GHC.Show.Show,
      Checkout'sessionPaymentMethodOptions'
-> Checkout'sessionPaymentMethodOptions' -> Bool
(Checkout'sessionPaymentMethodOptions'
 -> Checkout'sessionPaymentMethodOptions' -> Bool)
-> (Checkout'sessionPaymentMethodOptions'
    -> Checkout'sessionPaymentMethodOptions' -> Bool)
-> Eq Checkout'sessionPaymentMethodOptions'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: Checkout'sessionPaymentMethodOptions'
-> Checkout'sessionPaymentMethodOptions' -> Bool
$c/= :: Checkout'sessionPaymentMethodOptions'
-> Checkout'sessionPaymentMethodOptions' -> Bool
== :: Checkout'sessionPaymentMethodOptions'
-> Checkout'sessionPaymentMethodOptions' -> Bool
$c== :: Checkout'sessionPaymentMethodOptions'
-> Checkout'sessionPaymentMethodOptions' -> Bool
GHC.Classes.Eq
    )

instance Data.Aeson.Types.ToJSON.ToJSON Checkout'sessionPaymentMethodOptions' where
  toJSON :: Checkout'sessionPaymentMethodOptions' -> Value
toJSON Checkout'sessionPaymentMethodOptions'
obj = [Pair] -> Value
Data.Aeson.Types.Internal.object (Text
"acss_debit" Text -> Maybe CheckoutAcssDebitPaymentMethodOptions -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Checkout'sessionPaymentMethodOptions'
-> Maybe CheckoutAcssDebitPaymentMethodOptions
checkout'sessionPaymentMethodOptions'AcssDebit Checkout'sessionPaymentMethodOptions'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: Checkout'sessionPaymentMethodOptions' -> Encoding
toEncoding Checkout'sessionPaymentMethodOptions'
obj = Series -> Encoding
Data.Aeson.Encoding.Internal.pairs (Text
"acss_debit" Text -> Maybe CheckoutAcssDebitPaymentMethodOptions -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Checkout'sessionPaymentMethodOptions'
-> Maybe CheckoutAcssDebitPaymentMethodOptions
checkout'sessionPaymentMethodOptions'AcssDebit Checkout'sessionPaymentMethodOptions'
obj)

instance Data.Aeson.Types.FromJSON.FromJSON Checkout'sessionPaymentMethodOptions' where
  parseJSON :: Value -> Parser Checkout'sessionPaymentMethodOptions'
parseJSON = String
-> (Object -> Parser Checkout'sessionPaymentMethodOptions')
-> Value
-> Parser Checkout'sessionPaymentMethodOptions'
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.Aeson.Types.FromJSON.withObject String
"Checkout'sessionPaymentMethodOptions'" (\Object
obj -> (Maybe CheckoutAcssDebitPaymentMethodOptions
 -> Checkout'sessionPaymentMethodOptions')
-> Parser
     (Maybe CheckoutAcssDebitPaymentMethodOptions
      -> Checkout'sessionPaymentMethodOptions')
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure Maybe CheckoutAcssDebitPaymentMethodOptions
-> Checkout'sessionPaymentMethodOptions'
Checkout'sessionPaymentMethodOptions' Parser
  (Maybe CheckoutAcssDebitPaymentMethodOptions
   -> Checkout'sessionPaymentMethodOptions')
-> Parser (Maybe CheckoutAcssDebitPaymentMethodOptions)
-> Parser Checkout'sessionPaymentMethodOptions'
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text -> Parser (Maybe CheckoutAcssDebitPaymentMethodOptions)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"acss_debit"))

-- | Create a new 'Checkout'sessionPaymentMethodOptions'' with all required fields.
mkCheckout'sessionPaymentMethodOptions' :: Checkout'sessionPaymentMethodOptions'
mkCheckout'sessionPaymentMethodOptions' :: Checkout'sessionPaymentMethodOptions'
mkCheckout'sessionPaymentMethodOptions' = Checkout'sessionPaymentMethodOptions' :: Maybe CheckoutAcssDebitPaymentMethodOptions
-> Checkout'sessionPaymentMethodOptions'
Checkout'sessionPaymentMethodOptions' {checkout'sessionPaymentMethodOptions'AcssDebit :: Maybe CheckoutAcssDebitPaymentMethodOptions
checkout'sessionPaymentMethodOptions'AcssDebit = Maybe CheckoutAcssDebitPaymentMethodOptions
forall a. Maybe a
GHC.Maybe.Nothing}

-- | Defines the enum schema located at @components.schemas.checkout.session.properties.payment_status@ in the specification.
--
-- The payment status of the Checkout Session, one of \`paid\`, \`unpaid\`, or \`no_payment_required\`.
-- You can use this value to decide when to fulfill your customer\'s order.
data Checkout'sessionPaymentStatus'
  = -- | This case is used if the value encountered during decoding does not match any of the provided cases in the specification.
    Checkout'sessionPaymentStatus'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.
    Checkout'sessionPaymentStatus'Typed Data.Text.Internal.Text
  | -- | Represents the JSON value @"no_payment_required"@
    Checkout'sessionPaymentStatus'EnumNoPaymentRequired
  | -- | Represents the JSON value @"paid"@
    Checkout'sessionPaymentStatus'EnumPaid
  | -- | Represents the JSON value @"unpaid"@
    Checkout'sessionPaymentStatus'EnumUnpaid
  deriving (Int -> Checkout'sessionPaymentStatus' -> ShowS
[Checkout'sessionPaymentStatus'] -> ShowS
Checkout'sessionPaymentStatus' -> String
(Int -> Checkout'sessionPaymentStatus' -> ShowS)
-> (Checkout'sessionPaymentStatus' -> String)
-> ([Checkout'sessionPaymentStatus'] -> ShowS)
-> Show Checkout'sessionPaymentStatus'
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [Checkout'sessionPaymentStatus'] -> ShowS
$cshowList :: [Checkout'sessionPaymentStatus'] -> ShowS
show :: Checkout'sessionPaymentStatus' -> String
$cshow :: Checkout'sessionPaymentStatus' -> String
showsPrec :: Int -> Checkout'sessionPaymentStatus' -> ShowS
$cshowsPrec :: Int -> Checkout'sessionPaymentStatus' -> ShowS
GHC.Show.Show, Checkout'sessionPaymentStatus'
-> Checkout'sessionPaymentStatus' -> Bool
(Checkout'sessionPaymentStatus'
 -> Checkout'sessionPaymentStatus' -> Bool)
-> (Checkout'sessionPaymentStatus'
    -> Checkout'sessionPaymentStatus' -> Bool)
-> Eq Checkout'sessionPaymentStatus'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: Checkout'sessionPaymentStatus'
-> Checkout'sessionPaymentStatus' -> Bool
$c/= :: Checkout'sessionPaymentStatus'
-> Checkout'sessionPaymentStatus' -> Bool
== :: Checkout'sessionPaymentStatus'
-> Checkout'sessionPaymentStatus' -> Bool
$c== :: Checkout'sessionPaymentStatus'
-> Checkout'sessionPaymentStatus' -> Bool
GHC.Classes.Eq)

instance Data.Aeson.Types.ToJSON.ToJSON Checkout'sessionPaymentStatus' where
  toJSON :: Checkout'sessionPaymentStatus' -> Value
toJSON (Checkout'sessionPaymentStatus'Other Value
val) = Value
val
  toJSON (Checkout'sessionPaymentStatus'Typed Text
val) = Text -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON Text
val
  toJSON (Checkout'sessionPaymentStatus'
Checkout'sessionPaymentStatus'EnumNoPaymentRequired) = Value
"no_payment_required"
  toJSON (Checkout'sessionPaymentStatus'
Checkout'sessionPaymentStatus'EnumPaid) = Value
"paid"
  toJSON (Checkout'sessionPaymentStatus'
Checkout'sessionPaymentStatus'EnumUnpaid) = Value
"unpaid"

instance Data.Aeson.Types.FromJSON.FromJSON Checkout'sessionPaymentStatus' where
  parseJSON :: Value -> Parser Checkout'sessionPaymentStatus'
parseJSON Value
val =
    Checkout'sessionPaymentStatus'
-> Parser Checkout'sessionPaymentStatus'
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure
      ( if
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"no_payment_required" -> Checkout'sessionPaymentStatus'
Checkout'sessionPaymentStatus'EnumNoPaymentRequired
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"paid" -> Checkout'sessionPaymentStatus'
Checkout'sessionPaymentStatus'EnumPaid
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"unpaid" -> Checkout'sessionPaymentStatus'
Checkout'sessionPaymentStatus'EnumUnpaid
            | Bool
GHC.Base.otherwise -> Value -> Checkout'sessionPaymentStatus'
Checkout'sessionPaymentStatus'Other Value
val
      )

-- | Defines the oneOf schema located at @components.schemas.checkout.session.properties.setup_intent.anyOf@ in the specification.
--
-- The ID of the SetupIntent for Checkout Sessions in \`setup\` mode.
data Checkout'sessionSetupIntent'Variants
  = Checkout'sessionSetupIntent'Text Data.Text.Internal.Text
  | Checkout'sessionSetupIntent'SetupIntent SetupIntent
  deriving (Int -> Checkout'sessionSetupIntent'Variants -> ShowS
[Checkout'sessionSetupIntent'Variants] -> ShowS
Checkout'sessionSetupIntent'Variants -> String
(Int -> Checkout'sessionSetupIntent'Variants -> ShowS)
-> (Checkout'sessionSetupIntent'Variants -> String)
-> ([Checkout'sessionSetupIntent'Variants] -> ShowS)
-> Show Checkout'sessionSetupIntent'Variants
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [Checkout'sessionSetupIntent'Variants] -> ShowS
$cshowList :: [Checkout'sessionSetupIntent'Variants] -> ShowS
show :: Checkout'sessionSetupIntent'Variants -> String
$cshow :: Checkout'sessionSetupIntent'Variants -> String
showsPrec :: Int -> Checkout'sessionSetupIntent'Variants -> ShowS
$cshowsPrec :: Int -> Checkout'sessionSetupIntent'Variants -> ShowS
GHC.Show.Show, Checkout'sessionSetupIntent'Variants
-> Checkout'sessionSetupIntent'Variants -> Bool
(Checkout'sessionSetupIntent'Variants
 -> Checkout'sessionSetupIntent'Variants -> Bool)
-> (Checkout'sessionSetupIntent'Variants
    -> Checkout'sessionSetupIntent'Variants -> Bool)
-> Eq Checkout'sessionSetupIntent'Variants
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: Checkout'sessionSetupIntent'Variants
-> Checkout'sessionSetupIntent'Variants -> Bool
$c/= :: Checkout'sessionSetupIntent'Variants
-> Checkout'sessionSetupIntent'Variants -> Bool
== :: Checkout'sessionSetupIntent'Variants
-> Checkout'sessionSetupIntent'Variants -> Bool
$c== :: Checkout'sessionSetupIntent'Variants
-> Checkout'sessionSetupIntent'Variants -> Bool
GHC.Classes.Eq)

instance Data.Aeson.Types.ToJSON.ToJSON Checkout'sessionSetupIntent'Variants where
  toJSON :: Checkout'sessionSetupIntent'Variants -> Value
toJSON (Checkout'sessionSetupIntent'Text Text
a) = Text -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON Text
a
  toJSON (Checkout'sessionSetupIntent'SetupIntent SetupIntent
a) = SetupIntent -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON SetupIntent
a

instance Data.Aeson.Types.FromJSON.FromJSON Checkout'sessionSetupIntent'Variants where
  parseJSON :: Value -> Parser Checkout'sessionSetupIntent'Variants
parseJSON Value
val = case (Text -> Checkout'sessionSetupIntent'Variants
Checkout'sessionSetupIntent'Text (Text -> Checkout'sessionSetupIntent'Variants)
-> Result Text -> Result Checkout'sessionSetupIntent'Variants
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Data.Functor.<$> Value -> Result Text
forall a. FromJSON a => Value -> Result a
Data.Aeson.Types.FromJSON.fromJSON Value
val) Result Checkout'sessionSetupIntent'Variants
-> Result Checkout'sessionSetupIntent'Variants
-> Result Checkout'sessionSetupIntent'Variants
forall (f :: * -> *) a. Alternative f => f a -> f a -> f a
GHC.Base.<|> ((SetupIntent -> Checkout'sessionSetupIntent'Variants
Checkout'sessionSetupIntent'SetupIntent (SetupIntent -> Checkout'sessionSetupIntent'Variants)
-> Result SetupIntent
-> Result Checkout'sessionSetupIntent'Variants
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Data.Functor.<$> Value -> Result SetupIntent
forall a. FromJSON a => Value -> Result a
Data.Aeson.Types.FromJSON.fromJSON Value
val) Result Checkout'sessionSetupIntent'Variants
-> Result Checkout'sessionSetupIntent'Variants
-> Result Checkout'sessionSetupIntent'Variants
forall (f :: * -> *) a. Alternative f => f a -> f a -> f a
GHC.Base.<|> String -> Result Checkout'sessionSetupIntent'Variants
forall a. String -> Result a
Data.Aeson.Types.Internal.Error String
"No variant matched") of
    Data.Aeson.Types.Internal.Success Checkout'sessionSetupIntent'Variants
a -> Checkout'sessionSetupIntent'Variants
-> Parser Checkout'sessionSetupIntent'Variants
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure Checkout'sessionSetupIntent'Variants
a
    Data.Aeson.Types.Internal.Error String
a -> String -> Parser Checkout'sessionSetupIntent'Variants
forall (m :: * -> *) a. MonadFail m => String -> m a
Control.Monad.Fail.fail String
a

-- | Defines the object schema located at @components.schemas.checkout.session.properties.shipping.anyOf@ in the specification.
--
-- Shipping information for this Checkout Session.
data Checkout'sessionShipping' = Checkout'sessionShipping'
  { -- | address:
    Checkout'sessionShipping' -> Maybe Address
checkout'sessionShipping'Address :: (GHC.Maybe.Maybe Address),
    -- | carrier: The delivery service that shipped a physical product, such as Fedex, UPS, USPS, etc.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    Checkout'sessionShipping' -> Maybe Text
checkout'sessionShipping'Carrier :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | name: Recipient name.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    Checkout'sessionShipping' -> Maybe Text
checkout'sessionShipping'Name :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | phone: Recipient phone (including extension).
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    Checkout'sessionShipping' -> Maybe Text
checkout'sessionShipping'Phone :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | tracking_number: The tracking number for a physical product, obtained from the delivery service. If multiple tracking numbers were generated for this purchase, please separate them with commas.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    Checkout'sessionShipping' -> Maybe Text
checkout'sessionShipping'TrackingNumber :: (GHC.Maybe.Maybe Data.Text.Internal.Text)
  }
  deriving
    ( Int -> Checkout'sessionShipping' -> ShowS
[Checkout'sessionShipping'] -> ShowS
Checkout'sessionShipping' -> String
(Int -> Checkout'sessionShipping' -> ShowS)
-> (Checkout'sessionShipping' -> String)
-> ([Checkout'sessionShipping'] -> ShowS)
-> Show Checkout'sessionShipping'
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [Checkout'sessionShipping'] -> ShowS
$cshowList :: [Checkout'sessionShipping'] -> ShowS
show :: Checkout'sessionShipping' -> String
$cshow :: Checkout'sessionShipping' -> String
showsPrec :: Int -> Checkout'sessionShipping' -> ShowS
$cshowsPrec :: Int -> Checkout'sessionShipping' -> ShowS
GHC.Show.Show,
      Checkout'sessionShipping' -> Checkout'sessionShipping' -> Bool
(Checkout'sessionShipping' -> Checkout'sessionShipping' -> Bool)
-> (Checkout'sessionShipping' -> Checkout'sessionShipping' -> Bool)
-> Eq Checkout'sessionShipping'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: Checkout'sessionShipping' -> Checkout'sessionShipping' -> Bool
$c/= :: Checkout'sessionShipping' -> Checkout'sessionShipping' -> Bool
== :: Checkout'sessionShipping' -> Checkout'sessionShipping' -> Bool
$c== :: Checkout'sessionShipping' -> Checkout'sessionShipping' -> Bool
GHC.Classes.Eq
    )

instance Data.Aeson.Types.ToJSON.ToJSON Checkout'sessionShipping' where
  toJSON :: Checkout'sessionShipping' -> Value
toJSON Checkout'sessionShipping'
obj = [Pair] -> Value
Data.Aeson.Types.Internal.object (Text
"address" Text -> Maybe Address -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Checkout'sessionShipping' -> Maybe Address
checkout'sessionShipping'Address Checkout'sessionShipping'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"carrier" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Checkout'sessionShipping' -> Maybe Text
checkout'sessionShipping'Carrier Checkout'sessionShipping'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"name" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Checkout'sessionShipping' -> Maybe Text
checkout'sessionShipping'Name Checkout'sessionShipping'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"phone" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Checkout'sessionShipping' -> Maybe Text
checkout'sessionShipping'Phone Checkout'sessionShipping'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"tracking_number" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Checkout'sessionShipping' -> Maybe Text
checkout'sessionShipping'TrackingNumber Checkout'sessionShipping'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: Checkout'sessionShipping' -> Encoding
toEncoding Checkout'sessionShipping'
obj = Series -> Encoding
Data.Aeson.Encoding.Internal.pairs ((Text
"address" Text -> Maybe Address -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Checkout'sessionShipping' -> Maybe Address
checkout'sessionShipping'Address Checkout'sessionShipping'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"carrier" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Checkout'sessionShipping' -> Maybe Text
checkout'sessionShipping'Carrier Checkout'sessionShipping'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"name" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Checkout'sessionShipping' -> Maybe Text
checkout'sessionShipping'Name Checkout'sessionShipping'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"phone" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Checkout'sessionShipping' -> Maybe Text
checkout'sessionShipping'Phone Checkout'sessionShipping'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> (Text
"tracking_number" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Checkout'sessionShipping' -> Maybe Text
checkout'sessionShipping'TrackingNumber Checkout'sessionShipping'
obj)))))

instance Data.Aeson.Types.FromJSON.FromJSON Checkout'sessionShipping' where
  parseJSON :: Value -> Parser Checkout'sessionShipping'
parseJSON = String
-> (Object -> Parser Checkout'sessionShipping')
-> Value
-> Parser Checkout'sessionShipping'
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.Aeson.Types.FromJSON.withObject String
"Checkout'sessionShipping'" (\Object
obj -> (((((Maybe Address
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Checkout'sessionShipping')
-> Parser
     (Maybe Address
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Checkout'sessionShipping')
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure Maybe Address
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Checkout'sessionShipping'
Checkout'sessionShipping' Parser
  (Maybe Address
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Checkout'sessionShipping')
-> Parser (Maybe Address)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Checkout'sessionShipping')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Address)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"address")) Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Checkout'sessionShipping')
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Text -> Maybe Text -> Checkout'sessionShipping')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"carrier")) Parser
  (Maybe Text
   -> Maybe Text -> Maybe Text -> Checkout'sessionShipping')
-> Parser (Maybe Text)
-> Parser (Maybe Text -> Maybe Text -> Checkout'sessionShipping')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"name")) Parser (Maybe Text -> Maybe Text -> Checkout'sessionShipping')
-> Parser (Maybe Text)
-> Parser (Maybe Text -> Checkout'sessionShipping')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"phone")) Parser (Maybe Text -> Checkout'sessionShipping')
-> Parser (Maybe Text) -> Parser Checkout'sessionShipping'
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"tracking_number"))

-- | Create a new 'Checkout'sessionShipping'' with all required fields.
mkCheckout'sessionShipping' :: Checkout'sessionShipping'
mkCheckout'sessionShipping' :: Checkout'sessionShipping'
mkCheckout'sessionShipping' =
  Checkout'sessionShipping' :: Maybe Address
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Checkout'sessionShipping'
Checkout'sessionShipping'
    { checkout'sessionShipping'Address :: Maybe Address
checkout'sessionShipping'Address = Maybe Address
forall a. Maybe a
GHC.Maybe.Nothing,
      checkout'sessionShipping'Carrier :: Maybe Text
checkout'sessionShipping'Carrier = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      checkout'sessionShipping'Name :: Maybe Text
checkout'sessionShipping'Name = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      checkout'sessionShipping'Phone :: Maybe Text
checkout'sessionShipping'Phone = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      checkout'sessionShipping'TrackingNumber :: Maybe Text
checkout'sessionShipping'TrackingNumber = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing
    }

-- | Defines the object schema located at @components.schemas.checkout.session.properties.shipping_address_collection.anyOf@ in the specification.
--
-- When set, provides configuration for Checkout to collect a shipping address from a customer.
data Checkout'sessionShippingAddressCollection' = Checkout'sessionShippingAddressCollection'
  { -- | allowed_countries: An array of two-letter ISO country codes representing which countries Checkout should provide as options for
    -- shipping locations. Unsupported country codes: \`AS, CX, CC, CU, HM, IR, KP, MH, FM, NF, MP, PW, SD, SY, UM, VI\`.
    Checkout'sessionShippingAddressCollection'
-> Maybe
     [Checkout'sessionShippingAddressCollection'AllowedCountries']
checkout'sessionShippingAddressCollection'AllowedCountries :: (GHC.Maybe.Maybe ([Checkout'sessionShippingAddressCollection'AllowedCountries']))
  }
  deriving
    ( Int -> Checkout'sessionShippingAddressCollection' -> ShowS
[Checkout'sessionShippingAddressCollection'] -> ShowS
Checkout'sessionShippingAddressCollection' -> String
(Int -> Checkout'sessionShippingAddressCollection' -> ShowS)
-> (Checkout'sessionShippingAddressCollection' -> String)
-> ([Checkout'sessionShippingAddressCollection'] -> ShowS)
-> Show Checkout'sessionShippingAddressCollection'
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [Checkout'sessionShippingAddressCollection'] -> ShowS
$cshowList :: [Checkout'sessionShippingAddressCollection'] -> ShowS
show :: Checkout'sessionShippingAddressCollection' -> String
$cshow :: Checkout'sessionShippingAddressCollection' -> String
showsPrec :: Int -> Checkout'sessionShippingAddressCollection' -> ShowS
$cshowsPrec :: Int -> Checkout'sessionShippingAddressCollection' -> ShowS
GHC.Show.Show,
      Checkout'sessionShippingAddressCollection'
-> Checkout'sessionShippingAddressCollection' -> Bool
(Checkout'sessionShippingAddressCollection'
 -> Checkout'sessionShippingAddressCollection' -> Bool)
-> (Checkout'sessionShippingAddressCollection'
    -> Checkout'sessionShippingAddressCollection' -> Bool)
-> Eq Checkout'sessionShippingAddressCollection'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: Checkout'sessionShippingAddressCollection'
-> Checkout'sessionShippingAddressCollection' -> Bool
$c/= :: Checkout'sessionShippingAddressCollection'
-> Checkout'sessionShippingAddressCollection' -> Bool
== :: Checkout'sessionShippingAddressCollection'
-> Checkout'sessionShippingAddressCollection' -> Bool
$c== :: Checkout'sessionShippingAddressCollection'
-> Checkout'sessionShippingAddressCollection' -> Bool
GHC.Classes.Eq
    )

instance Data.Aeson.Types.ToJSON.ToJSON Checkout'sessionShippingAddressCollection' where
  toJSON :: Checkout'sessionShippingAddressCollection' -> Value
toJSON Checkout'sessionShippingAddressCollection'
obj = [Pair] -> Value
Data.Aeson.Types.Internal.object (Text
"allowed_countries" Text
-> Maybe
     [Checkout'sessionShippingAddressCollection'AllowedCountries']
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Checkout'sessionShippingAddressCollection'
-> Maybe
     [Checkout'sessionShippingAddressCollection'AllowedCountries']
checkout'sessionShippingAddressCollection'AllowedCountries Checkout'sessionShippingAddressCollection'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: Checkout'sessionShippingAddressCollection' -> Encoding
toEncoding Checkout'sessionShippingAddressCollection'
obj = Series -> Encoding
Data.Aeson.Encoding.Internal.pairs (Text
"allowed_countries" Text
-> Maybe
     [Checkout'sessionShippingAddressCollection'AllowedCountries']
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Checkout'sessionShippingAddressCollection'
-> Maybe
     [Checkout'sessionShippingAddressCollection'AllowedCountries']
checkout'sessionShippingAddressCollection'AllowedCountries Checkout'sessionShippingAddressCollection'
obj)

instance Data.Aeson.Types.FromJSON.FromJSON Checkout'sessionShippingAddressCollection' where
  parseJSON :: Value -> Parser Checkout'sessionShippingAddressCollection'
parseJSON = String
-> (Object -> Parser Checkout'sessionShippingAddressCollection')
-> Value
-> Parser Checkout'sessionShippingAddressCollection'
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.Aeson.Types.FromJSON.withObject String
"Checkout'sessionShippingAddressCollection'" (\Object
obj -> (Maybe
   [Checkout'sessionShippingAddressCollection'AllowedCountries']
 -> Checkout'sessionShippingAddressCollection')
-> Parser
     (Maybe
        [Checkout'sessionShippingAddressCollection'AllowedCountries']
      -> Checkout'sessionShippingAddressCollection')
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure Maybe [Checkout'sessionShippingAddressCollection'AllowedCountries']
-> Checkout'sessionShippingAddressCollection'
Checkout'sessionShippingAddressCollection' Parser
  (Maybe
     [Checkout'sessionShippingAddressCollection'AllowedCountries']
   -> Checkout'sessionShippingAddressCollection')
-> Parser
     (Maybe
        [Checkout'sessionShippingAddressCollection'AllowedCountries'])
-> Parser Checkout'sessionShippingAddressCollection'
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     (Maybe
        [Checkout'sessionShippingAddressCollection'AllowedCountries'])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"allowed_countries"))

-- | Create a new 'Checkout'sessionShippingAddressCollection'' with all required fields.
mkCheckout'sessionShippingAddressCollection' :: Checkout'sessionShippingAddressCollection'
mkCheckout'sessionShippingAddressCollection' :: Checkout'sessionShippingAddressCollection'
mkCheckout'sessionShippingAddressCollection' = Checkout'sessionShippingAddressCollection' :: Maybe [Checkout'sessionShippingAddressCollection'AllowedCountries']
-> Checkout'sessionShippingAddressCollection'
Checkout'sessionShippingAddressCollection' {checkout'sessionShippingAddressCollection'AllowedCountries :: Maybe [Checkout'sessionShippingAddressCollection'AllowedCountries']
checkout'sessionShippingAddressCollection'AllowedCountries = Maybe [Checkout'sessionShippingAddressCollection'AllowedCountries']
forall a. Maybe a
GHC.Maybe.Nothing}

-- | Defines the enum schema located at @components.schemas.checkout.session.properties.shipping_address_collection.anyOf.properties.allowed_countries.items@ in the specification.
data Checkout'sessionShippingAddressCollection'AllowedCountries'
  = -- | This case is used if the value encountered during decoding does not match any of the provided cases in the specification.
    Checkout'sessionShippingAddressCollection'AllowedCountries'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.
    Checkout'sessionShippingAddressCollection'AllowedCountries'Typed Data.Text.Internal.Text
  | -- | Represents the JSON value @"AC"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumAC
  | -- | Represents the JSON value @"AD"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumAD
  | -- | Represents the JSON value @"AE"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumAE
  | -- | Represents the JSON value @"AF"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumAF
  | -- | Represents the JSON value @"AG"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumAG
  | -- | Represents the JSON value @"AI"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumAI
  | -- | Represents the JSON value @"AL"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumAL
  | -- | Represents the JSON value @"AM"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumAM
  | -- | Represents the JSON value @"AO"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumAO
  | -- | Represents the JSON value @"AQ"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumAQ
  | -- | Represents the JSON value @"AR"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumAR
  | -- | Represents the JSON value @"AT"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumAT
  | -- | Represents the JSON value @"AU"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumAU
  | -- | Represents the JSON value @"AW"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumAW
  | -- | Represents the JSON value @"AX"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumAX
  | -- | Represents the JSON value @"AZ"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumAZ
  | -- | Represents the JSON value @"BA"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumBA
  | -- | Represents the JSON value @"BB"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumBB
  | -- | Represents the JSON value @"BD"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumBD
  | -- | Represents the JSON value @"BE"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumBE
  | -- | Represents the JSON value @"BF"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumBF
  | -- | Represents the JSON value @"BG"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumBG
  | -- | Represents the JSON value @"BH"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumBH
  | -- | Represents the JSON value @"BI"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumBI
  | -- | Represents the JSON value @"BJ"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumBJ
  | -- | Represents the JSON value @"BL"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumBL
  | -- | Represents the JSON value @"BM"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumBM
  | -- | Represents the JSON value @"BN"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumBN
  | -- | Represents the JSON value @"BO"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumBO
  | -- | Represents the JSON value @"BQ"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumBQ
  | -- | Represents the JSON value @"BR"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumBR
  | -- | Represents the JSON value @"BS"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumBS
  | -- | Represents the JSON value @"BT"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumBT
  | -- | Represents the JSON value @"BV"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumBV
  | -- | Represents the JSON value @"BW"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumBW
  | -- | Represents the JSON value @"BY"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumBY
  | -- | Represents the JSON value @"BZ"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumBZ
  | -- | Represents the JSON value @"CA"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumCA
  | -- | Represents the JSON value @"CD"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumCD
  | -- | Represents the JSON value @"CF"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumCF
  | -- | Represents the JSON value @"CG"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumCG
  | -- | Represents the JSON value @"CH"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumCH
  | -- | Represents the JSON value @"CI"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumCI
  | -- | Represents the JSON value @"CK"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumCK
  | -- | Represents the JSON value @"CL"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumCL
  | -- | Represents the JSON value @"CM"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumCM
  | -- | Represents the JSON value @"CN"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumCN
  | -- | Represents the JSON value @"CO"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumCO
  | -- | Represents the JSON value @"CR"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumCR
  | -- | Represents the JSON value @"CV"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumCV
  | -- | Represents the JSON value @"CW"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumCW
  | -- | Represents the JSON value @"CY"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumCY
  | -- | Represents the JSON value @"CZ"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumCZ
  | -- | Represents the JSON value @"DE"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumDE
  | -- | Represents the JSON value @"DJ"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumDJ
  | -- | Represents the JSON value @"DK"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumDK
  | -- | Represents the JSON value @"DM"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumDM
  | -- | Represents the JSON value @"DO"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumDO
  | -- | Represents the JSON value @"DZ"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumDZ
  | -- | Represents the JSON value @"EC"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumEC
  | -- | Represents the JSON value @"EE"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumEE
  | -- | Represents the JSON value @"EG"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumEG
  | -- | Represents the JSON value @"EH"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumEH
  | -- | Represents the JSON value @"ER"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumER
  | -- | Represents the JSON value @"ES"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumES
  | -- | Represents the JSON value @"ET"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumET
  | -- | Represents the JSON value @"FI"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumFI
  | -- | Represents the JSON value @"FJ"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumFJ
  | -- | Represents the JSON value @"FK"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumFK
  | -- | Represents the JSON value @"FO"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumFO
  | -- | Represents the JSON value @"FR"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumFR
  | -- | Represents the JSON value @"GA"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumGA
  | -- | Represents the JSON value @"GB"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumGB
  | -- | Represents the JSON value @"GD"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumGD
  | -- | Represents the JSON value @"GE"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumGE
  | -- | Represents the JSON value @"GF"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumGF
  | -- | Represents the JSON value @"GG"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumGG
  | -- | Represents the JSON value @"GH"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumGH
  | -- | Represents the JSON value @"GI"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumGI
  | -- | Represents the JSON value @"GL"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumGL
  | -- | Represents the JSON value @"GM"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumGM
  | -- | Represents the JSON value @"GN"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumGN
  | -- | Represents the JSON value @"GP"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumGP
  | -- | Represents the JSON value @"GQ"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumGQ
  | -- | Represents the JSON value @"GR"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumGR
  | -- | Represents the JSON value @"GS"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumGS
  | -- | Represents the JSON value @"GT"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumGT
  | -- | Represents the JSON value @"GU"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumGU
  | -- | Represents the JSON value @"GW"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumGW
  | -- | Represents the JSON value @"GY"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumGY
  | -- | Represents the JSON value @"HK"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumHK
  | -- | Represents the JSON value @"HN"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumHN
  | -- | Represents the JSON value @"HR"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumHR
  | -- | Represents the JSON value @"HT"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumHT
  | -- | Represents the JSON value @"HU"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumHU
  | -- | Represents the JSON value @"ID"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumID
  | -- | Represents the JSON value @"IE"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumIE
  | -- | Represents the JSON value @"IL"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumIL
  | -- | Represents the JSON value @"IM"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumIM
  | -- | Represents the JSON value @"IN"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumIN
  | -- | Represents the JSON value @"IO"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumIO
  | -- | Represents the JSON value @"IQ"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumIQ
  | -- | Represents the JSON value @"IS"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumIS
  | -- | Represents the JSON value @"IT"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumIT
  | -- | Represents the JSON value @"JE"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumJE
  | -- | Represents the JSON value @"JM"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumJM
  | -- | Represents the JSON value @"JO"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumJO
  | -- | Represents the JSON value @"JP"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumJP
  | -- | Represents the JSON value @"KE"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumKE
  | -- | Represents the JSON value @"KG"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumKG
  | -- | Represents the JSON value @"KH"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumKH
  | -- | Represents the JSON value @"KI"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumKI
  | -- | Represents the JSON value @"KM"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumKM
  | -- | Represents the JSON value @"KN"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumKN
  | -- | Represents the JSON value @"KR"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumKR
  | -- | Represents the JSON value @"KW"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumKW
  | -- | Represents the JSON value @"KY"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumKY
  | -- | Represents the JSON value @"KZ"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumKZ
  | -- | Represents the JSON value @"LA"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumLA
  | -- | Represents the JSON value @"LB"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumLB
  | -- | Represents the JSON value @"LC"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumLC
  | -- | Represents the JSON value @"LI"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumLI
  | -- | Represents the JSON value @"LK"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumLK
  | -- | Represents the JSON value @"LR"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumLR
  | -- | Represents the JSON value @"LS"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumLS
  | -- | Represents the JSON value @"LT"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumLT
  | -- | Represents the JSON value @"LU"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumLU
  | -- | Represents the JSON value @"LV"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumLV
  | -- | Represents the JSON value @"LY"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumLY
  | -- | Represents the JSON value @"MA"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumMA
  | -- | Represents the JSON value @"MC"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumMC
  | -- | Represents the JSON value @"MD"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumMD
  | -- | Represents the JSON value @"ME"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumME
  | -- | Represents the JSON value @"MF"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumMF
  | -- | Represents the JSON value @"MG"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumMG
  | -- | Represents the JSON value @"MK"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumMK
  | -- | Represents the JSON value @"ML"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumML
  | -- | Represents the JSON value @"MM"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumMM
  | -- | Represents the JSON value @"MN"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumMN
  | -- | Represents the JSON value @"MO"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumMO
  | -- | Represents the JSON value @"MQ"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumMQ
  | -- | Represents the JSON value @"MR"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumMR
  | -- | Represents the JSON value @"MS"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumMS
  | -- | Represents the JSON value @"MT"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumMT
  | -- | Represents the JSON value @"MU"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumMU
  | -- | Represents the JSON value @"MV"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumMV
  | -- | Represents the JSON value @"MW"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumMW
  | -- | Represents the JSON value @"MX"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumMX
  | -- | Represents the JSON value @"MY"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumMY
  | -- | Represents the JSON value @"MZ"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumMZ
  | -- | Represents the JSON value @"NA"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumNA
  | -- | Represents the JSON value @"NC"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumNC
  | -- | Represents the JSON value @"NE"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumNE
  | -- | Represents the JSON value @"NG"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumNG
  | -- | Represents the JSON value @"NI"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumNI
  | -- | Represents the JSON value @"NL"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumNL
  | -- | Represents the JSON value @"NO"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumNO
  | -- | Represents the JSON value @"NP"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumNP
  | -- | Represents the JSON value @"NR"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumNR
  | -- | Represents the JSON value @"NU"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumNU
  | -- | Represents the JSON value @"NZ"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumNZ
  | -- | Represents the JSON value @"OM"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumOM
  | -- | Represents the JSON value @"PA"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumPA
  | -- | Represents the JSON value @"PE"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumPE
  | -- | Represents the JSON value @"PF"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumPF
  | -- | Represents the JSON value @"PG"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumPG
  | -- | Represents the JSON value @"PH"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumPH
  | -- | Represents the JSON value @"PK"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumPK
  | -- | Represents the JSON value @"PL"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumPL
  | -- | Represents the JSON value @"PM"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumPM
  | -- | Represents the JSON value @"PN"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumPN
  | -- | Represents the JSON value @"PR"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumPR
  | -- | Represents the JSON value @"PS"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumPS
  | -- | Represents the JSON value @"PT"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumPT
  | -- | Represents the JSON value @"PY"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumPY
  | -- | Represents the JSON value @"QA"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumQA
  | -- | Represents the JSON value @"RE"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumRE
  | -- | Represents the JSON value @"RO"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumRO
  | -- | Represents the JSON value @"RS"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumRS
  | -- | Represents the JSON value @"RU"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumRU
  | -- | Represents the JSON value @"RW"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumRW
  | -- | Represents the JSON value @"SA"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumSA
  | -- | Represents the JSON value @"SB"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumSB
  | -- | Represents the JSON value @"SC"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumSC
  | -- | Represents the JSON value @"SE"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumSE
  | -- | Represents the JSON value @"SG"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumSG
  | -- | Represents the JSON value @"SH"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumSH
  | -- | Represents the JSON value @"SI"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumSI
  | -- | Represents the JSON value @"SJ"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumSJ
  | -- | Represents the JSON value @"SK"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumSK
  | -- | Represents the JSON value @"SL"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumSL
  | -- | Represents the JSON value @"SM"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumSM
  | -- | Represents the JSON value @"SN"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumSN
  | -- | Represents the JSON value @"SO"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumSO
  | -- | Represents the JSON value @"SR"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumSR
  | -- | Represents the JSON value @"SS"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumSS
  | -- | Represents the JSON value @"ST"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumST
  | -- | Represents the JSON value @"SV"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumSV
  | -- | Represents the JSON value @"SX"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumSX
  | -- | Represents the JSON value @"SZ"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumSZ
  | -- | Represents the JSON value @"TA"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumTA
  | -- | Represents the JSON value @"TC"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumTC
  | -- | Represents the JSON value @"TD"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumTD
  | -- | Represents the JSON value @"TF"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumTF
  | -- | Represents the JSON value @"TG"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumTG
  | -- | Represents the JSON value @"TH"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumTH
  | -- | Represents the JSON value @"TJ"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumTJ
  | -- | Represents the JSON value @"TK"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumTK
  | -- | Represents the JSON value @"TL"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumTL
  | -- | Represents the JSON value @"TM"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumTM
  | -- | Represents the JSON value @"TN"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumTN
  | -- | Represents the JSON value @"TO"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumTO
  | -- | Represents the JSON value @"TR"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumTR
  | -- | Represents the JSON value @"TT"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumTT
  | -- | Represents the JSON value @"TV"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumTV
  | -- | Represents the JSON value @"TW"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumTW
  | -- | Represents the JSON value @"TZ"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumTZ
  | -- | Represents the JSON value @"UA"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumUA
  | -- | Represents the JSON value @"UG"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumUG
  | -- | Represents the JSON value @"US"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumUS
  | -- | Represents the JSON value @"UY"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumUY
  | -- | Represents the JSON value @"UZ"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumUZ
  | -- | Represents the JSON value @"VA"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumVA
  | -- | Represents the JSON value @"VC"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumVC
  | -- | Represents the JSON value @"VE"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumVE
  | -- | Represents the JSON value @"VG"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumVG
  | -- | Represents the JSON value @"VN"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumVN
  | -- | Represents the JSON value @"VU"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumVU
  | -- | Represents the JSON value @"WF"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumWF
  | -- | Represents the JSON value @"WS"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumWS
  | -- | Represents the JSON value @"XK"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumXK
  | -- | Represents the JSON value @"YE"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumYE
  | -- | Represents the JSON value @"YT"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumYT
  | -- | Represents the JSON value @"ZA"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumZA
  | -- | Represents the JSON value @"ZM"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumZM
  | -- | Represents the JSON value @"ZW"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumZW
  | -- | Represents the JSON value @"ZZ"@
    Checkout'sessionShippingAddressCollection'AllowedCountries'EnumZZ
  deriving (Int
-> Checkout'sessionShippingAddressCollection'AllowedCountries'
-> ShowS
[Checkout'sessionShippingAddressCollection'AllowedCountries']
-> ShowS
Checkout'sessionShippingAddressCollection'AllowedCountries'
-> String
(Int
 -> Checkout'sessionShippingAddressCollection'AllowedCountries'
 -> ShowS)
-> (Checkout'sessionShippingAddressCollection'AllowedCountries'
    -> String)
-> ([Checkout'sessionShippingAddressCollection'AllowedCountries']
    -> ShowS)
-> Show Checkout'sessionShippingAddressCollection'AllowedCountries'
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [Checkout'sessionShippingAddressCollection'AllowedCountries']
-> ShowS
$cshowList :: [Checkout'sessionShippingAddressCollection'AllowedCountries']
-> ShowS
show :: Checkout'sessionShippingAddressCollection'AllowedCountries'
-> String
$cshow :: Checkout'sessionShippingAddressCollection'AllowedCountries'
-> String
showsPrec :: Int
-> Checkout'sessionShippingAddressCollection'AllowedCountries'
-> ShowS
$cshowsPrec :: Int
-> Checkout'sessionShippingAddressCollection'AllowedCountries'
-> ShowS
GHC.Show.Show, Checkout'sessionShippingAddressCollection'AllowedCountries'
-> Checkout'sessionShippingAddressCollection'AllowedCountries'
-> Bool
(Checkout'sessionShippingAddressCollection'AllowedCountries'
 -> Checkout'sessionShippingAddressCollection'AllowedCountries'
 -> Bool)
-> (Checkout'sessionShippingAddressCollection'AllowedCountries'
    -> Checkout'sessionShippingAddressCollection'AllowedCountries'
    -> Bool)
-> Eq Checkout'sessionShippingAddressCollection'AllowedCountries'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: Checkout'sessionShippingAddressCollection'AllowedCountries'
-> Checkout'sessionShippingAddressCollection'AllowedCountries'
-> Bool
$c/= :: Checkout'sessionShippingAddressCollection'AllowedCountries'
-> Checkout'sessionShippingAddressCollection'AllowedCountries'
-> Bool
== :: Checkout'sessionShippingAddressCollection'AllowedCountries'
-> Checkout'sessionShippingAddressCollection'AllowedCountries'
-> Bool
$c== :: Checkout'sessionShippingAddressCollection'AllowedCountries'
-> Checkout'sessionShippingAddressCollection'AllowedCountries'
-> Bool
GHC.Classes.Eq)

instance Data.Aeson.Types.ToJSON.ToJSON Checkout'sessionShippingAddressCollection'AllowedCountries' where
  toJSON :: Checkout'sessionShippingAddressCollection'AllowedCountries'
-> Value
toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'Other Value
val) = Value
val
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'Typed Text
val) = Text -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON Text
val
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumAC) = Value
"AC"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumAD) = Value
"AD"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumAE) = Value
"AE"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumAF) = Value
"AF"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumAG) = Value
"AG"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumAI) = Value
"AI"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumAL) = Value
"AL"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumAM) = Value
"AM"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumAO) = Value
"AO"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumAQ) = Value
"AQ"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumAR) = Value
"AR"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumAT) = Value
"AT"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumAU) = Value
"AU"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumAW) = Value
"AW"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumAX) = Value
"AX"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumAZ) = Value
"AZ"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumBA) = Value
"BA"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumBB) = Value
"BB"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumBD) = Value
"BD"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumBE) = Value
"BE"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumBF) = Value
"BF"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumBG) = Value
"BG"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumBH) = Value
"BH"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumBI) = Value
"BI"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumBJ) = Value
"BJ"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumBL) = Value
"BL"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumBM) = Value
"BM"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumBN) = Value
"BN"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumBO) = Value
"BO"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumBQ) = Value
"BQ"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumBR) = Value
"BR"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumBS) = Value
"BS"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumBT) = Value
"BT"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumBV) = Value
"BV"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumBW) = Value
"BW"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumBY) = Value
"BY"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumBZ) = Value
"BZ"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumCA) = Value
"CA"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumCD) = Value
"CD"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumCF) = Value
"CF"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumCG) = Value
"CG"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumCH) = Value
"CH"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumCI) = Value
"CI"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumCK) = Value
"CK"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumCL) = Value
"CL"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumCM) = Value
"CM"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumCN) = Value
"CN"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumCO) = Value
"CO"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumCR) = Value
"CR"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumCV) = Value
"CV"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumCW) = Value
"CW"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumCY) = Value
"CY"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumCZ) = Value
"CZ"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumDE) = Value
"DE"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumDJ) = Value
"DJ"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumDK) = Value
"DK"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumDM) = Value
"DM"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumDO) = Value
"DO"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumDZ) = Value
"DZ"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumEC) = Value
"EC"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumEE) = Value
"EE"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumEG) = Value
"EG"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumEH) = Value
"EH"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumER) = Value
"ER"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumES) = Value
"ES"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumET) = Value
"ET"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumFI) = Value
"FI"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumFJ) = Value
"FJ"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumFK) = Value
"FK"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumFO) = Value
"FO"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumFR) = Value
"FR"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumGA) = Value
"GA"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumGB) = Value
"GB"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumGD) = Value
"GD"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumGE) = Value
"GE"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumGF) = Value
"GF"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumGG) = Value
"GG"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumGH) = Value
"GH"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumGI) = Value
"GI"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumGL) = Value
"GL"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumGM) = Value
"GM"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumGN) = Value
"GN"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumGP) = Value
"GP"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumGQ) = Value
"GQ"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumGR) = Value
"GR"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumGS) = Value
"GS"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumGT) = Value
"GT"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumGU) = Value
"GU"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumGW) = Value
"GW"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumGY) = Value
"GY"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumHK) = Value
"HK"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumHN) = Value
"HN"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumHR) = Value
"HR"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumHT) = Value
"HT"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumHU) = Value
"HU"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumID) = Value
"ID"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumIE) = Value
"IE"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumIL) = Value
"IL"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumIM) = Value
"IM"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumIN) = Value
"IN"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumIO) = Value
"IO"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumIQ) = Value
"IQ"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumIS) = Value
"IS"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumIT) = Value
"IT"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumJE) = Value
"JE"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumJM) = Value
"JM"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumJO) = Value
"JO"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumJP) = Value
"JP"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumKE) = Value
"KE"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumKG) = Value
"KG"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumKH) = Value
"KH"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumKI) = Value
"KI"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumKM) = Value
"KM"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumKN) = Value
"KN"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumKR) = Value
"KR"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumKW) = Value
"KW"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumKY) = Value
"KY"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumKZ) = Value
"KZ"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumLA) = Value
"LA"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumLB) = Value
"LB"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumLC) = Value
"LC"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumLI) = Value
"LI"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumLK) = Value
"LK"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumLR) = Value
"LR"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumLS) = Value
"LS"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumLT) = Value
"LT"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumLU) = Value
"LU"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumLV) = Value
"LV"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumLY) = Value
"LY"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumMA) = Value
"MA"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumMC) = Value
"MC"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumMD) = Value
"MD"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumME) = Value
"ME"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumMF) = Value
"MF"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumMG) = Value
"MG"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumMK) = Value
"MK"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumML) = Value
"ML"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumMM) = Value
"MM"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumMN) = Value
"MN"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumMO) = Value
"MO"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumMQ) = Value
"MQ"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumMR) = Value
"MR"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumMS) = Value
"MS"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumMT) = Value
"MT"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumMU) = Value
"MU"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumMV) = Value
"MV"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumMW) = Value
"MW"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumMX) = Value
"MX"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumMY) = Value
"MY"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumMZ) = Value
"MZ"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumNA) = Value
"NA"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumNC) = Value
"NC"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumNE) = Value
"NE"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumNG) = Value
"NG"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumNI) = Value
"NI"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumNL) = Value
"NL"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumNO) = Value
"NO"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumNP) = Value
"NP"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumNR) = Value
"NR"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumNU) = Value
"NU"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumNZ) = Value
"NZ"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumOM) = Value
"OM"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumPA) = Value
"PA"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumPE) = Value
"PE"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumPF) = Value
"PF"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumPG) = Value
"PG"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumPH) = Value
"PH"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumPK) = Value
"PK"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumPL) = Value
"PL"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumPM) = Value
"PM"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumPN) = Value
"PN"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumPR) = Value
"PR"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumPS) = Value
"PS"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumPT) = Value
"PT"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumPY) = Value
"PY"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumQA) = Value
"QA"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumRE) = Value
"RE"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumRO) = Value
"RO"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumRS) = Value
"RS"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumRU) = Value
"RU"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumRW) = Value
"RW"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumSA) = Value
"SA"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumSB) = Value
"SB"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumSC) = Value
"SC"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumSE) = Value
"SE"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumSG) = Value
"SG"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumSH) = Value
"SH"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumSI) = Value
"SI"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumSJ) = Value
"SJ"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumSK) = Value
"SK"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumSL) = Value
"SL"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumSM) = Value
"SM"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumSN) = Value
"SN"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumSO) = Value
"SO"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumSR) = Value
"SR"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumSS) = Value
"SS"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumST) = Value
"ST"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumSV) = Value
"SV"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumSX) = Value
"SX"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumSZ) = Value
"SZ"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumTA) = Value
"TA"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumTC) = Value
"TC"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumTD) = Value
"TD"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumTF) = Value
"TF"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumTG) = Value
"TG"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumTH) = Value
"TH"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumTJ) = Value
"TJ"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumTK) = Value
"TK"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumTL) = Value
"TL"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumTM) = Value
"TM"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumTN) = Value
"TN"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumTO) = Value
"TO"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumTR) = Value
"TR"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumTT) = Value
"TT"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumTV) = Value
"TV"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumTW) = Value
"TW"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumTZ) = Value
"TZ"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumUA) = Value
"UA"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumUG) = Value
"UG"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumUS) = Value
"US"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumUY) = Value
"UY"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumUZ) = Value
"UZ"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumVA) = Value
"VA"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumVC) = Value
"VC"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumVE) = Value
"VE"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumVG) = Value
"VG"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumVN) = Value
"VN"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumVU) = Value
"VU"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumWF) = Value
"WF"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumWS) = Value
"WS"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumXK) = Value
"XK"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumYE) = Value
"YE"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumYT) = Value
"YT"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumZA) = Value
"ZA"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumZM) = Value
"ZM"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumZW) = Value
"ZW"
  toJSON (Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumZZ) = Value
"ZZ"

instance Data.Aeson.Types.FromJSON.FromJSON Checkout'sessionShippingAddressCollection'AllowedCountries' where
  parseJSON :: Value
-> Parser
     Checkout'sessionShippingAddressCollection'AllowedCountries'
parseJSON Value
val =
    Checkout'sessionShippingAddressCollection'AllowedCountries'
-> Parser
     Checkout'sessionShippingAddressCollection'AllowedCountries'
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure
      ( if
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"AC" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumAC
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"AD" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumAD
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"AE" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumAE
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"AF" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumAF
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"AG" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumAG
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"AI" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumAI
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"AL" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumAL
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"AM" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumAM
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"AO" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumAO
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"AQ" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumAQ
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"AR" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumAR
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"AT" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumAT
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"AU" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumAU
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"AW" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumAW
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"AX" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumAX
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"AZ" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumAZ
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"BA" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumBA
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"BB" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumBB
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"BD" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumBD
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"BE" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumBE
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"BF" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumBF
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"BG" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumBG
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"BH" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumBH
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"BI" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumBI
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"BJ" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumBJ
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"BL" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumBL
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"BM" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumBM
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"BN" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumBN
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"BO" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumBO
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"BQ" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumBQ
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"BR" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumBR
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"BS" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumBS
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"BT" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumBT
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"BV" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumBV
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"BW" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumBW
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"BY" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumBY
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"BZ" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumBZ
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"CA" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumCA
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"CD" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumCD
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"CF" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumCF
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"CG" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumCG
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"CH" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumCH
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"CI" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumCI
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"CK" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumCK
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"CL" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumCL
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"CM" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumCM
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"CN" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumCN
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"CO" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumCO
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"CR" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumCR
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"CV" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumCV
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"CW" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumCW
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"CY" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumCY
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"CZ" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumCZ
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"DE" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumDE
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"DJ" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumDJ
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"DK" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumDK
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"DM" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumDM
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"DO" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumDO
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"DZ" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumDZ
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"EC" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumEC
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"EE" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumEE
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"EG" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumEG
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"EH" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumEH
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"ER" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumER
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"ES" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumES
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"ET" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumET
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"FI" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumFI
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"FJ" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumFJ
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"FK" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumFK
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"FO" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumFO
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"FR" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumFR
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"GA" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumGA
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"GB" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumGB
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"GD" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumGD
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"GE" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumGE
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"GF" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumGF
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"GG" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumGG
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"GH" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumGH
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"GI" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumGI
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"GL" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumGL
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"GM" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumGM
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"GN" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumGN
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"GP" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumGP
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"GQ" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumGQ
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"GR" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumGR
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"GS" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumGS
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"GT" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumGT
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"GU" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumGU
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"GW" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumGW
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"GY" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumGY
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"HK" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumHK
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"HN" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumHN
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"HR" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumHR
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"HT" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumHT
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"HU" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumHU
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"ID" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumID
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"IE" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumIE
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"IL" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumIL
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"IM" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumIM
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"IN" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumIN
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"IO" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumIO
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"IQ" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumIQ
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"IS" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumIS
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"IT" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumIT
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"JE" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumJE
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"JM" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumJM
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"JO" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumJO
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"JP" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumJP
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"KE" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumKE
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"KG" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumKG
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"KH" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumKH
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"KI" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumKI
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"KM" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumKM
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"KN" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumKN
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"KR" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumKR
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"KW" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumKW
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"KY" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumKY
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"KZ" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumKZ
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"LA" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumLA
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"LB" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumLB
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"LC" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumLC
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"LI" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumLI
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"LK" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumLK
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"LR" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumLR
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"LS" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumLS
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"LT" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumLT
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"LU" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumLU
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"LV" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumLV
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"LY" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumLY
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"MA" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumMA
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"MC" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumMC
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"MD" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumMD
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"ME" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumME
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"MF" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumMF
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"MG" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumMG
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"MK" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumMK
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"ML" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumML
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"MM" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumMM
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"MN" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumMN
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"MO" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumMO
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"MQ" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumMQ
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"MR" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumMR
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"MS" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumMS
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"MT" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumMT
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"MU" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumMU
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"MV" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumMV
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"MW" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumMW
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"MX" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumMX
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"MY" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumMY
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"MZ" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumMZ
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"NA" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumNA
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"NC" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumNC
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"NE" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumNE
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"NG" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumNG
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"NI" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumNI
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"NL" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumNL
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"NO" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumNO
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"NP" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumNP
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"NR" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumNR
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"NU" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumNU
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"NZ" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumNZ
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"OM" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumOM
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"PA" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumPA
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"PE" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumPE
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"PF" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumPF
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"PG" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumPG
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"PH" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumPH
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"PK" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumPK
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"PL" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumPL
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"PM" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumPM
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"PN" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumPN
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"PR" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumPR
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"PS" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumPS
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"PT" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumPT
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"PY" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumPY
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"QA" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumQA
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"RE" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumRE
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"RO" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumRO
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"RS" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumRS
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"RU" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumRU
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"RW" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumRW
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"SA" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumSA
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"SB" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumSB
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"SC" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumSC
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"SE" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumSE
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"SG" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumSG
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"SH" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumSH
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"SI" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumSI
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"SJ" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumSJ
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"SK" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumSK
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"SL" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumSL
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"SM" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumSM
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"SN" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumSN
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"SO" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumSO
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"SR" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumSR
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"SS" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumSS
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"ST" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumST
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"SV" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumSV
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"SX" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumSX
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"SZ" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumSZ
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"TA" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumTA
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"TC" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumTC
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"TD" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumTD
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"TF" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumTF
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"TG" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumTG
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"TH" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumTH
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"TJ" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumTJ
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"TK" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumTK
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"TL" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumTL
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"TM" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumTM
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"TN" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumTN
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"TO" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumTO
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"TR" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumTR
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"TT" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumTT
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"TV" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumTV
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"TW" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumTW
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"TZ" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumTZ
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"UA" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumUA
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"UG" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumUG
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"US" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumUS
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"UY" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumUY
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"UZ" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumUZ
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"VA" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumVA
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"VC" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumVC
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"VE" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumVE
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"VG" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumVG
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"VN" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumVN
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"VU" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumVU
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"WF" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumWF
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"WS" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumWS
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"XK" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumXK
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"YE" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumYE
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"YT" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumYT
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"ZA" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumZA
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"ZM" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumZM
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"ZW" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumZW
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"ZZ" -> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'EnumZZ
            | Bool
GHC.Base.otherwise -> Value
-> Checkout'sessionShippingAddressCollection'AllowedCountries'
Checkout'sessionShippingAddressCollection'AllowedCountries'Other Value
val
      )

-- | Defines the enum schema located at @components.schemas.checkout.session.properties.submit_type@ in the specification.
--
-- Describes the type of transaction being performed by Checkout in order to customize
-- relevant text on the page, such as the submit button. \`submit_type\` can only be
-- specified on Checkout Sessions in \`payment\` mode, but not Checkout Sessions
-- in \`subscription\` or \`setup\` mode.
data Checkout'sessionSubmitType'
  = -- | This case is used if the value encountered during decoding does not match any of the provided cases in the specification.
    Checkout'sessionSubmitType'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.
    Checkout'sessionSubmitType'Typed Data.Text.Internal.Text
  | -- | Represents the JSON value @"auto"@
    Checkout'sessionSubmitType'EnumAuto
  | -- | Represents the JSON value @"book"@
    Checkout'sessionSubmitType'EnumBook
  | -- | Represents the JSON value @"donate"@
    Checkout'sessionSubmitType'EnumDonate
  | -- | Represents the JSON value @"pay"@
    Checkout'sessionSubmitType'EnumPay
  deriving (Int -> Checkout'sessionSubmitType' -> ShowS
[Checkout'sessionSubmitType'] -> ShowS
Checkout'sessionSubmitType' -> String
(Int -> Checkout'sessionSubmitType' -> ShowS)
-> (Checkout'sessionSubmitType' -> String)
-> ([Checkout'sessionSubmitType'] -> ShowS)
-> Show Checkout'sessionSubmitType'
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [Checkout'sessionSubmitType'] -> ShowS
$cshowList :: [Checkout'sessionSubmitType'] -> ShowS
show :: Checkout'sessionSubmitType' -> String
$cshow :: Checkout'sessionSubmitType' -> String
showsPrec :: Int -> Checkout'sessionSubmitType' -> ShowS
$cshowsPrec :: Int -> Checkout'sessionSubmitType' -> ShowS
GHC.Show.Show, Checkout'sessionSubmitType' -> Checkout'sessionSubmitType' -> Bool
(Checkout'sessionSubmitType'
 -> Checkout'sessionSubmitType' -> Bool)
-> (Checkout'sessionSubmitType'
    -> Checkout'sessionSubmitType' -> Bool)
-> Eq Checkout'sessionSubmitType'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: Checkout'sessionSubmitType' -> Checkout'sessionSubmitType' -> Bool
$c/= :: Checkout'sessionSubmitType' -> Checkout'sessionSubmitType' -> Bool
== :: Checkout'sessionSubmitType' -> Checkout'sessionSubmitType' -> Bool
$c== :: Checkout'sessionSubmitType' -> Checkout'sessionSubmitType' -> Bool
GHC.Classes.Eq)

instance Data.Aeson.Types.ToJSON.ToJSON Checkout'sessionSubmitType' where
  toJSON :: Checkout'sessionSubmitType' -> Value
toJSON (Checkout'sessionSubmitType'Other Value
val) = Value
val
  toJSON (Checkout'sessionSubmitType'Typed Text
val) = Text -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON Text
val
  toJSON (Checkout'sessionSubmitType'
Checkout'sessionSubmitType'EnumAuto) = Value
"auto"
  toJSON (Checkout'sessionSubmitType'
Checkout'sessionSubmitType'EnumBook) = Value
"book"
  toJSON (Checkout'sessionSubmitType'
Checkout'sessionSubmitType'EnumDonate) = Value
"donate"
  toJSON (Checkout'sessionSubmitType'
Checkout'sessionSubmitType'EnumPay) = Value
"pay"

instance Data.Aeson.Types.FromJSON.FromJSON Checkout'sessionSubmitType' where
  parseJSON :: Value -> Parser Checkout'sessionSubmitType'
parseJSON Value
val =
    Checkout'sessionSubmitType' -> Parser Checkout'sessionSubmitType'
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure
      ( if
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"auto" -> Checkout'sessionSubmitType'
Checkout'sessionSubmitType'EnumAuto
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"book" -> Checkout'sessionSubmitType'
Checkout'sessionSubmitType'EnumBook
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"donate" -> Checkout'sessionSubmitType'
Checkout'sessionSubmitType'EnumDonate
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"pay" -> Checkout'sessionSubmitType'
Checkout'sessionSubmitType'EnumPay
            | Bool
GHC.Base.otherwise -> Value -> Checkout'sessionSubmitType'
Checkout'sessionSubmitType'Other Value
val
      )

-- | Defines the oneOf schema located at @components.schemas.checkout.session.properties.subscription.anyOf@ in the specification.
--
-- The ID of the subscription for Checkout Sessions in \`subscription\` mode.
data Checkout'sessionSubscription'Variants
  = Checkout'sessionSubscription'Text Data.Text.Internal.Text
  | Checkout'sessionSubscription'Subscription Subscription
  deriving (Int -> Checkout'sessionSubscription'Variants -> ShowS
[Checkout'sessionSubscription'Variants] -> ShowS
Checkout'sessionSubscription'Variants -> String
(Int -> Checkout'sessionSubscription'Variants -> ShowS)
-> (Checkout'sessionSubscription'Variants -> String)
-> ([Checkout'sessionSubscription'Variants] -> ShowS)
-> Show Checkout'sessionSubscription'Variants
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [Checkout'sessionSubscription'Variants] -> ShowS
$cshowList :: [Checkout'sessionSubscription'Variants] -> ShowS
show :: Checkout'sessionSubscription'Variants -> String
$cshow :: Checkout'sessionSubscription'Variants -> String
showsPrec :: Int -> Checkout'sessionSubscription'Variants -> ShowS
$cshowsPrec :: Int -> Checkout'sessionSubscription'Variants -> ShowS
GHC.Show.Show, Checkout'sessionSubscription'Variants
-> Checkout'sessionSubscription'Variants -> Bool
(Checkout'sessionSubscription'Variants
 -> Checkout'sessionSubscription'Variants -> Bool)
-> (Checkout'sessionSubscription'Variants
    -> Checkout'sessionSubscription'Variants -> Bool)
-> Eq Checkout'sessionSubscription'Variants
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: Checkout'sessionSubscription'Variants
-> Checkout'sessionSubscription'Variants -> Bool
$c/= :: Checkout'sessionSubscription'Variants
-> Checkout'sessionSubscription'Variants -> Bool
== :: Checkout'sessionSubscription'Variants
-> Checkout'sessionSubscription'Variants -> Bool
$c== :: Checkout'sessionSubscription'Variants
-> Checkout'sessionSubscription'Variants -> Bool
GHC.Classes.Eq)

instance Data.Aeson.Types.ToJSON.ToJSON Checkout'sessionSubscription'Variants where
  toJSON :: Checkout'sessionSubscription'Variants -> Value
toJSON (Checkout'sessionSubscription'Text Text
a) = Text -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON Text
a
  toJSON (Checkout'sessionSubscription'Subscription Subscription
a) = Subscription -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON Subscription
a

instance Data.Aeson.Types.FromJSON.FromJSON Checkout'sessionSubscription'Variants where
  parseJSON :: Value -> Parser Checkout'sessionSubscription'Variants
parseJSON Value
val = case (Text -> Checkout'sessionSubscription'Variants
Checkout'sessionSubscription'Text (Text -> Checkout'sessionSubscription'Variants)
-> Result Text -> Result Checkout'sessionSubscription'Variants
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Data.Functor.<$> Value -> Result Text
forall a. FromJSON a => Value -> Result a
Data.Aeson.Types.FromJSON.fromJSON Value
val) Result Checkout'sessionSubscription'Variants
-> Result Checkout'sessionSubscription'Variants
-> Result Checkout'sessionSubscription'Variants
forall (f :: * -> *) a. Alternative f => f a -> f a -> f a
GHC.Base.<|> ((Subscription -> Checkout'sessionSubscription'Variants
Checkout'sessionSubscription'Subscription (Subscription -> Checkout'sessionSubscription'Variants)
-> Result Subscription
-> Result Checkout'sessionSubscription'Variants
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Data.Functor.<$> Value -> Result Subscription
forall a. FromJSON a => Value -> Result a
Data.Aeson.Types.FromJSON.fromJSON Value
val) Result Checkout'sessionSubscription'Variants
-> Result Checkout'sessionSubscription'Variants
-> Result Checkout'sessionSubscription'Variants
forall (f :: * -> *) a. Alternative f => f a -> f a -> f a
GHC.Base.<|> String -> Result Checkout'sessionSubscription'Variants
forall a. String -> Result a
Data.Aeson.Types.Internal.Error String
"No variant matched") of
    Data.Aeson.Types.Internal.Success Checkout'sessionSubscription'Variants
a -> Checkout'sessionSubscription'Variants
-> Parser Checkout'sessionSubscription'Variants
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure Checkout'sessionSubscription'Variants
a
    Data.Aeson.Types.Internal.Error String
a -> String -> Parser Checkout'sessionSubscription'Variants
forall (m :: * -> *) a. MonadFail m => String -> m a
Control.Monad.Fail.fail String
a

-- | Defines the object schema located at @components.schemas.checkout.session.properties.total_details.anyOf@ in the specification.
--
-- Tax and discount details for the computed total amount.
data Checkout'sessionTotalDetails' = Checkout'sessionTotalDetails'
  { -- | amount_discount: This is the sum of all the line item discounts.
    Checkout'sessionTotalDetails' -> Maybe Int
checkout'sessionTotalDetails'AmountDiscount :: (GHC.Maybe.Maybe GHC.Types.Int),
    -- | amount_shipping: This is the sum of all the line item shipping amounts.
    Checkout'sessionTotalDetails' -> Maybe Int
checkout'sessionTotalDetails'AmountShipping :: (GHC.Maybe.Maybe GHC.Types.Int),
    -- | amount_tax: This is the sum of all the line item tax amounts.
    Checkout'sessionTotalDetails' -> Maybe Int
checkout'sessionTotalDetails'AmountTax :: (GHC.Maybe.Maybe GHC.Types.Int),
    -- | breakdown:
    Checkout'sessionTotalDetails'
-> Maybe PaymentPagesCheckoutSessionTotalDetailsResourceBreakdown
checkout'sessionTotalDetails'Breakdown :: (GHC.Maybe.Maybe PaymentPagesCheckoutSessionTotalDetailsResourceBreakdown)
  }
  deriving
    ( Int -> Checkout'sessionTotalDetails' -> ShowS
[Checkout'sessionTotalDetails'] -> ShowS
Checkout'sessionTotalDetails' -> String
(Int -> Checkout'sessionTotalDetails' -> ShowS)
-> (Checkout'sessionTotalDetails' -> String)
-> ([Checkout'sessionTotalDetails'] -> ShowS)
-> Show Checkout'sessionTotalDetails'
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [Checkout'sessionTotalDetails'] -> ShowS
$cshowList :: [Checkout'sessionTotalDetails'] -> ShowS
show :: Checkout'sessionTotalDetails' -> String
$cshow :: Checkout'sessionTotalDetails' -> String
showsPrec :: Int -> Checkout'sessionTotalDetails' -> ShowS
$cshowsPrec :: Int -> Checkout'sessionTotalDetails' -> ShowS
GHC.Show.Show,
      Checkout'sessionTotalDetails'
-> Checkout'sessionTotalDetails' -> Bool
(Checkout'sessionTotalDetails'
 -> Checkout'sessionTotalDetails' -> Bool)
-> (Checkout'sessionTotalDetails'
    -> Checkout'sessionTotalDetails' -> Bool)
-> Eq Checkout'sessionTotalDetails'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: Checkout'sessionTotalDetails'
-> Checkout'sessionTotalDetails' -> Bool
$c/= :: Checkout'sessionTotalDetails'
-> Checkout'sessionTotalDetails' -> Bool
== :: Checkout'sessionTotalDetails'
-> Checkout'sessionTotalDetails' -> Bool
$c== :: Checkout'sessionTotalDetails'
-> Checkout'sessionTotalDetails' -> Bool
GHC.Classes.Eq
    )

instance Data.Aeson.Types.ToJSON.ToJSON Checkout'sessionTotalDetails' where
  toJSON :: Checkout'sessionTotalDetails' -> Value
toJSON Checkout'sessionTotalDetails'
obj = [Pair] -> Value
Data.Aeson.Types.Internal.object (Text
"amount_discount" Text -> Maybe Int -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Checkout'sessionTotalDetails' -> Maybe Int
checkout'sessionTotalDetails'AmountDiscount Checkout'sessionTotalDetails'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"amount_shipping" Text -> Maybe Int -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Checkout'sessionTotalDetails' -> Maybe Int
checkout'sessionTotalDetails'AmountShipping Checkout'sessionTotalDetails'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"amount_tax" Text -> Maybe Int -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Checkout'sessionTotalDetails' -> Maybe Int
checkout'sessionTotalDetails'AmountTax Checkout'sessionTotalDetails'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"breakdown" Text
-> Maybe PaymentPagesCheckoutSessionTotalDetailsResourceBreakdown
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Checkout'sessionTotalDetails'
-> Maybe PaymentPagesCheckoutSessionTotalDetailsResourceBreakdown
checkout'sessionTotalDetails'Breakdown Checkout'sessionTotalDetails'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: Checkout'sessionTotalDetails' -> Encoding
toEncoding Checkout'sessionTotalDetails'
obj = Series -> Encoding
Data.Aeson.Encoding.Internal.pairs ((Text
"amount_discount" Text -> Maybe Int -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Checkout'sessionTotalDetails' -> Maybe Int
checkout'sessionTotalDetails'AmountDiscount Checkout'sessionTotalDetails'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"amount_shipping" Text -> Maybe Int -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Checkout'sessionTotalDetails' -> Maybe Int
checkout'sessionTotalDetails'AmountShipping Checkout'sessionTotalDetails'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"amount_tax" Text -> Maybe Int -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Checkout'sessionTotalDetails' -> Maybe Int
checkout'sessionTotalDetails'AmountTax Checkout'sessionTotalDetails'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> (Text
"breakdown" Text
-> Maybe PaymentPagesCheckoutSessionTotalDetailsResourceBreakdown
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Checkout'sessionTotalDetails'
-> Maybe PaymentPagesCheckoutSessionTotalDetailsResourceBreakdown
checkout'sessionTotalDetails'Breakdown Checkout'sessionTotalDetails'
obj))))

instance Data.Aeson.Types.FromJSON.FromJSON Checkout'sessionTotalDetails' where
  parseJSON :: Value -> Parser Checkout'sessionTotalDetails'
parseJSON = String
-> (Object -> Parser Checkout'sessionTotalDetails')
-> Value
-> Parser Checkout'sessionTotalDetails'
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.Aeson.Types.FromJSON.withObject String
"Checkout'sessionTotalDetails'" (\Object
obj -> ((((Maybe Int
 -> Maybe Int
 -> Maybe Int
 -> Maybe PaymentPagesCheckoutSessionTotalDetailsResourceBreakdown
 -> Checkout'sessionTotalDetails')
-> Parser
     (Maybe Int
      -> Maybe Int
      -> Maybe Int
      -> Maybe PaymentPagesCheckoutSessionTotalDetailsResourceBreakdown
      -> Checkout'sessionTotalDetails')
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure Maybe Int
-> Maybe Int
-> Maybe Int
-> Maybe PaymentPagesCheckoutSessionTotalDetailsResourceBreakdown
-> Checkout'sessionTotalDetails'
Checkout'sessionTotalDetails' Parser
  (Maybe Int
   -> Maybe Int
   -> Maybe Int
   -> Maybe PaymentPagesCheckoutSessionTotalDetailsResourceBreakdown
   -> Checkout'sessionTotalDetails')
-> Parser (Maybe Int)
-> Parser
     (Maybe Int
      -> Maybe Int
      -> Maybe PaymentPagesCheckoutSessionTotalDetailsResourceBreakdown
      -> Checkout'sessionTotalDetails')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"amount_discount")) Parser
  (Maybe Int
   -> Maybe Int
   -> Maybe PaymentPagesCheckoutSessionTotalDetailsResourceBreakdown
   -> Checkout'sessionTotalDetails')
-> Parser (Maybe Int)
-> Parser
     (Maybe Int
      -> Maybe PaymentPagesCheckoutSessionTotalDetailsResourceBreakdown
      -> Checkout'sessionTotalDetails')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"amount_shipping")) Parser
  (Maybe Int
   -> Maybe PaymentPagesCheckoutSessionTotalDetailsResourceBreakdown
   -> Checkout'sessionTotalDetails')
-> Parser (Maybe Int)
-> Parser
     (Maybe PaymentPagesCheckoutSessionTotalDetailsResourceBreakdown
      -> Checkout'sessionTotalDetails')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"amount_tax")) Parser
  (Maybe PaymentPagesCheckoutSessionTotalDetailsResourceBreakdown
   -> Checkout'sessionTotalDetails')
-> Parser
     (Maybe PaymentPagesCheckoutSessionTotalDetailsResourceBreakdown)
-> Parser Checkout'sessionTotalDetails'
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     (Maybe PaymentPagesCheckoutSessionTotalDetailsResourceBreakdown)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"breakdown"))

-- | Create a new 'Checkout'sessionTotalDetails'' with all required fields.
mkCheckout'sessionTotalDetails' :: Checkout'sessionTotalDetails'
mkCheckout'sessionTotalDetails' :: Checkout'sessionTotalDetails'
mkCheckout'sessionTotalDetails' =
  Checkout'sessionTotalDetails' :: Maybe Int
-> Maybe Int
-> Maybe Int
-> Maybe PaymentPagesCheckoutSessionTotalDetailsResourceBreakdown
-> Checkout'sessionTotalDetails'
Checkout'sessionTotalDetails'
    { checkout'sessionTotalDetails'AmountDiscount :: Maybe Int
checkout'sessionTotalDetails'AmountDiscount = Maybe Int
forall a. Maybe a
GHC.Maybe.Nothing,
      checkout'sessionTotalDetails'AmountShipping :: Maybe Int
checkout'sessionTotalDetails'AmountShipping = Maybe Int
forall a. Maybe a
GHC.Maybe.Nothing,
      checkout'sessionTotalDetails'AmountTax :: Maybe Int
checkout'sessionTotalDetails'AmountTax = Maybe Int
forall a. Maybe a
GHC.Maybe.Nothing,
      checkout'sessionTotalDetails'Breakdown :: Maybe PaymentPagesCheckoutSessionTotalDetailsResourceBreakdown
checkout'sessionTotalDetails'Breakdown = Maybe PaymentPagesCheckoutSessionTotalDetailsResourceBreakdown
forall a. Maybe a
GHC.Maybe.Nothing
    }